百度空间 | 百度首页 
 
查看文章
 
过ZProtect文件校验
2009-10-15 03:46
貌似过ZProtect的文件校验比较简单,不知道有没有前辈已经发了,下面以1.4.4.0 Pro为例(1.4.9.0 Preview2也可以)。

加了ZProtect壳的程序如果被修改,运行将提示“当前程序文件已经被破坏,请重新安装软件!”,然后退出程序,这个就是ZProtect的文件校验。

1、目标文件名为Notepad.zp.exe,OD打开之,bp MapViewOfFile在MapViewOfFile下个断点,F9运行,中断后F2取消断点,然后Atl + F9返回。

2、现在eax指向的内存里就是Notepad.zp.exe文件自身的内容,hr eax在eax指向的内存下硬件访问断点,F9运行,中断在下面:
复制内容到剪贴板
代码:
00953C37     56                push esi
00953C38     57                push edi
00953C39     8DA424 00000000    lea     esp, dword ptr [esp]
00953C40     0FB63A             movzx edi, byte ptr [edx]
00953C43     8BF0                 mov     esi, eax ; ★ 中断在这里
00953C45     81E6 FF000000        and     esi, 0FF
00953C4B     33F7                 xor     esi, edi
00953C4D     C1E8 08              shr     eax, 8
00953C50     3304B5 AC989600    xor     eax, dword ptr [esi*4+9698AC]
00953C57     83E9 01              sub     ecx, 1
00953C5A     83C2 01              add     edx, 1
00953C5D     85C9                 test ecx, ecx
00953C5F ^ 75 DF             jnz     short 00953C40
00953C61     5F                pop     edi
00953C62     5E                pop     esi
00953C63     F7D0                 not     eax
00953C65     C3                ret
这里就是计算校验码的地方,这里会被调用两次,得到两个值,最后xor两个值得到最终的文件校验码。
删除硬件断点,然后在00953C65处按F4,然后F8。

3、反复按F7,直到出现cmp指令,大致过程如下(已去除花指令):
复制内容到剪贴板
代码:
0096F592     8B4C24 24          mov     ecx, dword ptr [esp+24]
00970BF1     8B5424 10          mov     edx, dword ptr [esp+10]
0097294B     33C8                 xor     ecx, eax ; ★ 前面计算得的两个值xor得到最终的校验码
0096C9A9     3B4A 40              cmp     ecx, dword ptr [edx+40]
; ★ ecx=文件现在的校验码,dword ptr [edx+40]=文件原始的校验码
dword ptr [edx+40]指向的内存是文件里的固定地址,可以直接修改的,将dword ptr [edx+40]内存里的值改为ecx的值,然后复制到可执行文件就可以了。

类别:破解交流 | 添加到搜藏 | 浏览() | 评论 (1)
 
最近读者:
 
网友评论:
1
2009-10-17 11:57 | 回复
發了
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu