- UID
- 346
注册时间2005-3-21
阅读权限30
最后登录1970-1-1
龙战于野

TA的每日心情 | 奋斗 2016-10-21 20:30 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
【破文标题】笑看人生(试用版)V2.01去除程序退出时弹出网页
【破解作者】hrbx
【作者主页】hrbx.ys168.com
【作者邮箱】[email protected]
【破解平台】WinXP
【使用工具】flyOD1.10、Peid
【破解日期】2005-9-6 0:21:21
【软件名称】笑看人生(试用版)V2.01
【软件大小】1.28MB
【下载地址】PYG官方论坛
【加壳方式】无
【软件简介】学员第三课作业
--------------------------------------------------------------------------------------
【破解声明】我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------------------------------
【破解过程】
1、查壳。用PEID扫描,显示为Borland Delphi 6.0 - 7.0,软件无壳。
2、试运行软件。软件退出时会弹出作者网页,地址为:http://5green.nease.net
3、方法一:
OD载入,命令行下断点:bp ShellExecuteA,回车,F9运行,点击退出按钮,程序中断在如下位置:
773F8B97 s> 55 push ebp
773F8B98 8BEC mov ebp,esp
773F8B9A 83EC 3C sub esp,3C
773F8B9D 8B45 08 mov eax,dword ptr ss:[ebp+8]
773F8BA0 8365 E4 00 and dword ptr ss:[ebp-1C],0
773F8BA4 8945 CC mov dword ptr ss:[ebp-34],eax
773F8BA7 8B45 0C mov eax,dword ptr ss:[ebp+C]
773F8BAA 8945 D0 mov dword ptr ss:[ebp-30],eax
773F8BAD 8B45 10 mov eax,dword ptr ss:[ebp+10]
773F8BB0 8945 D4 mov dword ptr ss:[ebp-2C],eax
773F8BB3 8B45 14 mov eax,dword ptr ss:[ebp+14]
773F8BB6 56 push esi
773F8BB7 8945 D8 mov dword ptr ss:[ebp-28],eax
773F8BBA 8B45 18 mov eax,dword ptr ss:[ebp+18]
773F8BBD 57 push edi
773F8BBE 8945 DC mov dword ptr ss:[ebp-24],eax
773F8BC1 8B45 1C mov eax,dword ptr ss:[ebp+1C]
773F8BC4 6A 06 push 6
773F8BC6 8945 E0 mov dword ptr ss:[ebp-20],eax
773F8BC9 59 pop ecx
这时,看堆栈友好提示:
0012FC54 004B0455 /CALL 到 ShellExecuteA
0012FC58 00220476 |hWnd = 00220476 ('笑看人生(试用版)V2.01',class='TForm1',parent=001A04D0)
0012FC5C 00000000 |Operation = NULL
0012FC60 004B0460 |FileName = "http://5green.nease.net"
0012FC64 00000000 |Parameters = NULL
0012FC68 00000000 |DefDir = NULL
0012FC6C 00000001 \IsShown = 1
0012FC70 00B2DCF4
0012FC74 0043F1E6 返回到 unpack.0043F1E6
在0012FC54 004B0455 /CALL 到 ShellExecuteA这一行右键--在反汇编窗口中跟随,来到:
004B0441 68 60044B00 push unpack.004B0460 ; ASCII "http://5green.nease.net"
004B0446 . 6A 00 push 0
004B0448 . 8BC3 mov eax,ebx
004B044A E8 6D3EF9FF call unpack.004442BC
004B044F 50 push eax
004B0450 E8 3331F8FF call <jmp.&shell32.ShellExecuteA> ; 这个就是退出软件弹出作者网页的CALL,NOP掉
004B0455 . 8BC3 mov eax,ebx ; <======在反汇编窗口中跟随后来到这里
004B0457 E8 649DFAFF call unpack.0045A1C0 ; 点击“退出”按钮时调用此CALL退出软件
004B045C . 5B pop ebx
004B045D . C3 retn
4、方法二:
OD载入,右键--Ultra String Reference--Find ASCII,查找“http://5green.nease.net”
找到后双击来到如下位置:
004B0439 . 8BD8 mov ebx,eax
004B043B . 6A 01 push 1
004B043D . 6A 00 push 0
004B043F . 6A 00 push 0
004B0441 68 60044B00 push unpack.004B0460 ; ASCII "http://5green.nease.net",<=====双击后来到这
004B0446 . 6A 00 push 0
004B0448 . 8BC3 mov eax,ebx
004B044A E8 6D3EF9FF call unpack.004442BC
004B044F 50 push eax
004B0450 E8 3331F8FF call <jmp.&shell32.ShellExecuteA> ; 这个就是退出软件弹出作者网页的CALL,NOP掉
004B0455 . 8BC3 mov eax,ebx
004B0457 E8 649DFAFF call unpack.0045A1C0 ; 点击“退出”按钮时调用此CALL退出软件
004B045C . 5B pop ebx
004B045D . C3 retn
5、改法1:
上面的代码一目了然,在点击“退出”按钮时软件先调用ShellExecuteA打开网页,然后调用004B0457处的CALL unpack.0045A1C0结束程序。所以将004B0450处的call <jmp.&shell32.ShellExecuteA>直接NOP掉即可,或者也可将004B0441处的push unpack.004B0460改为push 0。
6、改法2:
在004B0450处F2下断,F9运行,点击“退出”按钮立即中断在:
004B0450 E8 3331F8FF call <jmp.&shell32.ShellExecuteA> ; 中断在这里,F7进入
004B0455 . 8BC3 mov eax,ebx
004B0457 E8 649DFAFF call unpack.0045A1C0
004B045C . 5B pop ebx
进入004B0450处的CALL来到:
00433588 $- FF25 0C784B00 jmp dword ptr ds:[<&shell32.ShellEx>; shell32.ShellExecuteA
0043358E 8BC0 mov eax,eax
00433590 . 55 push ebp
00433591 . 8BEC mov ebp,esp
00433593 . 33C0 xor eax,eax
00433595 . 55 push ebp
00433596 . 68 B5354300 push unpack.004335B5
0043359B . 64:FF30 push dword ptr fs:[eax]
0043359E . 64:8920 mov dword ptr fs:[eax],esp
004335A1 . FF05 206B4B00 inc dword ptr ds:[4B6B20]
004335A7 . 33C0 xor eax,eax
004335A9 . 5A pop edx
004335AA . 59 pop ecx
004335AB . 59 pop ecx
004335AC . 64:8910 mov dword ptr fs:[eax],edx
004335AF . 68 BC354300 push unpack.004335BC
004335B4 > C3 retn ; RET 用来作为跳转到 004335BC
将00433588 处的jmp dword ptr ds:[<&shell32.ShellEx>改为jmp 004335B4.
--------------------------------------------------------------------------------------
【破解总结】
1.对于软件在开启或退出时弹出网页的情况,可下断点:
BP ShellExecuteA
BP ShellExecuteExA
BP WinExec
找到合适的NOP掉就可以了。
2.如果程序比较简单可以搜索弹出来的网址字符串,找到后将网址改掉也可。
--------------------------------------------------------------------------------------
【版权声明】本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
[ Last edited by hrbx on 2005-9-29 at 08:24 AM ] |
|