去自校验

【免责声明】 :纯属技术交流

为hb****写的破解笔记

破解一软件,名字是厨卫XXXXX,主要是去除自校验的思路。

查壳,ASPack 2.001 -> Alexey Solodovnikov

应该没多大问,手动脱壳。无法运行,修复是一个习惯。

修复后,一看是Borland Delphi 6.0 - 7.0,运行后更很郁闷,一闪,程序没了,退出了,

肯定有自校验。晕晕。

OD载入已脱壳的程序,开始的时候用CreateFileA,找不到他的自校验跳转的地方。

试试bpx hmemcpy,找找他的读取文件大小的GetFileSize。

Intermodular calls,项目 808
 地址=00402EA0
 反汇编=call <jmp.&kernel32.GetFileSize>
 目标=kernel32.GetFileSize

对GetFileSize全部下断点。运行跟踪他(记得要隐藏OD哦,不然OD也会退出)。

00403215   /77 23       ja short dumped_.0040323A
00403217   |6A 00       push 0
00403219   |8B03        mov eax,dword ptr ds:[ebx]
0040321B   |50          push eax
0040321C   |E8 0FE1FFFF call <jmp.&kernel32.GetFileSize>
00403221   |8BF0        mov esi,eax
00403223   |83FE FF     cmp esi,-1
00403226   |75 07       jnz short dumped_.0040322F
00403228   |E8 B3F7FFFF call dumped_.004029E0
0040322D   |EB 15       jmp short dumped_.00403244
0040322F   |8BC6        mov eax,esi
00403231   |33D2        xor edx,edx
00403233   |F773 08     div dword ptr ds:[ebx+8]
00403236   |8BF0        mov esi,eax
00403238   |EB 0A       jmp short dumped_.00403244
0040323A   /B8 67000000 mov eax,67
0040323F    E8 8CF7FFFF call dumped_.004029D0
00403244    8BC6        mov eax,esi
00403246    5E          pop esi
00403247    5B          pop ebx
00403248    C3          retn           //下一步到00530C37
00403249    8D40 00     lea eax,dword ptr ds:[eax]
0040324C    57          push edi

到这,慢慢跟踪他。

00530C37    E8 741DEDFF call dumped_.004029B0
00530C3C    8BD8        mov ebx,eax
00530C3E    8D85 B4FEFF>lea eax,dword ptr ss:[ebp-14C]
00530C44    E8 1324EDFF call dumped_.0040305C
00530C49    E8 621DEDFF call dumped_.004029B0
00530C4E    81FB 00E00C>cmp ebx,0CE000
00530C54    74 05       je short dumped_.00530C5B           //就这,将je改成jmp,跳走,就OK了
00530C56    E8 813BEDFF call dumped_.004047DC        / /就他,该死的,会退出的。
00530C5B    33C0        xor eax,eax
00530C5D    5A          pop edx
00530C5E    59          pop ecx
00530C5F    59          pop ecx
00530C60    64:8910     mov dword ptr fs:[eax],edx
00530C63    68 7B0C5300 push dumped_.00530C7B
00530C68    8D85 B0FEFF>lea eax,dword ptr ss:[ebp-150]
00530C6E    E8 DD3CEDFF call dumped_.00404950
00530C73    C3          retn
00530C74  ^ E9 7735EDFF jmp dumped_.004041F0

修改后,将文件保存,一运行,不会退出了。

去除自校验OK。剩下的是破解了,由于是网络验证的方式,我选择的是暴力破解。改几下跳转就行了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
程序载入OD   下断bp CreateFileA,F9运行   OD中断,ALT+F9执行到用户代码      下面就是F8单步跟踪了      程序在0048EE23处出现对话框,很明显,在0048EDF9处的跳转就是关键跳了   直接将0048EDF9  /7E 38        jle short dumped_.0048EE33   改成0048EDF9  /7E 38         jmp dumped_.0048EE33   保存下,运行成功   把脱好的程序载入ResScope,发现有非标准资源结构,那就用Fix Resource修正下资源,再次再入ResScope,这次可以修改资源了,但是问题又来了。。。   打开修正好的程序,程序只是一闪而过就自动关闭了,看来还有校验,继续操起OD,再次载入程序   下断bp CreateFileA,F9运行   OD中断,ALT+F9执行到用户代码,继续F8单步走      0048EE5F出OD就会跑飞了,显然0048EE5D处的跳转又是关键跳啦,   把0048EE5D  /74 05        je short 1.0048EE64   改成0048EE5D  /74 05        jmp 1.0048EE64   就OK了,保存,运行一切正常   现在程序太大,我们再用CxLrb大侠汉化的Resource Binder V2.6处理一下!   挖塞,程序一下从154M缩小到1.13 MB,这样的结果还是让人满意的   但是一运行,程序又是一闪而过,还有校验,OK,继续   OD载入程序,这次可能会比较卡   下断bp CreateFileA,F9运行   OD中断,ALT+F9执行到用户代码,继续F8单步走      0048EE3F处OD跑飞,也很明显了0048EE3D处就是关键跳啦,   把0048EE3D  . /74 05       je short 2.0048EE44   改成0048EE3D  . /74 05       jmp 2.0048EE44   保存,运行成功,感觉048EE4A处的跳转应该也是个校验吧,只是没用到,程序处理到这里就差不多了,有是不妥之处还望大侠们指点!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值