实战破解一个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 vm+网络验证 不像是vm啊,程序可以正常调试 本帖最后由 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关键的地方。
怎样才能把它解决掉,谢谢了。
修改后程序出错
还有检验吗? 用DLL inject啊~~~
页:
[1]