Nisy 发表于 2014-11-2 23:19:12

关于什么是“和谐补丁”及“和谐补丁”如何使用

什么是和谐补丁,程序为何会加载和谐文件?

    我们所知的应用程序大多是 xxx.exe 文件,双击运行的时候程序会加载一些功能模块如 XXX.dll 文件。这些dll文件有些是系统文件(如user32.dll),有些是软件自己的文件。程序加载这些 DLL 文件有两个方法,其一是通过EXE的导入表,比如程序用到了某个DLL的导出函数(API),这样程序启动的时候就会自动加载该DLL。第二个方法是程序运行的过程中动态的加载DLL,给定DLL文件名或DLL的全路径通过LoadLibrary来加载。

    对于第一种方案,由于PE导入表只提供了DLL的文件名,而非DLL的全路径,这样系统就需要提供一种查找该DLL的全路径的一种方案,系统加载DLL的方案是:先从程序自身目录下查找加载,然后才是从系统目录(如windows、system32)中查找加载。

    那这样的方案就会导致一个问题,如果 XXX.EXE 启动的时候会默认加载系统目录下的 lpk.dll,而该exe目录下也有一个lpk.dll,这时程序应该如何加载。根据我们上文提到的方案,程序会加载本目录下的 lpk.dll。这样不需要修改程序就会运行我们所希望的文件,我们称该方法叫做劫持,把劫持技术利用到破解上我们姑且叫做和谐补丁。一旦程序默认加载了我们的文件,破解方就无需考虑程序是否有壳,不用担心修改文件造成的程序效检等问题。比如 Themida 2.2.9.0 P.Y.G特别版 就是程序默认加载了我们的 winmm.dll 搞定的。


为何我的系统不加载和谐文件?应如何解决?

    在XP系统下,绝大多数程序运行时都会默认加载 lpk.dll ,所以 lpk.dll 也成了各大安全厂商的众矢之的,见则杀之。同时微软为了系统安全,在WIN7之后的系统中,已默认不从程序路径下加载 lpk.dll 文件,有些系统中的安全工具也实现了该技术,所以有些坛友就会发现自己的系统不加载该和谐补丁。如果还不加载?把杀软关闭试一下。

想要系统自动加载 lpk.dll 的话,将以下内容保存为 lpk.reg,双击导入注册表即可:

Windows Registry Editor Version 5.00

"ExcludeFromKnownDlls"=hex(7):6c,00,70,00,6b,00,2e,00,64,00,6c,00,6c,00,00,00,00,00

想要系统自动加载 winmm.dll 的话,将以下内容保存为 winmm.reg,双击导入注册表即可:(感谢论坛会员 yjd 提供)

Windows Registry Editor Version 5.00

"ExcludeFromKnownDlls"=hex(7):77,00,69,00,6e,00,6d,00,6d,00,2e,00,64,00,6c,00,6c,00,00,00,00,00


程序启动时会加载什么DLL ?如何查看?
可以先用OD加载该EXE,然后用 Process Explorer 中查看该EXE加载的模块:



程序默认加载的DLL不单只有 lpk.dll,所有加载的DLL几乎都可以作为劫持的目标。飘大为大家提供了一款便利的DLL劫持制作工具,大家可以利用该工具制作和谐补丁。
PYG官方DLL优雅破解补丁制作工具 10周年特别版(https://www.chinapyg.com/thread-72354-1-1.html)。


劫持DLL如何编写 ?

lpk.dll 和谐补丁源码:https://www.chinapyg.com/thread-74878-1-1.html
version.dll和谐补丁源码:https://www.chinapyg.com/thread-74879-1-1.html
winmm.dll 和谐补丁源码:https://www.chinapyg.com/thread-74880-1-1.html

附件为 lpk.dll 、version.dll 、winmm.dll 的劫持文件,该 DLL 会打印一行字符串 XXX.DLL Attach (调试信息在工程源码中,运行时可在DbgView中查看),并自动加载同目录的 PYG.DLL 。



查看调试信息 DbgView      下载:http://technet.microsoft.com/en-us/sysinternals/bb896647
查看进程信息 Process Explorer :http://technet.microsoft.com/en-us/sysinternals/bb896653




BTW: 最后友情提示大家,和谐补丁一定要从靠谱的地方下载,不要随便使用陌生人的补丁。

最后偷偷告诉各位:和谐补丁哪家强,网络论坛飘云阁。








147447627 发表于 2014-11-4 00:18:15

和谐补丁的思路真好。不知道是否可以绕过一些暗装

sdnyzjzx 发表于 2014-11-3 08:30:18

威力强大的一套源码。

左岸麦田 发表于 2014-11-2 23:24:28

学习了,很好的解析。

F8LEFT 发表于 2014-11-3 00:27:27

感激不尽

xiaodi555 发表于 2014-11-3 00:32:49

原来是这么一回事.,...

sunflover 发表于 2014-11-3 00:52:43

和谐补丁哪家强,网络论坛飘云阁 不够6呀 不押韵{:soso_e143:}

火狐编程 发表于 2014-11-3 04:37:30

论坛出的易语言winmm.dll和谐补丁,win764位不能使用,应该就是没加载的吧?是不是也是把这段 弄成注册表?Windows Registry Editor Version 5.00

"ExcludeFromKnownDlls"=hex(7):6c,00,70,00,6b,00,2e,00,64,00,6c,00,6c,00,00,00,00,00

剑菊韵 发表于 2014-11-3 08:11:45

学习了!!!!

sndncel 发表于 2014-11-3 08:22:02

{:soso_e113:}太谢谢了。。。。。又学到一些知识呀。。。

cfc1680 发表于 2014-11-3 08:23:51

飘云阁和谐威武!{:soso_e113:}
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 关于什么是“和谐补丁”及“和谐补丁”如何使用