淫乱一世纪 发表于 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 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技术讨论论坛,转载请说明原作者和出处!!!!!

Tale 发表于 2008-4-27 09:37

顶楼主啊

Hmily 发表于 2008-4-27 10:32

快节键不能用是因为和软件的快节键冲突了~

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就可以了,所有功能都爆破了,包括注册信息那,都显示已经注册给谁了~

淫乱一世纪 发表于 2008-4-28 08:53

多谢Hmily指点~!!!!

goleveling 发表于 2008-4-29 18:02

有为55 发表于 2009-5-28 11:56

谢谢分享努力学习中
页: [1]
查看完整版本: 一重启验证的国外软件爆破手记