PYG_DLL_Patcher可以對主程序進行補丁。補丁數(shù)據(jù)補丁地址最大支持100個,總補丁數(shù)據(jù)最大支持2048字節(jié)、支持OD格式?稍谘a丁成功后彈出網(wǎng)頁,可選目標為動態(tài)基址,補丁DLL/OCX等屬性文件?缮勺⑷牍ぞ,開啟UPX壓縮輸出。PYG_DLL_Patcher內(nèi)存補丁制作工具僅支持XP系統(tǒng),DLL劫持型內(nèi)存內(nèi)存補丁制作工具,程序使用VCT+DELPHI2010聯(lián)合開發(fā)。
PYG官方內(nèi)存補丁制作工具(dll劫持內(nèi)存補丁制作工具)是一款專門用于破解文件的破解補丁制作工具。當一個可執(zhí)行文件運行時,Windows加載器將可執(zhí)行模塊映射到進程的地址空間中,加載器分析可執(zhí)行模塊的輸入表,并設法找出任何需要的DLL,并將它們映射到進程的地址空間中。
由于輸入表中只包含DLL 名而沒有它的路徑名,因此加載程序必須在磁盤上搜索 DLL 文件。首先會嘗試從當前程序所在的目錄加載 DLL,如果沒找到,則在Windows 系統(tǒng)目錄中查找,最后是在環(huán)境變量中列出的各個目錄下查找。利用這個特點,先偽造一個系統(tǒng)同名的 DLL,提供同樣的輸出表,每個輸出函數(shù)轉(zhuǎn)向真正的系統(tǒng) DLL。程序調(diào)用系統(tǒng) DLL 時會先調(diào)用當前目錄下偽造的 DLL,完成相關(guān)功能后,再跳到系統(tǒng)DLL同名函數(shù)里執(zhí)行。這個過程用個形象的詞來描述就是系統(tǒng) DLL 被劫持(hijack)了。
利用這種方法取得控制權(quán)后,可以對主程序進行補丁。此種方法只對除kernel32.dll、ntdll.dll等核心系統(tǒng)庫以外的DLL有效,如網(wǎng)絡應用程序的ws2_32.dll、游戲程序中的d3d8.dll,還有大部分應用程序都調(diào)用的lpk.dll、sxs.dll,這些DLL 都可被劫持。
偽造的 dll 制作好后,放到程序當前目錄下,這樣當原程序調(diào)用原函數(shù)時就調(diào)用了偽造的dll的同名函數(shù),進入劫持DLL的代碼,處理完畢后,再調(diào)用原DLL此函數(shù)。
這種補丁技術(shù),對加殼保護的軟件很有效,選擇掛接的函數(shù)最好是在殼中沒有被調(diào)用的,當掛接函數(shù)被執(zhí)行時,相關(guān)的代碼已被解壓,可以直接補丁了。在有些情況下,必須用計數(shù)器統(tǒng)計掛接的函數(shù)的調(diào)用次數(shù)來接近OEP。此方法巧妙地繞過了殼的復雜檢測,很適合加殼程序的補丁制作。
一些木馬或病毒也會利用DLL劫持技術(shù)搞破壞,因此當在應用程序目錄下發(fā)現(xiàn)系統(tǒng)一些DLL文件存在時,如lpk.dll,應引起注意。
這種補丁技術(shù),對加殼保護的軟件很有效,選擇掛接的函數(shù)最好是在殼中沒有被調(diào)用的,當掛接函數(shù)被執(zhí)行時,相關(guān)的代碼已被解壓,可以直接補丁了。在有些情況下,必須用計數(shù)器統(tǒng)計掛接的函數(shù)的調(diào)用次數(shù)來接近OEP。此方法巧妙地繞過了殼的復雜檢測,很適合加殼程序的補丁制作。
2015.05.25 版本號 1.0.0.19
1.修復已知BUG
2.語言文件歸類到language文件夾
3.數(shù)據(jù)進行簡單加密保存
2014.11.26 版本號 1.0.0.18
1.修改部分API Hook導致崩潰問題
2014.08.30 版本號 1.0.0.17
1.修改繁體系統(tǒng)不能保存/加載配置問題
2014.07.09 版本號 1.0.0.16
1.底層全部重新,并增加臨界區(qū)處理
2.修復重復彈窗問題
3.修復注入工具,并改為UNICODE編碼
4.注入工具增強