📄 crackme02.htm
字号:
正好也是7个字节,这样就可以对付以后的判断了。另外 <br>
<br>
004079FD C705183041004C9B4000 MOV DWORD PTR [00413018],00409B4C
<br>
<br>
的代码和 <br>
<br>
00408F28 C705183041004C9B4000 MOV DWORD PTR [00413018],00409B4C
<br>
<br>
一样于是我把它也改为 <br>
<br>
C705BE324100D3000000 MOV DWORD PTR [004132BE],000000D3 <br>
<br>
否则照样无法运行。 <br>
<br>
被mh-dog加壳的程序的那个用来还原程序数据的“密匙” <br>
放.data的某处(在notepadmh.exe中为123FFh处),只要 <br>
一个字节即可,而源程序的oep,放在.gdata的+18h处的4 <br>
个字节(dj-dog加的壳的oep在.gdata的+10h处)。 <br>
我还没找出好方法来判断那个“密匙”存放的地方。 <br>
<br>
最后,我要感谢ljtt的无私奉献! <br>
ps:ljtt,你能把如何反推出“密匙”的方法详细的讲一下吗? <br>
我比较笨,怎么跟都看不懂算法。 </span></blockquote>
<hr>
<p><span class="p9"><font color=blue>标 题:</font>如何快速破解被金天地DJ,MH型狗加壳的程序。 (2千字)<br>
<font color=blue>发信人:</font>真.hp<br>
<font color=blue>时 间:</font>2000-12-31 22:27:35<br>
<font color=blue>详细信息:</font><br>
</span></p>
<blockquote><span class="p9"> 此方法仅对被金天地DJ,MH型狗加壳的程序有效, <br>
对彩虹天地的DJ,MH型狗可能无效。由于例子太少 <br>
,无法作太多的研究。请有软狗的人像小牧童一样 <br>
把notepad用软狗加密程序加密一下放到网上供人 <br>
下载,或发给我hp_xm@elong.com,好让我有更多 <br>
的例子可研究。(记的写明是哪种狗加的壳) <br>
<br>
现在开始(以小牧童的那6个程序为例): <br>
<br>
DJ型狗 <br>
<br>
打开notepaddj.exe,转到.gdata段。 <br>
.gdata+10h处放的是程序的oep(4字节), <br>
.gdata+14h和.gdata+26h(各4字节)存放 <br>
的是程序运行的期限,即程序未过期时可免 <br>
狗运行。算法如下: <br>
(设.gdata+14h处为11 22 33 44,.gdata+26h处为55 66 77 88) <br>
11 xor 55 得出日期 <br>
22 xor 66 得出月份 <br>
4433 xor 8877 得出年份 <br>
日期同时也是那个关键的“密匙”,当日期为0时dj狗的 <br>
“密匙”为0Bh,mh狗的“密匙”为D3h。(后半句未经 <br>
验正,不知是否于狗有关) <br>
.gdata+74h处放的是加壳方式(4字节)为1时无狗可运行, <br>
但过期后要狗,为0时要有狗才能运行。 <br>
现在我们来修改notepaddj.exe, <br>
把.gdata+74h处改为 01 00 00 00, <br>
把.gdata+14h处改为 0B 0C 0F 27 <br>
0B(日期兼“密匙”)0C(12月)0F27->270F(9999年) <br>
把.gdata+26h处改为 00 00 00 00 <br>
这样改过之后程序就可以运行了,过期日9999年12月11日。 <br>
<br>
MH型狗 <br>
<br>
打开notepadmh.exe,转到.gdata段。 <br>
.gdata+18h处放的是程序的oep(4字节), <br>
.gdata+1Ch和.gdata+2Eh(各4字节)存放 <br>
的是程序运行的期限,即程序未过期时可免 <br>
狗运行。算法如下: <br>
(设.gdata+1Ch处为11 22 33 44,.gdata+2Eh处为55 66 77 88) <br>
11 xor 55 得出日期 <br>
22 xor 66 得出月份 <br>
4433 xor 8877 得出年份 <br>
日期同时也是那个关键的“密匙”,当日期为0时dj狗的 <br>
“密匙”为0Bh,mh狗的“密匙”为D3h。(后半句未经 <br>
验正,不知是否于狗有关) <br>
.gdata+7Ch处放的是加壳方式(4字节)为1时无狗可运行, <br>
但过期后要狗,为0时要有狗才能运行。 <br>
现在我们来修改notepadmh.exe, <br>
把.gdata+7Ch处改为 01 00 00 00, <br>
把.gdata+1Ch处改为 D3 0C 0F 27 <br>
D3(日期兼“密匙”)0C(12月)0F27->270F(9999年) <br>
把.gdata+2Eh处改为 00 00 00 00 <br>
这样改过之后程序的过期日9999年12月211日,但此时还不 <br>
能运行。因为加了mh的限期运行的壳后它会生成一个文件, <br>
这个文件是用来记录程序上次运行的时间,如果没有这个 <br>
文件程序就不能运行,如果存在,它会读取这个文件,判 <br>
断程序上次运行的时间是否小于当前时间,如果大于当前 <br>
时间则拒绝运行。这个文件大小为20字节 <br>
.gdata+84h处的4个字节,文件内容与这4个字节有关系, <br>
不过我不知道算法。 <br>
.gdata+88h处放这个文件的文件名。 <br>
我们把.gdata+84h处的4个字节改为00 00 00 00 <br>
把.gdata+88h处改为"date.dat",并建立一个大小为20字 <br>
节,内容均为00h的文件date.dat,这时即可成功运行程序。 </span></blockquote>
<hr>
<span class="p9"><font color=blue>标 题:</font>分析得这么透彻,真不简单!!祝你元旦快乐! (1千字)<br>
<font color=blue>发信人:</font>ljtt<br>
<font color=blue>时 间:</font>2000-12-31 23:04:28<br>
<font color=blue>详细信息:</font><br>
</span>
<blockquote><span class="p9"> 我是这么改的。 <br>
<br>
Comparing files NOTEPADDJ.EXE and TEMP\CRDJ.EXE <br>
00005E75: 55 C3 <br>
00006B8D: 10 96 <br>
00006B8E: D0 D2 <br>
00006B91: 06 0B <br>
00006B92: 78 00 <br>
00006B93: 40 00 <br>
<br>
Comparing files NOTEPADDJ1.EXE and TEMP\CRDJ1.EXE <br>
00005E75: 55 C3 <br>
00006B8D: 10 96 <br>
00006B8E: D0 D2 <br>
00006B91: 06 0B <br>
00006B92: 78 00 <br>
00006B93: 40 00 <br>
<br>
Comparing files NOTEPADDJ2.EXE and TEMP\CRDJ2.EXE <br>
00005E75: 55 C3 <br>
00006B8D: 10 96 <br>
00006B8E: D0 D2 <br>
00006B91: 06 16 <br>
00006B92: 78 00 <br>
00006B93: 40 00 <br>
<br>
Comparing files NOTEPADMH.EXE and TEMP\CRMH.EXE <br>
000079EB: 89 C7 <br>
000079EE: 83 00 <br>
000079EF: 7D 00 <br>
000079F0: B4 00 <br>
000079F2: 74 EB <br>
00008D46: 89 C7 <br>
00008D49: 83 00 <br>
00008D4A: 7D 00 <br>
00008D4B: C8 00 <br>
00008D4D: 74 EB <br>
00008F2A: 18 BE <br>
00008F2B: 30 32 <br>
00008F2E: 4C D3 <br>
00008F2F: 9B 00 <br>
00008F30: 40 00 <br>
<br>
Comparing files NOTEPADMH1.EXE and TEMP\CRMH1.EXE <br>
000079EB: 89 C7 <br>
000079EE: 83 00 <br>
000079EF: 7D 00 <br>
000079F0: B4 00 <br>
000079F2: 74 EB <br>
00008D46: 89 C7 <br>
00008D49: 83 00 <br>
00008D4A: 7D 00 <br>
00008D4B: C8 00 <br>
00008D4D: 74 EB <br>
00008F2A: 18 BE <br>
00008F2B: 30 32 <br>
00008F2E: 4C D3 <br>
00008F2F: 9B 00 <br>
00008F30: 40 00 <br>
<br>
Comparing files NOTEPADMH2.EXE and TEMP\CRMH2.EXE <br>
000079EB: 89 C7 <br>
000079EE: 83 00 <br>
000079EF: 7D 00 <br>
000079F0: B4 00 <br>
000079F2: 74 EB <br>
00008D46: 89 C7 <br>
00008D49: 83 00 <br>
00008D4A: 7D 00 <br>
00008D4B: C8 00 <br>
00008D4D: 74 EB <br>
00008F2A: 18 BE <br>
00008F2B: 30 32 <br>
00008F2E: 4C 16 <br>
00008F2F: 9B 00 <br>
00008F30: 40 00 </span></blockquote>
<hr>
<span class="p9"><font color=blue>标 题:</font>在你贴出那篇文章之前我已作了不少研究,但被卡在那个“密匙”处,我找不出恢复数据“密匙”,你那篇文章给...
(147字)<br>
<font color=blue>发信人:</font>真.hp<br>
<font color=blue>时 间:</font>2000-12-31 23:11:40<br>
<font color=blue>详细信息:</font><br>
</span>
<blockquote><span class="p9"> 标题: 在你贴出那篇文章之前我已作了不少研究,但被卡在那个“密匙”处,我找不出恢复数据“密匙”,你那篇文章给了我很大帮助!也祝你新年快乐!
<br>
<br>
内容: </span></blockquote>
<hr>
<span class="p9"><font color=blue>标 题:</font>我则是小牧童的笨笨招下启发的,他不是说关键的是小部分,大部分是对付破解的代码。所以。。。。
(633字)<br>
<font color=blue>发信人:</font>ljtt<br>
<font color=blue>时 间:</font>2000-12-31 23:24:07<br>
<font color=blue>详细信息:</font><br>
</span>
<blockquote><span class="p9"> 我想找出关键的地方就行了,就没有去关心其他的转换的过程了。我是逆推的。 <br>
其实我也很笨.......只不过是因为我早已过了“迷时师渡”的年龄,虽然笨到无法“悟”得,但也只好过着“自渡”的生活,加上爱一点面子的原因,所以有问题总是自己想办法解决。虽然很苦,但也有乐趣。:-)
<br>
<br>
这个所谓的“算法”说出来让你笑掉大牙!你看了就知道我是多么得头脑简单,只能对付这种被我冠以“算法”/“密匙”的一段代码,所以别被我唬住了,什么“密匙”/“算法”那都是我.........面子.........上的一点考虑.......。
<br>
程序那一大段代码是为了迷惑视线的。可以简化为: <br>
key = key * 0x4e35;
<br>
key = key & 0x000000ff;
<br>
key = key + 1 <br>
所以我说“很简单”,是真的很“简单”了。 </span></blockquote>
<hr>
</div>
<p><span class="p9"><a href="index.htm" tppabs="http://toye.dihou.org/index.htm">首页</a>>><a href="crackme.htm" tppabs="http://toye.dihou.org/crackme.htm">Crack
ME</a></span> </p>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -