欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

对ljtt《金天地MH型软件狗 "时间间隔检测保护"的一点分析》一文的一点补充 (1千字)

对ljtt《金天地MH型软件狗 "时间间隔检测保护"的一点分析》一文的一点补充 (1千字)

我看了ljtt的那篇文章,于是跟着作了,但却不成功,于是我也跟踪了一下,
发现程序在015F:00408A2F处有一call走过之后就会推出,于是用F8跟进
0040782F 55              push    ebp
00407830 8BEC            mov    ebp, esp
00407832 83EC4C          sub    esp, 4Ch
00407835 53              push    ebx
00407836 56              push    esi
00407837 57              push    edi
00407838 C745C800000000  mov    dword ptr [ebp-38h], 0
0040783F 833D7C30410000  cmp    ds:dword_41307C, 0      <-判断此处是否为0
00407846 0F843B010000    jz      loc_407987              <-跳就完了
0040784C C745D0724102CF  mov    [ebp+var_30], 0CF024172h
00407853 8175D035247683  xor    [ebp+var_30], 83762435h
由于后面的程序还会判断41307C是否为0,所以我把0040783F处的代码改为
0040783F C6057C30410001  mov      ds:dword_41307C, 1
正好也是7个字节,这样就可以对付以后的判断了。另外
004079FD  C705183041004C9B4000  MOV DWORD PTR [00413018],00409B4C
的代码和
00408F28  C705183041004C9B4000  MOV DWORD PTR [00413018],00409B4C
一样于是我把它也改为
C705BE324100D3000000  MOV DWORD PTR [004132BE],000000D3
否则照样无法运行。
被mh-dog加壳的程序的那个用来还原程序数据的“密匙”
放.data的某处(在notepadmh.exe中为123FFh处),只要
一个字节即可,而源程序的oep,放在.gdata的+18h处的4
个字节(dj-dog加的壳的oep在.gdata的+10h处)。
我还没找出好方法来判断那个“密匙”存放的地方。
最后,我要感谢ljtt的无私奉献!
ps:ljtt,你能把如何反推出“密匙”的方法详细的讲一下吗?
我比较笨,怎么跟都看不懂算法。

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功