LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

TSforge - 永久激活 Windows 7、Office 2013 之后的全部版本

admin
2025年2月17日 15:10 本文熱度 3154

MAS 團(tuán)隊(duì)近期發(fā)布了名為 TSforge 的激活方案,可激活自 Windows 7、Office 2013 之后的全部版本。方案利用一個(gè)漏洞繞過(guò)傳統(tǒng)的激活驗(yàn)證,實(shí)現(xiàn)超過(guò) 4000 年的永久激活。

打開 PowerShell 輸入:

irm https://get.activated.win | iex

適用于 Windows 7 到 11 的激活/評(píng)估擴(kuò)展方法的集合。

附件:TSforge_Code-1.0.0.zipTSforge_1.0.0.zip

注意:我們不支持直接使用此工具。此處介紹的方法的唯一受支持的實(shí)現(xiàn)是在 Microsoft 激活腳本中。

包含的方法和工具:

  • ZeroCID - 永久激活,直到重新安裝/功能升級(jí)

  • KMS4k - 4000 多年的離線 KMS 激活

  • AVMA4k - 超過(guò) 4000 年的離線 AVMA 激活(僅限 Server 2012 R2+)

  • Reset Rearm Count - 重置重置計(jì)數(shù)器以進(jìn)行無(wú)限評(píng)估

  • Reset Eval Period — 重置無(wú)限評(píng)估的評(píng)估期

  • Dump/Load Trusted Store - 轉(zhuǎn)儲(chǔ)和加載受信任的存儲(chǔ)數(shù)據(jù)

  • 刪除唯一 ID - 刪除產(chǎn)品密鑰的唯一 ID 以防止在線驗(yàn)證

  • Install Generated Product Key (安裝生成的產(chǎn)品密鑰) - 為任何產(chǎn)品安裝生成的產(chǎn)品密鑰數(shù)據(jù)

  • KMS 充電器 – 為現(xiàn)有 KMS 服務(wù)器充電,以便立即用于激活

  • Clear Tamper State (清除篡改狀態(tài)) - 清除由于存儲(chǔ)損壞或刪除而設(shè)置的篡改狀態(tài)

  • 刪除評(píng)估密鑰鎖定 - 刪除評(píng)估產(chǎn)品密鑰的產(chǎn)品密鑰更改鎖定集

用法

Usage: TSforge [/dump <filePath> (<encrFilePath>)] [/load <filePath>] [/kms4k] [/avma4k] [/zcid] [/rtmr] [/duid] [/igpk] [/kmsc] [/ctpr] [/revl] [/prod] [/test] [<activation id>] [/ver <version override>]
Options:
        /dump <filePath> (<encrFilePath>)       Dump and decrypt the physical store to the specified path.
        /load <filePath>                        Load and re-encrypt the physical store from the specified path.
        /kms4k                                  Activate using KMS4k. Only supports KMS-activatable editions.
        /avma4k                                 Activate using AVMA4k. Only supports Windows Server 2012 R2+.
        /zcid                                   Activate using ZeroCID. Only supports phone-activatable editions.
        /rtmr                                   Reset grace/evaluation period timers.
        /rrmc                                   Reset the rearm count.
        /duid                                   Delete product key Unique ID used in online key validation.
        /igpk                                   Install auto-generated/fake product key according to the specified Activation ID.
        /kmsc                                   Reset the charged count on the local KMS server to 25. Requires an activated KMS host.
        /ctpr                                   Clear the physical store tamper state.
        /revl                                   Remove the key change lock in evaluation edition store.
        /prod                                   Use SPP production key.
        /test                                   Use SPP test key.
        /ver <version>                          Override the detected version. Available versions: vista, 7, 8early, 8, blue, modern.
        <activation id>                         A specific activation ID. Useful if you want to activate specific addons like ESU.
        /?                                      Display this help message.

常見問(wèn)題

這是如何工作的?

該工具處理存儲(chǔ)在稱為“物理存儲(chǔ)”的文件中的數(shù)據(jù),Windows 使用該文件來(lái)存儲(chǔ)關(guān)鍵激活數(shù)據(jù),包括到期計(jì)時(shí)器和綁定到每個(gè)許可證的 HWID。由于我們的逆向工程工作,我們能夠?qū)⒆约旱臄?shù)據(jù)插入到物理存儲(chǔ)中,從而允許我們?yōu)?Windows 軟件保護(hù)平臺(tái)管理的任何產(chǎn)品添加自定義激活數(shù)據(jù)。物理存儲(chǔ)中的數(shù)據(jù)也稱為“受信任存儲(chǔ)”,因此得名“TSforge”。

這種方法相比其他激活方法有什么優(yōu)勢(shì)?

TSforge 為激活較舊的 Windows 版本(例如 Windows 7 到 8.1)提供了最大的優(yōu)勢(shì),因?yàn)樗梢杂谰眉せ钸@些版本的任何版本,而無(wú)需修改啟動(dòng)過(guò)程或 Windows 系統(tǒng)可執(zhí)行文件。TSforge 也是唯一能夠激活任何 Windows 插件的公共激活器,使其對(duì)希望激活 ESU 許可證的用戶很有用。此外,TSforge 是唯一提供硬件固定激活的公共激活器,無(wú)需任何持久網(wǎng)絡(luò)連接、添加的服務(wù)/任務(wù)或注入的 DLL。

TLDR:只有當(dāng)您使用舊的 Windows 版本或想要激活 ESU 等插件以延長(zhǎng)支持結(jié)束日期時(shí),您才應(yīng)該使用 TSforge。

缺點(diǎn)是什么?

對(duì)于 Windows 10 和 11,建議使用 HWID 方法激活 Windows。TSforge 既不太可靠,又缺乏 HWID 提供的功能,例如在功能升級(jí)和完成作系統(tǒng)重新安裝后幸存下來(lái)的能力。對(duì)于 Windows 7 到 8.1,沒(méi)有明顯的缺點(diǎn)。

這里的任何方法都需要互聯(lián)網(wǎng)嗎?

不,這里介紹的所有方法都不需要連接到互聯(lián)網(wǎng)才能運(yùn)行。一切都在本地完成。

如何在不安裝相應(yīng)產(chǎn)品密鑰的情況下安裝特定許可證?

您可以使用 TSforge 中的開關(guān)來(lái)安裝許可證,只需使用激活 ID。您可以通過(guò)運(yùn)行 來(lái)獲取所有可安裝許可證及其激活 ID 的列表。您可以單擊彈出窗口并按 CTRL + C 復(fù)制所有信息。找到所需許可證的激活 ID 后,按如下方式運(yùn)行:。/igpkslmgr /dlv all/igpkTSforge.exe /igpk <activation id>

如何激活 KMS 主機(jī)服務(wù)器?

您可以將 和 選項(xiàng)與要激活的 KMS 主機(jī) SKU 的激活 ID 一起使用。然后,您可以使用帶有此激活 ID 的選項(xiàng)向 25 個(gè)客戶端的 KMS 服務(wù)器收費(fèi)。請(qǐng)注意,KMS 服務(wù)器將保留其客戶端計(jì)數(shù)最多 30 天。/igpk/zcid/kmsc

為什么任何激活方法都不支持 Windows Vista?

Windows Vista 包含一個(gè)驅(qū)動(dòng)程序,該驅(qū)動(dòng)程序持有物理存儲(chǔ)的永久句柄,即使 SLSvc 未運(yùn)行時(shí)也是如此。這可以防止 TSforge 在系統(tǒng)啟動(dòng)時(shí)寫入新的受信任的存儲(chǔ)數(shù)據(jù),而不會(huì)濫用對(duì)另一個(gè)內(nèi)核驅(qū)動(dòng)程序的訪問(wèn)。盡管可以離線修改物理存儲(chǔ),但這需要在 WinPE 映像中托管 TSforge,而 WinPE 映像缺少 MAS 和 TSforge 所需的許多工具和 API。到目前為止,這阻止了我們實(shí)現(xiàn) Vista 支持。

如何防止因 Windows 7 上的 WAT 而停用?

如果安裝了通用密鑰,則需要運(yùn)行以刪除產(chǎn)品密鑰的唯一 ID。這將阻止 WAT 在線驗(yàn)證密鑰。安裝虛假產(chǎn)品密鑰將具有等效效果。或者,您可以使用非通用密鑰繞過(guò)此檢查,盡管 WAT 會(huì)阻止許多公開可用的密鑰。TSforge.exe /duidTSforge.exe /igpk <activation id>

AVMA4k 在我的虛擬機(jī)中不起作用,為什么?

Windows 不支持在無(wú)法提供 Hyper-V 啟發(fā)的 VM 軟件下激活 AVMA。這主要意味著 AVMA4k 僅在正確配置的 QEMU 實(shí)例或 Hyper-V 下運(yùn)行的 VM 受支持。如果您的 VM 的激活狀態(tài)在使用 AVMA4k 后出現(xiàn)狀態(tài)代碼,則需要使用其他激活方法。Notification0xC004FD01

如何刪除此激活?

運(yùn)行 Microsoft 激活腳本,選擇 > 。這將重置物理存儲(chǔ)并恢復(fù) TSforge 所做的任何更改。TroubleshootFix Licensing

Microsoft 可以修補(bǔ)此問(wèn)題嗎?

是的,盡管有一些困難。

他們會(huì)嗎?

可能不會(huì)。如果他們知道,請(qǐng)告訴我們,這樣我們就可以像一群瘋子一樣在本周剩下的時(shí)間里自嘲。

構(gòu)建說(shuō)明

下載 .NET SDK 9.0.2

  1. 將下載的存檔內(nèi)容提取到C:\dotnet-sdk-9.0.200-win-x64

  2. 在可以找到的目錄中打開命令提示符TSforge.sln

  3. 跑C:\dotnet-sdk-9.0.200-win-x64\dotnet.exe build -c Release TSforge.sln

  4. 構(gòu)建的二進(jìn)制文件可以在TSforgeCLI\bin\Release\net35

學(xué)分

核心研發(fā)

  • WitherOrNot - 領(lǐng)導(dǎo)工具開發(fā)、逆向工程、測(cè)試

  • asdcorp - 初始演示、逆向工程、工具開發(fā)、測(cè)試

  • abbodi1406 - 逆向工程、開發(fā)、測(cè)試

  • Lyssa - 逆向工程、工具開發(fā)、測(cè)試

其他貢獻(xiàn)

SpCreatePackaedLicense - 工具開發(fā)、測(cè)試

  • 5 月 - 代碼格式化、構(gòu)建設(shè)置

特別鳴謝

BetaWiki - 記錄用于逆向工程的泄露測(cè)試版

  • Rairii - 協(xié)助初始逆向工程工作

  • Microsoft - 有趣的挑戰(zhàn)

許可證

該項(xiàng)目根據(jù) GNU 通用公共許可證 v3.0 的條款獲得許可。


更多介紹:

介紹

2025 年是 Windows 當(dāng)前 DRM 系統(tǒng)軟件保護(hù)平臺(tái) (SPP) 推出近 20 周年。自 Windows Vista 開發(fā)初期以來(lái),它就作為激活的主要網(wǎng)關(guān),許多人想出了巧妙的方法來(lái)欺騙它,從重置寬限期計(jì)時(shí)器到模擬 KMS 服務(wù)器再到掛接引導(dǎo)加載程序。雖然所有這些系統(tǒng)都濫用了各種激活方法,但從未有過(guò)直接攻擊 SPP 本身的漏洞......直到現(xiàn)在。

在這篇博文中,我們介紹了 TSforge,這是我們有史以來(lái)最強(qiáng)大的激活漏洞之一。TSforge 能夠激活自 Windows 7 以來(lái)每個(gè)版本的 Windows 的每個(gè)版本,以及自 Office 2013 以來(lái)的每個(gè) Windows 插件和 Office 版本,它是我們迄今為止在 MAS 中實(shí)施的最復(fù)雜、影響最廣泛的漏洞,只有我們命運(yùn)多舛的 Keyhole 漏洞才能與之媲美。除了討論 TSforge 的工作原理外,我還將討論我們發(fā)現(xiàn)和理解它所走的崎嶇道路,以及我們?cè)诖诉^(guò)程中用它做的一些有趣的事情。

SPP

SPP 是一個(gè)非常復(fù)雜的系統(tǒng),涉及多個(gè)活動(dòng)部分。為簡(jiǎn)單起見,我們將只關(guān)注與此漏洞相關(guān)的部分:

  • sppsvc.exe/slsvc.exe- SPP 的主要用戶模式服務(wù),負(fù)責(zé)管理許可證和激活狀態(tài)

  • spsys.sys- (僅限 Windows Vista/7)負(fù)責(zé)存儲(chǔ)敏感的激活信息,自 Windows 8 起合并到 sppsvc 中

  • sppobjs.dll- 一個(gè)插件庫(kù),包含用于產(chǎn)品密鑰和確認(rèn) ID 驗(yàn)證的大部分邏輯

CID 技巧

我們第一次出現(xiàn)通用 SPP 漏洞利用的跡象是在 2023 年,我們發(fā)現(xiàn)了一種我們稱之為“CID 技巧”的方法,它允許我們存入虛假的確認(rèn) ID。

確認(rèn) ID (CID) 是用于通過(guò)電話通過(guò)對(duì)話框或命令激活 Windows 的數(shù)值。由于可以在不連接到任何網(wǎng)絡(luò)的情況下完成手機(jī)激活,因此所有 Windows 版本和插件都至少有一個(gè)可以通過(guò)手機(jī)激活的許可渠道,包括 KMS 服務(wù)器和 ESU 插件等其他無(wú)法破解的產(chǎn)品。slmgr /atp

認(rèn)識(shí)到這一點(diǎn),asdcorp 決定研究 CID 驗(yàn)證在內(nèi)部是如何工作的。在做了一個(gè)簡(jiǎn)單的內(nèi)存補(bǔ)丁以使提供的任何 CID 有效后,他們注意到它有一些奇怪的效果:

如視頻中所示,修補(bǔ) CID 驗(yàn)證代碼允許我們使用全由 0 組成的 CID 進(jìn)行激活。但至關(guān)重要的是,即使在通過(guò)重新啟動(dòng) sppsvc 清除補(bǔ)丁后,此激活仍然存在。對(duì)我們來(lái)說(shuō),這表明了一些非常重要的事情:無(wú)論 SPP 保存什么數(shù)據(jù)以記住它已被激活,在寫入后都不會(huì)進(jìn)行驗(yàn)證。sppobjs.dll

這對(duì)我們來(lái)說(shuō)是一個(gè)非常令人興奮的發(fā)現(xiàn),因?yàn)檫@意味著如果我們可以編寫相同的數(shù)據(jù),我們就可以輕松激活 Windows 的任何副本,而無(wú)需使用調(diào)試器或利用內(nèi)核驅(qū)動(dòng)程序。對(duì)我來(lái)說(shuō)更重要的是,這也意味著這種方法可以擴(kuò)展到在 Windows 7 和 8 等舊版本上運(yùn)行,在這些版本中,在運(yùn)行時(shí)修補(bǔ) SPP 代碼要困難得多。

但是,為了使此方法成為可行的方法,我們需要回答以下問(wèn)題:

  • 激活數(shù)據(jù)寫入何處?

  • 在導(dǎo)致激活的 CID 技巧期間寫入哪些數(shù)據(jù)?

  • 這些數(shù)據(jù)是如何編碼的?

初始工作

從之前的調(diào)查中,我們對(duì)第一個(gè)問(wèn)題有了部分答案。使用進(jìn)程監(jiān)視器觀察 sppsvc,我們可以準(zhǔn)確地看到它存儲(chǔ)激活數(shù)據(jù)的位置:

在 Windows 8.1 和 10 上,我們觀察到數(shù)據(jù)主要存儲(chǔ)在以下位置:

  • C:\Windows\System32\spp\store\2.0\data.dat

  • C:\Windows\System32\spp\store\2.0\tokens.dat

  • HKEY_LOCAL_MACHINE\SYSTEM\WPA

Windows 8 幾乎相同,只是文件存儲(chǔ)在 ..datC:\Windows\System32\spp\store

然而,Windows 7 的情況卻截然不同:

在這里,我看到了對(duì)以下位置的引用:

  • C:\Windows\System32\7B296FB0-376B-497e-B012-9C450E1B7327-5P-0.C7483456-A289-439d-8115-601632D005A0

  • C:\Windows\System32\7B296FB0-376B-497e-B012-9C450E1B7327-5P-1.C7483456-A289-439d-8115-601632D005A0

  • C:\Windows\ServiceProfiles\NetworkService\AppData\Roaming\Microsoft\SoftwareProtectionPlatform\tokens.dat

  • HKEY_LOCAL_MACHINE\SYSTEM\WPA

但是,更奇怪的是,我發(fā)現(xiàn) sppsvc 不會(huì)直接寫入“7B296...”文件或 WPA 注冊(cè)表項(xiàng)。相反,它將使用 DeviceIoControl 方法調(diào)用稱為 .然后,此驅(qū)動(dòng)程序?qū)⑻幚韺?duì)“7B296...”文件和 WPA 注冊(cè)表項(xiàng)的寫入。spsys.sys

在比較這些文件和注冊(cè)表項(xiàng)時(shí),我發(fā)現(xiàn)了很多相似之處。起初,這些文件大多無(wú)趣,因?yàn)樵谒邪姹局校@些文件似乎只是將 XML 許可證的內(nèi)容保存在一個(gè)名稱相似的文件夾中:。tokens.datC:\Windows\System32\spp\tokens

“7B296...”和文件似乎起著類似的作用,因?yàn)檫@些文件不僅被加密,而且似乎還包含某種哈希或簽名。損壞或刪除這些文件將卸載所有已安裝的產(chǎn)品密鑰并重置所有其他激活數(shù)據(jù)(重置計(jì)數(shù)、KMS 客戶端計(jì)數(shù)等)。在 Windows 7 上,它還會(huì)顯示以下可愛(ài)的錯(cuò)誤消息:data.dat

撇開我如何無(wú)法獲得對(duì)自己的計(jì)算機(jī)進(jìn)行更改的授權(quán)問(wèn)題不談,在安裝產(chǎn)品密鑰后,我收到了多個(gè)版本“篡改受信任存儲(chǔ)”的通知:

把所有這些放在一起,看起來(lái)就像 “7B296...”文件,它們都用作重要激活數(shù)據(jù)的存儲(chǔ),它們似乎在內(nèi)部被稱為 “可信存儲(chǔ)”。data.dat

對(duì) WPA 注冊(cè)表項(xiàng)進(jìn)行暴力篡改的類似過(guò)程表明,它們以某種方式與受信任的存儲(chǔ)相關(guān)聯(lián)。定期添加具有看似加密數(shù)據(jù)的新密鑰,以及在重大許可更改后添加。此外,由于 NtLockProductActivationKeys 函數(shù),這些密鑰是完全只讀的,無(wú)法刪除,除非您從 Windows PE 環(huán)境中弄亂它們。篡改或刪除這些密鑰會(huì)導(dǎo)致出現(xiàn)類似的“許可證篡改”錯(cuò)誤,但如果我們將這些密鑰與受信任的存儲(chǔ)文件一起從一個(gè)安裝復(fù)制到另一個(gè)安裝,sppsvc 似乎不再抱怨篡改。HKEY_LOCAL_MACHINE\SYSTEM\WPA

從所有這些工作中,我們學(xué)到了以下幾點(diǎn):

  • 產(chǎn)品密鑰和重置計(jì)數(shù)等關(guān)鍵激活數(shù)據(jù)存儲(chǔ)在稱為“受信任存儲(chǔ)”的內(nèi)容中

  • 受信任存儲(chǔ)的數(shù)據(jù)保存在加密文件中

  • 此數(shù)據(jù)以某種方式與HKLM\SYSTEM\WPA

不幸的是,在很長(zhǎng)一段時(shí)間里,我們對(duì)此知之甚少。我對(duì) sppsvc 的舊版本和新版本進(jìn)行反混淆的工作幫助我們確認(rèn)了我們的一些理論,但在不了解 的情況下,它們并沒(méi)有做出太大貢獻(xiàn)。與此同時(shí),SpCreatePackaedLicense 構(gòu)建了 CID 技巧的自動(dòng)化版本,使用自定義內(nèi)核驅(qū)動(dòng)程序來(lái)修補(bǔ) sppsvc,而無(wú)需調(diào)整其受保護(hù)的進(jìn)程狀態(tài),這對(duì)測(cè)試 CID 技巧有很大幫助。spsys.sys

不過(guò),除此之外,我們基本上擱置了這項(xiàng)工作,轉(zhuǎn)而研究 CLiP,它似乎有更有前途的開發(fā)途徑。

當(dāng)它泄漏時(shí),它會(huì)泛濫

盡管我們主要關(guān)注 Windows 盜版,但我們中的許多 MASSGRAVE 成員也對(duì)它的開發(fā)歷史感興趣,或者更具體地說(shuō),它的各種預(yù)發(fā)布 beta 版本。研究和弄亂這些版本不僅作為一種新奇事物很有趣,而且在開發(fā)過(guò)程中留下的工件可以幫助我們了解很多關(guān)于 Windows 工作原理的知識(shí)。

在與一些測(cè)試版專家討論最近泄露的 Windows 8 版本的激活機(jī)制時(shí),我不經(jīng)意間被幾個(gè)重大發(fā)現(xiàn)弄得措手不及:

盡管內(nèi)部版本 7792 和內(nèi)部版本 7850 正在開發(fā) Windows 8 的道路上,但它們的內(nèi)部版本號(hào)與 Windows 7(內(nèi)部版本 7600)足夠接近,因此我對(duì) spsys 的一些新信息充滿希望。事實(shí)上,在內(nèi)部版本 7850 的符號(hào)存檔中,我找到了 spsys 的符號(hào)以及激活子系統(tǒng)的其余部分。

Build 7792 也有一個(gè)完全未混淆的 spsys 版本,就像宣傳的那樣,但沒(méi)有符號(hào)。另一方面,Build 7850 的 spsys 具有完整的符號(hào)和完全混淆。雖然我沒(méi)能得到我的蛋糕并吃掉它,但這對(duì)仍然是一個(gè)非常幸運(yùn)的發(fā)現(xiàn),所以我決定用它來(lái)弄清楚可信商店是如何運(yùn)作的。

咒語(yǔ)與詛咒

像往常一樣,幸運(yùn)的休息時(shí)間,這個(gè)帶有附加條件。最大的一個(gè)是,與任何其他普通的 Windows 版本不同,使用 WinDBG 進(jìn)行內(nèi)核調(diào)試在版本 7792 上根本不起作用,因?yàn)檫@是 Windows 最早的 ARM 端口之一。

因此,盡管我有一個(gè)完全去混淆的 spsys 副本,沒(méi)有任何煩人的反調(diào)試功能,但我?guī)缀鯖](méi)有實(shí)際調(diào)試它的選項(xiàng)。由于此版本是在 QEMU 中模擬的,我仍然可以選擇使用其內(nèi)置的 GDB 調(diào)試服務(wù)器,但這將非常難以使用,因?yàn)槲冶仨氃趦?nèi)存中手動(dòng)定位內(nèi)核和驅(qū)動(dòng)程序才能執(zhí)行任何有用的作。幸運(yùn)的是,我能夠與 Rairii 取得聯(lián)系,由于他在 ARM 上模擬早期 Windows,他對(duì)這種調(diào)試方法更加熟悉。

不幸的是,我對(duì) QEMU OS 調(diào)試或 ARM 或非常低級(jí)的 Windows 內(nèi)部結(jié)構(gòu)知之甚少,所以他的建議一開始有點(diǎn)難以遵循......

使問(wèn)題更加復(fù)雜的是,我選擇為這個(gè)項(xiàng)目編寫自定義工具,使用 GDB 客戶端庫(kù)來(lái)控制 QEMU 并在加載 spsys 時(shí)自動(dòng)中斷。就像我嘗試自定義工具的大多數(shù)嘗試一樣,這最終是巨大的浪費(fèi)時(shí)間,最終甚至沒(méi)有奏效,尤其是由于我對(duì) GDB 缺乏一般經(jīng)驗(yàn)。在浪費(fèi)了更多時(shí)間嘗試通過(guò)其 Python API 向 GDB 添加 Windows 支持之后,我最終硬著頭皮選擇了我所知道的魔鬼,即 IDA Pro 調(diào)試器。

是的,對(duì)于調(diào)試內(nèi)核或調(diào)試 QEMU(或者真的任何東西)來(lái)說(shuō),它是最不“合適”的選擇,但對(duì)我來(lái)說(shuō)更重要的是我熟悉它。使用我從內(nèi)部版本 7915 的符號(hào)集中抓取和修改的各種內(nèi)核結(jié)構(gòu),我能夠編寫出一個(gè)腳本,該腳本將在各種內(nèi)核函數(shù)上斷點(diǎn)并獲取重要數(shù)據(jù),例如內(nèi)核基址和加載的內(nèi)核模塊列表。通過(guò)以編程方式中斷 ,我甚至可以在加載每個(gè)驅(qū)動(dòng)程序時(shí)自動(dòng)更新模塊列表。IopLoadDriver

然而,即使有了這個(gè)監(jiān)控系統(tǒng),我仍然無(wú)法捕捉到加載的時(shí)刻。只有在檢查了其加載程序的代碼后,我才發(fā)現(xiàn)了一個(gè)有趣的調(diào)用:spsys.sysspldr.sysZwSetSystemInformation

參考 Geoff Chappell 的表格,我看到這對(duì)應(yīng)于 ,當(dāng)然,它在內(nèi)核代碼中有自己的分支,可以在不調(diào)用 .SystemLoadGdiDriverInSystemSpaceIopLoadDriver

在這個(gè)樹枝上也折斷后,我終于可以在它加載后立即接住了!spsys.sys

請(qǐng)注意,所有這些工作最終都實(shí)現(xiàn)了如果 WinDBG 正常工作的情況。無(wú)論如何,我現(xiàn)在能夠在 7792 內(nèi)部版本加載時(shí)捕獲和調(diào)試它,而不會(huì)遇到煩人的混淆和反調(diào)試。sxe ld spsys

說(shuō)到混淆,我仍然需要解壓縮 Build 7850 的 spsys 才能理解它。幸運(yùn)的是,這要容易得多,因?yàn)槲铱梢运阉鲗?duì)加密函數(shù)的調(diào)用位置。

然后,我只需在內(nèi)核調(diào)試器中中斷這些調(diào)用并從內(nèi)存中轉(zhuǎn)儲(chǔ)驅(qū)動(dòng)程序,然后我就相當(dāng)輕松地解密了所有代碼。從這里開始,這只是一個(gè)通過(guò)眼睛傳輸符號(hào)的漫長(zhǎng)過(guò)程,我終于回到了原點(diǎn)。

終于進(jìn)步了

標(biāo)記所有函數(shù)后,我注意到代碼中生成受信任存儲(chǔ)文件的一種有趣模式,該文件似乎稱為“物理存儲(chǔ)”。Microsoft 似乎沒(méi)有選擇將加密數(shù)據(jù)存儲(chǔ)在單獨(dú)的緩沖區(qū)中的典型方法,而是選擇就地進(jìn)行加密。

這可能會(huì)防止某種側(cè)信道攻擊,但更重要的是,這意味著我只需在調(diào)試器中跳過(guò)此調(diào)用并讓 spsys 將未加密的內(nèi)容寫入磁盤,即可“解密”物理存儲(chǔ)。因此,我做到了:

asdcorp 和 abbodi1406 立即開始工作,弄清楚數(shù)據(jù)格式以及其中存儲(chǔ)的數(shù)據(jù)類型。與此同時(shí),我專注于在 Windows 10 上復(fù)制這個(gè)技巧,在那里分析會(huì)容易得多,尤其是因?yàn)橛幸粋€(gè)實(shí)際的調(diào)試器 (x64dbg) 可用。方便的是,函數(shù) HIDHash 中有一些非常獨(dú)特的常量:

在 Windows 10 的 sppsvc 中搜索這些常量后,我在 sppsvc 中找到了相同的函數(shù):

正如我發(fā)現(xiàn)的那樣,spsys 的大部分代碼最終都包含在 Windows 10 上的 sppsvc 中。通過(guò)比較這些代碼庫(kù),我發(fā)現(xiàn)了所有的加密、解密、簽名檢查和哈希檢查例程。在調(diào)試器中修補(bǔ)所有這些例程后,我們不僅可以讓 sppsvc 為我們解密它,還可以加載和接受我們?cè)谄渲兴龅娜魏涡薷摹ata.dat

在測(cè)試這些補(bǔ)丁的過(guò)程中,我們最終找到了失傳已久的 Redpill 產(chǎn)品密鑰,Redpill 是 Windows 8 測(cè)試版的功能鎖定系統(tǒng)。

在一些實(shí)驗(yàn)和我的一些幫助下,asdcorp 設(shè)法重現(xiàn)了 CID 技巧,但這次沒(méi)有修補(bǔ) CID 驗(yàn)證例程。

從這里開始,asdcorp 和 Lyssa 找出并測(cè)試了更多的漏洞,包括一種 4000 多年來(lái)離線激活 KMS 的方法。

盡管這些結(jié)果標(biāo)志著重大進(jìn)展,但我們?nèi)匀恍枰褂谜{(diào)試器來(lái)測(cè)試這些方法,因?yàn)槲覀儫o(wú)法自己解密和重新加密物理存儲(chǔ)。因此,我的下一個(gè)任務(wù)是弄清楚如何做到這一點(diǎn)。

私鑰派生

通過(guò)查看 spsys,我知道我需要派生的唯一真正密鑰是 RSA 密鑰,它對(duì)加密物理存儲(chǔ)數(shù)據(jù)的 AES 密鑰進(jìn)行加密。我還從使用 asdcorp 進(jìn)行的測(cè)試中了解到,只有兩個(gè)這樣的密鑰:一個(gè)用于生產(chǎn)/官方測(cè)試版,一個(gè)用于內(nèi)部測(cè)試/Windows Insider 版本。在沒(méi)有原始密鑰數(shù)據(jù)的情況下,我們通過(guò)一種非常先進(jìn)的方法發(fā)現(xiàn)了這一點(diǎn):復(fù)制物理存儲(chǔ)文件,編輯其版本,然后等待 sppsvc 可怕地崩潰,表明它可以解密但不能解析交換的文件。

檢查名為 的 RSA 解密例程,我發(fā)現(xiàn)了一個(gè)稱為 的字節(jié)碼系統(tǒng)的解釋器。通過(guò)大量的苦差事和正則表達(dá)式,我能夠用 Python 編寫該系統(tǒng)的模擬器。SpModExpPrvExecCodes

觀察這個(gè)模擬的輸出,我意識(shí)到所有這些混淆都掩蓋了我以前隱約聽說(shuō)過(guò)的一種技術(shù),稱為加法鏈冪運(yùn)算。經(jīng)過(guò)一番思考,我意識(shí)到我可以跟蹤和轉(zhuǎn)儲(chǔ)每個(gè)模乘法的輸入和輸出,并使用它來(lái)派生私鑰。只需要 x64dbg 日志記錄和幾行 python:

最后,我擁有了從 Windows Vista 到 Windows 11 的所有 SPP 的完整生產(chǎn)密鑰。

由于模乘法的實(shí)現(xiàn)方式存在一些奇怪的差異,因此派生測(cè)試密鑰需要更長(zhǎng)的時(shí)間,但最終,我們擁有了我們需要的所有 SPP 私鑰。

釘棺材

有了私鑰,我們就能夠輕松激活幾乎任何我們想要的版本。不過(guò),仍然存在一點(diǎn)麻煩,那就是獲取通用密鑰以啟用激活。

在 Windows 8 及更高版本上,為您想要的任何版本的任何通道生成通用密鑰都相當(dāng)簡(jiǎn)單。但是,Windows 7 和 CSVLK(KMS 主機(jī)密鑰)直到 Server 2022 都使用 PKEY2005,這是一種更復(fù)雜的編碼系統(tǒng),需要私鑰來(lái)生成通用密鑰。由于我沒(méi)有任何加密技巧,因此我們決定解決此問(wèn)題的最佳方法。

在物理存儲(chǔ)中,每個(gè)產(chǎn)品密鑰都有大型 blob,其中包含各種預(yù)先計(jì)算的信息,例如產(chǎn)品 ID 和手機(jī)激活數(shù)據(jù)。此外,我們發(fā)現(xiàn)令牌存儲(chǔ) () 還包含將產(chǎn)品密鑰與當(dāng)前版本的 Windows 相關(guān)聯(lián)的元數(shù)據(jù)。因此,我們認(rèn)為,只需復(fù)制此數(shù)據(jù)就足以欺騙 Windows 認(rèn)為已安裝密鑰,而這一次,我們是對(duì)的。tokens.dat

與此同時(shí),在為新的 CID 技巧(我們現(xiàn)在稱為 ZeroCID)開發(fā)編程方法時(shí),我們?cè)谔幚硇枰獙懭胛锢泶鎯?chǔ)的 HWID 數(shù)據(jù)時(shí)遇到了問(wèn)題。最初,我們嘗試使用 GatherOsState 的 HWID 派生的 C# 端口,但在極少數(shù)情況下最終無(wú)法驗(yàn)證。由于我們幾乎沒(méi)有選項(xiàng)來(lái)調(diào)試或修復(fù)此端口,因此 asdcorp 決定創(chuàng)建一個(gè)適用于所有硬件的 HWID 值,而且它再次運(yùn)行良好,甚至允許在機(jī)器之間傳輸激活。

隨著 HWID 驗(yàn)證和 PKEY2005 的失敗,我們現(xiàn)在幾乎完全擊敗了 SPP 的離線保護(hù)。

結(jié)束語(yǔ)

即使我們能夠使用調(diào)試器和十六進(jìn)制編輯器對(duì) SPP 造成如此多的損害,我仍然認(rèn)為它是一個(gè)相當(dāng)先進(jìn)且構(gòu)建良好的 DRM 系統(tǒng)。它的內(nèi)部結(jié)構(gòu)肯定比 Windows XP 的 DRM 有所改進(jìn),盡管有些人可能會(huì)告訴你,但 DRM 的設(shè)計(jì)相當(dāng)糟糕。它還能夠很好地保護(hù)自己免受最常見的攻擊,例如通過(guò)交換物理存儲(chǔ)文件來(lái)重置評(píng)估計(jì)時(shí)器。此外,SPP 還有一些部分我們尚未成功破解,例如用于定義其行為的簽名 XML 許可證。畢竟,并不是說(shuō)有另一個(gè)微不足道的補(bǔ)丁可以繞過(guò)他們的簽名檢查......

學(xué)分

核心研發(fā)

  • WitherOrNot - 領(lǐng)導(dǎo)工具開發(fā)、逆向工程、測(cè)試

  • asdcorp - 初始演示、逆向工程、工具開發(fā)、測(cè)試

  • abbodi1406 - 逆向工程、開發(fā)、測(cè)試

  • Lyssa - 逆向工程、工具開發(fā)、測(cè)試

其他貢獻(xiàn)

  • SpCreatePackaedLicense - 工具開發(fā)、測(cè)試

  • 5 月 - 代碼格式化、構(gòu)建設(shè)置

特別鳴謝

  • BetaWiki - 記錄用于逆向工程的泄露測(cè)試版

  • Rairii - 協(xié)助初始逆向工程工作

  • Microsoft - 有趣的挑戰(zhàn)


該文章在 2025/2/17 18:47:39 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
亚洲男女性爱视频在线 | 日韩精品久久久久 | 亚洲精品国产制服丝袜美腿 | 日韩精品一区二区三区蜜桃视频 | 亚洲精品萝福利莉在线 | 色婷婷六月亚洲6月中文字幕 |