好友
阅读权限10
听众
最后登录1970-1-1
|
淫乱一世纪
发表于 2008-4-27 09:29
【文章标题】: 一重启验证的国外软件
【文章作者】: 淫乱一世纪
【作者邮箱】: 保密
【作者主页】: 无
【作者QQ号】: 保密
【软件名称】: Amor Screen Capture V2.0.6
【软件大小】: 1312 KB
【下载地址】: http://www.skycn.com/soft/27310.html
【加壳方式】: ASPack 2.12 -> Alexey Solodovnikov
【保护方式】: 检测调试器?
【编写语言】: delphi
【使用工具】: od peid loadpe impr
【操作平台】: winxp sp2
【软件介绍】: 无
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
一、探测
PEid查壳:ASPack 2.12 -> Alexey Solodovnikov
用工具脱或者手动脱,手动需要查找IAT。
因为是压缩,这里不说明了!
运行脱完壳后的程序 弹出要求注册
估计是重启验证方式
点“Register”
输入name:piaohun和code:123456
确定
关闭程序,发现程序目录无什么可疑的文件,没有藏码的地方
搜索注册表看看,打开注册表 搜索 piaohun
搜索到 UserName处,好 记得这个
二、调试破解
OD载入程序 搜索ASCII码字符串 搜索UserName 共发现2处
Ultra 字符串参考,项目 2934
地址=00551D8D
反汇编=mov edx,unpacked.00551E4C
文本字符串=username
Ultra 字符串参考,项目 3260
地址=0056027A
反汇编=mov edx,unpacked.005605F8
文本字符串=username
分别在附近 特别是跳转类下断。。
发现只断在0056027A处的username
00560271 /0F84 8D020000 je unpacked.00560504 //我断在这
00560277 |8D4D E8 lea ecx,dword ptr ss:[ebp-18]
0056027A |BA F8055600 mov edx,unpacked.005605F8 ; username
0056027F |8BC7 mov eax,edi
单步往下走。这个程序有点怪。。键盘上的F5 F8之类操作无效,检测调试器了????
用OD的单步往下走
005603BF 8338 00 cmp dword ptr ds:[eax],0 //判断用户名是否为空
005603C2 0F84 90000000 je unpacked.00560458 //是则跳
005603C8 A1 90CD5600 mov eax,dword ptr ds:[56CD90]
005603CD 8338 00 cmp dword ptr ds:[eax],0 //判断密码是否未空
005603D0 0F84 82000000 je unpacked.00560458 //是则跳
005603D6 BA 30AB5700 mov edx,unpacked.0057AB30
005603DB B8 1C065600 mov eax,unpacked.0056061C ; ASCII "1338473248615233847161027134999812086615"
005603E0 E8 9FE5FFFF call unpacked.0055E984
005603E5 BA 2CAB5700 mov edx,unpacked.0057AB2C
005603EA B8 50065600 mov eax,unpacked.00560650 ; ASCII "280621483466251791062456784354519246719413"
005603EF E8 90E5FFFF call unpacked.0055E984
005603F4 B8 20AB5700 mov eax,unpacked.0057AB20
005603F9 8B15 F4CC5600 mov edx,dword ptr ds:[56CCF4] ; unpacked.0057AABC
005603FF 8B12 mov edx,dword ptr ds:[edx]
00560401 E8 AE3DEAFF call unpacked.004041B4
00560406 8D55 C8 lea edx,dword ptr ss:[ebp-38]
00560409 A1 90CD5600 mov eax,dword ptr ds:[56CD90]
0056040E 8B00 mov eax,dword ptr ds:[eax]
00560410 E8 2B7FEAFF call unpacked.00408340
00560415 8B45 C8 mov eax,dword ptr ss:[ebp-38]
00560418 8D55 CC lea edx,dword ptr ss:[ebp-34]
0056041B E8 840FFFFF call unpacked.005513A4
00560420 8B55 CC mov edx,dword ptr ss:[ebp-34]
00560423 B8 28AB5700 mov eax,unpacked.0057AB28
00560428 E8 873DEAFF call unpacked.004041B4
0056042D 68 24AB5700 push unpacked.0057AB24
00560432 8B0D 2CAB5700 mov ecx,dword ptr ds:[57AB2C]
00560438 8B15 30AB5700 mov edx,dword ptr ds:[57AB30]
0056043E A1 28AB5700 mov eax,dword ptr ds:[57AB28]
00560443 E8 80F6FFFF call unpacked.0055FAC8
00560448 A1 90CD5600 mov eax,dword ptr ds:[56CD90]
0056044D 8B15 24AB5700 mov edx,dword ptr ds:[57AB24]
00560453 E8 5C3DEAFF call unpacked.004041B4
00560458 A1 20AB5700 mov eax,dword ptr ds:[57AB20]
0056045D 8B15 24AB5700 mov edx,dword ptr ds:[57AB24]
00560463 E8 0441EAFF call unpacked.0040456C //关键call???进去 后我没发现什么!汗
00560468 75 14 jnz short unpacked.0056047E //关键跳转 ,改成je
0056046A A1 F4CC5600 mov eax,dword ptr ds:[56CCF4]
0056046F 8338 00 cmp dword ptr ds:[eax],0
00560472 74 0A je short unpacked.0056047E
00560474 A1 90CD5600 mov eax,dword ptr ds:[56CD90]
00560479 8338 00 cmp dword ptr ds:[eax],0
0056047C 75 48 jnz short unpacked.005604C6
改了00560468处后,保存重启程序,不再提示注册了,看看程序的about也没提示!!!!
但是这个程序依旧还没是注册,我们试用下功能
点工具栏上面的“Capture”随便一个“Destop”截图
在图的左上方出现未注册标志:To avoid the stamp Please register this software!……
载入破解后的程序查找“Please register”
0053A6F8 68 58A75300 push crack.0053A758 ; please register this software !
//这里下断
再点“Destop”
没断下??郁闷。。
点其他功能
发现“Active window”、“Area”、“Window object”这三项 被被断下了。
Active window功能之关键跳:
0053AC1F /75 2D jnz short crack.0053AC4E //关键跳,改成je
0053AC21 |8B45 FC mov eax,dword ptr ss:[ebp-4]
0053AC24 |8B40 34 mov eax,dword ptr ds:[eax+34]
0053AC27 |8B10 mov edx,dword ptr ds:[eax]
0053AC29 |FF52 2C call dword ptr ds:[edx+2C]
0053AC2C |3D F2000000 cmp eax,0F2
0053AC31 |7E 1B jle short crack.0053AC4E
0053AC33 |8B45 FC mov eax,dword ptr ss:[ebp-4]
0053AC36 |8B40 34 mov eax,dword ptr ds:[eax+34]
0053AC39 |8B10 mov edx,dword ptr ds:[eax]
0053AC3B |FF52 20 call dword ptr ds:[edx+20]
0053AC3E |83F8 3C cmp eax,3C
0053AC41 |7E 0B jle short crack.0053AC4E
0053AC43 |8B45 FC mov eax,dword ptr ss:[ebp-4]
0053AC46 |83C0 34 add eax,34
0053AC49 |E8 D6F9FFFF call crack.0053A624 //调用错误call
0053AC4E \8B45 FC mov eax,dword ptr ss:[ebp-4]
Area功能之关键跳:0053B002 /75 2D jnz short crack.0053B031
Window object功能之关键跳:
0053AE6A /75 2D jnz short crack.0053AE99
把三处关键跳0053AC1F、0053B002、0053AE6A、分别改成je保存重启程序
发现三处都没注册标注了。。。
现在来解决第一处的注册标志!!
载入修改后的的程序
在0053A6F8 68 58A75300 push unpack1.0053A758 ; please register this software !
处先内存访问断点
OK成功断下。。。找到
Destop功能的关键跳:
0053AA17 /75 2D jnz short unpad122.0053AA46
改之!!!!!!!!!!!
到此全部修改完毕!!!!!!
全部保存,运行新的程序。。。全部没注册标志了!!!
--------------------------------------------------------------------------------
【经验总结】
很郁闷的一次爆破。。。。改了共5处。。。不知道完美爆破了没。。
也许爆法方法不够好,可能有更好的。。。。
希望高手赐教 讨论讨论。。
我没追到码,算法也不太行。哎!!!!!!
事后再试了下。Destop功能处不用下内存访问也可以断下了。好郁闷。。不知道为什么
第一次断就断不下。。第二次用完内存断点后 用普通断点就可以断了。。
这程序真怪!!!!!!
补丁就先不做了!!!!!!!!!!
--------------------------------------------------------------------------------
【版权声明】: 原创于52pojie技术讨论论坛,转载请说明原作者和出处!!!!! |
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|