一重启验证的国外软件爆破手记
【文章标题】: 一重启验证的国外软件【文章作者】: 淫乱一世纪
【作者邮箱】: 保密
【作者主页】: 无
【作者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 8D020000je unpacked.00560504 //我断在这
00560277|8D4D E8 lea ecx,dword ptr ss:
0056027A|BA F8055600 mov edx,unpacked.005605F8 ; username
0056027F|8BC7 mov eax,edi
单步往下走。这个程序有点怪。。键盘上的F5 F8之类操作无效,检测调试器了????
用OD的单步往下走
005603BF8338 00 cmp dword ptr ds:,0 //判断用户名是否为空
005603C20F84 90000000je unpacked.00560458 //是则跳
005603C8A1 90CD5600 mov eax,dword ptr ds:
005603CD8338 00 cmp dword ptr ds:,0 //判断密码是否未空
005603D00F84 82000000je unpacked.00560458 //是则跳
005603D6BA 30AB5700 mov edx,unpacked.0057AB30
005603DBB8 1C065600 mov eax,unpacked.0056061C ; ASCII "1338473248615233847161027134999812086615"
005603E0E8 9FE5FFFF call unpacked.0055E984
005603E5BA 2CAB5700 mov edx,unpacked.0057AB2C
005603EAB8 50065600 mov eax,unpacked.00560650 ; ASCII "280621483466251791062456784354519246719413"
005603EFE8 90E5FFFF call unpacked.0055E984
005603F4B8 20AB5700 mov eax,unpacked.0057AB20
005603F98B15 F4CC5600mov edx,dword ptr ds: ; unpacked.0057AABC
005603FF8B12 mov edx,dword ptr ds:
00560401E8 AE3DEAFF call unpacked.004041B4
005604068D55 C8 lea edx,dword ptr ss:
00560409A1 90CD5600 mov eax,dword ptr ds:
0056040E8B00 mov eax,dword ptr ds:
00560410E8 2B7FEAFF call unpacked.00408340
005604158B45 C8 mov eax,dword ptr ss:
005604188D55 CC lea edx,dword ptr ss:
0056041BE8 840FFFFF call unpacked.005513A4
005604208B55 CC mov edx,dword ptr ss:
00560423B8 28AB5700 mov eax,unpacked.0057AB28
00560428E8 873DEAFF call unpacked.004041B4
0056042D68 24AB5700 push unpacked.0057AB24
005604328B0D 2CAB5700mov ecx,dword ptr ds:
005604388B15 30AB5700mov edx,dword ptr ds:
0056043EA1 28AB5700 mov eax,dword ptr ds:
00560443E8 80F6FFFF call unpacked.0055FAC8
00560448A1 90CD5600 mov eax,dword ptr ds:
0056044D8B15 24AB5700mov edx,dword ptr ds:
00560453E8 5C3DEAFF call unpacked.004041B4
00560458A1 20AB5700 mov eax,dword ptr ds:
0056045D8B15 24AB5700mov edx,dword ptr ds:
00560463E8 0441EAFF call unpacked.0040456C //关键call???进去 后我没发现什么!汗
0056046875 14 jnz short unpacked.0056047E //关键跳转 ,改成je
0056046AA1 F4CC5600 mov eax,dword ptr ds:
0056046F8338 00 cmp dword ptr ds:,0
0056047274 0A je short unpacked.0056047E
00560474A1 90CD5600 mov eax,dword ptr ds:
005604798338 00 cmp dword ptr ds:,0
0056047C75 48 jnz short unpacked.005604C6
改了00560468处后,保存重启程序,不再提示注册了,看看程序的about也没提示!!!!
但是这个程序依旧还没是注册,我们试用下功能
点工具栏上面的“Capture”随便一个“Destop”截图
在图的左上方出现未注册标志:To avoid the stamp Please register this software!……
载入破解后的程序查找“Please register”
0053A6F868 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:
0053AC24|8B40 34 mov eax,dword ptr ds:
0053AC27|8B10 mov edx,dword ptr ds:
0053AC29|FF52 2C call dword ptr ds:
0053AC2C|3D F2000000 cmp eax,0F2
0053AC31|7E 1B jle short crack.0053AC4E
0053AC33|8B45 FC mov eax,dword ptr ss:
0053AC36|8B40 34 mov eax,dword ptr ds:
0053AC39|8B10 mov edx,dword ptr ds:
0053AC3B|FF52 20 call dword ptr ds:
0053AC3E|83F8 3C cmp eax,3C
0053AC41|7E 0B jle short crack.0053AC4E
0053AC43|8B45 FC mov eax,dword ptr ss:
0053AC46|83C0 34 add eax,34
0053AC49|E8 D6F9FFFF call crack.0053A624 //调用错误call
0053AC4E\8B45 FC mov eax,dword ptr ss:
Area功能之关键跳:0053B002/75 2D jnz short crack.0053B031
Window object功能之关键跳:
0053AE6A/75 2D jnz short crack.0053AE99
把三处关键跳0053AC1F、0053B002、0053AE6A、分别改成je保存重启程序
发现三处都没注册标注了。。。
现在来解决第一处的注册标志!!
载入修改后的的程序
在0053A6F868 58A75300 push unpack1.0053A758 ; please register this software !
处先内存访问断点
OK成功断下。。。找到
Destop功能的关键跳:
0053AA17/75 2D jnz short unpad122.0053AA46
改之!!!!!!!!!!!
到此全部修改完毕!!!!!!
全部保存,运行新的程序。。。全部没注册标志了!!!
--------------------------------------------------------------------------------
【经验总结】
很郁闷的一次爆破。。。。改了共5处。。。不知道完美爆破了没。。
也许爆法方法不够好,可能有更好的。。。。
希望高手赐教 讨论讨论。。
我没追到码,算法也不太行。哎!!!!!!
事后再试了下。Destop功能处不用下内存访问也可以断下了。好郁闷。。不知道为什么
第一次断就断不下。。第二次用完内存断点后 用普通断点就可以断了。。
这程序真怪!!!!!!
补丁就先不做了!!!!!!!!!!
--------------------------------------------------------------------------------
【版权声明】: 原创于52pojie技术讨论论坛,转载请说明原作者和出处!!!!! 顶楼主啊 快节键不能用是因为和软件的快节键冲突了~
00560463E8 0441EAFFcall unpacked.0040456C //关键call???进去 后我没发现什么!汗
0056046875 14 jnz short unpacked.0056047E //关键跳转 ,改成je
00560463 这确实不是关键CALL,只是类似一个比较的CALL,很多地方都要调用,不能改的,关键CALL应该是上面2个CALL,他记录的数据通过下面的CALL进行不比较,所以你可以直接改那个跳转达到没有启动框的效果,功能通过下面的方法进行爆破~
0053AC1B|. 8078 48 00 cmp byte ptr ds:,0
0053AC1F|. 75 2D jnz short unpacked.0053AC4E
功能限制好象只有这个是标志位,你可以在eax+48下内存断点,找他的变化~
0053A7D7 . C646 48 00 mov byte ptr ds:,0
标志位只在这附值,直接给他附值为1就可以了,所有功能都爆破了,包括注册信息那,都显示已经注册给谁了~ 多谢Hmily指点~!!!! 谢谢分享努力学习中
页:
[1]