如何快速破解被金天地DJ,MH型狗加壳的程序。 (2千字)
此方法仅对被金天地DJ,MH型狗加壳的程序有效,对彩虹天地的DJ,MH型狗可能无效。由于例子太少
,无法作太多的研究。请有软狗的人像小牧童一样
把notepad用软狗加密程序加密一下放到网上供人
下载,或发给我hp_xm@elong.com,好让我有更多
的例子可研究。(记的写明是哪种狗加的壳)
现在开始(以小牧童的那6个程序为例):
DJ型狗
打开notepaddj.exe,转到.gdata段。
.gdata+10h处放的是程序的oep(4字节),
.gdata+14h和.gdata+26h(各4字节)存放
的是程序运行的期限,即程序未过期时可免
狗运行。算法如下:
(设.gdata+14h处为11 22 33 44,.gdata+26h处为55 66 77 88)
11 xor 55 得出日期
22 xor 66 得出月份
4433 xor 8877 得出年份
日期同时也是那个关键的“密匙”,当日期为0时dj狗的
“密匙”为0Bh,mh狗的“密匙”为D3h。(后半句未经
验正,不知是否于狗有关)
.gdata+74h处放的是加壳方式(4字节)为1时无狗可运行,
但过期后要狗,为0时要有狗才能运行。
现在我们来修改notepaddj.exe,
把.gdata+74h处改为 01 00 00 00,
把.gdata+14h处改为 0B 0C 0F 27
0B(日期兼“密匙”)0C(12月)0F27->270F(9999年)
把.gdata+26h处改为 00 00 00 00
这样改过之后程序就可以运行了,过期日9999年12月11日。
MH型狗
打开notepadmh.exe,转到.gdata段。
.gdata+18h处放的是程序的oep(4字节),
.gdata+1Ch和.gdata+2Eh(各4字节)存放
的是程序运行的期限,即程序未过期时可免
狗运行。算法如下:
(设.gdata+1Ch处为11 22 33 44,.gdata+2Eh处为55 66 77 88)
11 xor 55 得出日期
22 xor 66 得出月份
4433 xor 8877 得出年份
日期同时也是那个关键的“密匙”,当日期为0时dj狗的
“密匙”为0Bh,mh狗的“密匙”为D3h。(后半句未经
验正,不知是否于狗有关)
.gdata+7Ch处放的是加壳方式(4字节)为1时无狗可运行,
但过期后要狗,为0时要有狗才能运行。
现在我们来修改notepadmh.exe,
把.gdata+7Ch处改为 01 00 00 00,
把.gdata+1Ch处改为 D3 0C 0F 27
D3(日期兼“密匙”)0C(12月)0F27->270F(9999年)
把.gdata+2Eh处改为 00 00 00 00
这样改过之后程序的过期日9999年12月211日,但此时还不
能运行。因为加了mh的限期运行的壳后它会生成一个文件,
这个文件是用来记录程序上次运行的时间,如果没有这个
文件程序就不能运行,如果存在,它会读取这个文件,判
断程序上次运行的时间是否小于当前时间,如果大于当前
时间则拒绝运行。这个文件大小为20字节
.gdata+84h处的4个字节,文件内容与这4个字节有关系,
不过我不知道算法。
.gdata+88h处放这个文件的文件名。
我们把.gdata+84h处的4个字节改为00 00 00 00
把.gdata+88h处改为"date.dat",并建立一个大小为20字
节,内容均为00h的文件date.dat,这时即可成功运行程序。
