gawen 发表于 2014-7-5 16:28:46

实战破解一个DELPH程序,未完成,还请高手指点

本帖最后由 gawen 于 2014-7-5 18:04 编辑

程序启动验证,未注册出现注册提示框。

未注册功能有限制

启动运行日志如下 :

推荐您创建桌面快捷图标,请点击[文件]>[创建快捷图标...]
开始认证查询......
认证查询结果:免费版,为了使用全部功能,请联系QQ:505109631购买注册版.

用exeinfope扫描结果显示无壳:

Borland Delphi ( 2.0 - 7.0 ) 1992 - www.borland.com

用OD载入,没有找到“免费版”提示信息。

用dede载入,查找注册提示框,

注册窗体为tform3,找到FormCreate的位置为:0050BF5C

用od载入,在0050BF5C处下断点。f9运行

断下后堆栈显示:0012FBD8   00480153RETURN to Post.00480153
0012FBDC   0012FC14Pointer to next SEH record
0012FBE0   0048015DSE handler
0012FBE4   0012FBF8


反汇编窗口中跟随:00480153

看到代码如下:

0048011B      90            nop
0048011C   .55            push ebp
0048011D   .8BEC          mov ebp,esp
0048011F   .51            push ecx
00480120   .53            push ebx
00480121   .56            push esi
00480122   .57            push edi
00480123   .8945 FC       mov dword ptr ss:,eax
00480126   .8B45 FC       mov eax,dword ptr ss:
00480129   .66:83B8 D2020>cmp word ptr ds:,0x0
00480131   .74 49         je short 0048017C      此处可以跳过注册窗口
00480133   .33C0          xor eax,eax
00480135   .55            push ebp
00480136   .68 5D014800   push 0048015D
0048013B   .64:FF30       push dword ptr fs:
0048013E   .64:8920       mov dword ptr fs:,esp
00480141   .8B5D FC       mov ebx,dword ptr ss:
00480144   .8B55 FC       mov edx,dword ptr ss:
00480147   .8B83 D4020000 mov eax,dword ptr ds:
0048014D   .FF93 D0020000 call dword ptr ds:
00480153   .33C0          xor eax,eax
00480155   .5A            pop edx
00480156   .59            pop ecx
00480157   .59            pop ecx
00480158   .64:8910       mov dword ptr fs:,edx
0048015B   .EB 1F         jmp short 0048017C
0048015D   .^ E9 723EF8FF   jmp 00403FD4
00480162   .8B45 FC       mov eax,dword ptr ss:
00480165   .66:BE ADFF    mov si,0xFFAD


发现00480131   .74 49         je short 0048017C可以跳过注册窗口,改成jmp保存

保存后,程序不再出现注册窗口,但不能正常运行。



用idr载入分析,得到的字符串如下 :
00565C0C <AnsiString> 'well.'
00565C1C <AnsiString> ':8000/'
00565C2C <AnsiString> '/'
00565C38 <AnsiString> '.php?t='
00565C5C <AnsiString> 'rr263'
0056617C <AnsiString> '认证查询失败,请检查网络连接,或联系客服'
005665D4 <AnsiString> '认证查询失败多次,请检查网络连接,或联系客服'
00566608 <AnsiString> ','
0056661C <AnsiString> '免费版'
0056662C <AnsiString> '认证查询结果:免费版,为了使用全部功能,请联系QQ:505109631购买注册版.'
00566678 <AnsiString> '认证查询结果:免费版.'
00566698 <AnsiString> '注册版'
005666A8 <AnsiString> '认证查询结果:注册版,欢迎您使用荣荣软件'
005666D8 <AnsiString> '您的升级期限已过,不能使用新版本'
00566700 <AnsiString> '请登录会员中心在线转账增加升级期限,或联系QQ:505109631办理'
00566760 <AnsiString> 'soft'
00566770 <AnsiString> '.'
0056677C <AnsiString> '/'
00566788 <AnsiString> '801'
00566794 <AnsiString> '/up.inf'
00567870 <AnsiString> '停止全自动'
00567884 <AnsiString> '循环到底,操作完毕,现在结束'
00567AC0 <AnsiString> '停止全自动'
00567AD4 <AnsiString> '循环到底,操作完毕,现在结束'
00567AF8 <AnsiString> '0'
005681D4 <AnsiString> 'http://tieba.baidu.com/f?kw='

在0056662C处找到提示字符串。于是用od载入

不知道为什么,下内存断点断不下来,于是在0056662C处下硬件断点

00402E70/$56            push esi
00402E71|.57            push edi
00402E72|.89C6          mov esi,eax
00402E74|.89D7          mov edi,edx
00402E76|.89C8          mov eax,ecx
00402E78|.39F7          cmp edi,esi
00402E7A|.77 13         ja short 00402E8F
00402E7C|.74 2F         je short 00402EAD
00402E7E|.C1F9 02       sar ecx,0x2
00402E81|.78 2A         js short 00402EAD
00402E83|.F3:A5         rep movs dword ptr es:,dword ptr ds>
00402E85|.89C1          mov ecx,eax
00402E87|.83E1 03       and ecx,0x3
00402E8A|.F3:A4         rep movs byte ptr es:,byte ptr ds:[>
00402E8C|.5F            pop edi
00402E8D|.5E            pop esi
00402E8E|.C3            retn
00402E8F|>8D7431 FC   lea esi,dword ptr ds:
00402E93|.8D7C39 FC   lea edi,dword ptr ds:
00402E97|.C1F9 02       sar ecx,0x2
00402E9A|.78 11         js short 00402EAD
00402E9C|.FD            std
00402E9D|.F3:A5         rep movs dword ptr es:,dword ptr ds>
00402E9F|.89C1          mov ecx,eax
00402EA1|.83E1 03       and ecx,0x3
00402EA4|.83C6 03       add esi,0x3
00402EA7|.83C7 03       add edi,0x3
00402EAA|.F3:A4         rep movs byte ptr es:,byte ptr ds:[>
00402EAC|.FC            cld
00402EAD|>5F            pop edi
00402EAE|.5E            pop esi
00402EAF\.C3            retn

断在,00402E9F 处,到这里不知道该怎么修改了,还请高手指点,谢谢~~~


软件下载地址:http://pan.baidu.com/s/1kTwXkfd

shizp 发表于 2014-7-5 17:11:47

vm+网络验证

gawen 发表于 2014-7-5 18:03:21

不像是vm啊,程序可以正常调试

shizp 发表于 2014-7-5 18:10:41

本帖最后由 shizp 于 2014-7-5 18:12 编辑

0056E981   .E8 8E91EBFF   call Post.00427B14
0056E986   .68 84EF5600   push Post.0056EF84
0056E98B   .- E9 8D770800   jmp Post.005F611D   //网络验证 ,VM关键的地方。


gawen 发表于 2014-7-5 18:25:39

怎样才能把它解决掉,谢谢了。

gawen 发表于 2014-7-5 18:28:47


修改后程序出错

gawen 发表于 2014-7-5 20:52:00

还有检验吗?

飘云 发表于 2014-7-9 10:05:55

用DLL inject啊~~~
页: [1]
查看完整版本: 实战破解一个DELPH程序,未完成,还请高手指点