吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3033|回复: 5
收起左侧

[CrackMe] 【吾爱2013CM大赛解答】----CrackMe -- 苏紫方璇 CM分析

[复制链接]
h_one 发表于 2013-12-14 02:30
CM是什么?Crackme是什么?这是什么东西?楼主发的什么?
他们都是一些公开给别人尝试破解的小程序,制作 Crackme 的人可能是程序员,想测试一下自己的软件保护技术,也可能是一位 Cracker,想挑战一下其它 Cracker 的破解实力,也可能是一些正在学习破解的人,自己编一些小程序给自己破解,KeyGenMe是要求别人做出它的 keygen (序号产生器), ReverseMe 要求别人把它的算法做出逆向分析, UnpackMe 是要求别人把它成功脱壳,本版块禁止回复非技术无关水贴。

本帖最后由 zxcfvasd 于 2013-12-14 02:30 编辑

0x1
【作者】:zxcfvasd
【操作平台】:xp sp3
【使用工具】:OD

0x2
随便输入后程序就会退出,然后就可以找到退出原因,eax = 调用的服务编号,使用0x7FFE0300 ntdll.KiFastSystemCall快速切入内核调用退出函数。 这也就是为什么作者说逆向分析在sp3上的原因吧


顺藤摸瓜:找点关键点让其断下(4012E0)

这里检查关键点是否下有断点,我直接将原来的je,该为jmp,即使检查到有断点也不会退出,
00401388   .  FF15 00304000 call dword ptr ds:[<&KERNEL32.GetProcAdd>; \GetProcAddress
0040138E   .  6A 14         push 0x14
00401390   .  50            push eax
00401391   .  E8 DA040000   call CrackMe1.00401870    ;软件断点检查函数
00401396   .  83C4 08       add esp,0x8
00401399   .  85C0          test eax,eax
0040139B   .  EB 05         jmp XCrackMe1.004013A2
0040139D   .  E8 BE040000   call CrackMe1.00401860   ;进程退出函数
004013A2   >  68 9E000000   push 0x9E
004013A7   .  68 A0184000   push CrackMe1.004018A0
004013AC   .  E8 BF040000   call CrackMe1.00401870
004013B1   .  83C4 08       add esp,0x8
004013B4   .  85C0          test eax,eax
004013B6   .  EB 05         jmp XCrackMe1.004013BD
004013B8   .  E8 A3040000   call CrackMe1.00401860


接下来调用两个SetTimer,分别在TimeProc函数上下断


F9然程序跑气;
会断到时间会调函:
在4018A0: 调用QueryPerformanceFrequency函数,计算程序运行时间(dagai),然后比较值进行反调试
004018D3   > \68 F0404000   push CrackMe1.004040F0                   ; /pPerformanceFreq = CrackMe1.004040F0
004018D8   .  FF15 08304000 call dword ptr ds:[<&KERNEL32.QueryPerfo>; \QueryPerformanceFrequency
004018DE   .  68 F8404000   push CrackMe1.004040F8
004018E3   .  FFD6          call esi
00401931   .  3D D0070000   cmp eax,0x7D0      比较计算的时间值
00401936   .  5E            pop esi
00401937   .  EB 05         jmp XCrackMe1.0040193E   我使用同样的方法jmp
00401939   .  E8 22FFFFFF   call CrackMe1.00401860
0040193E   >  C2 1000       retn 0x10



在401950中:
同样是对关键点是否下有断点检查
下面这段代码是判断是否有硬件断点存在,我只直接将结束call xxoo了
00401A86   .  FF15 14304000 call dword ptr ds:[<&KERNEL32.GetCurrent>; |[GetCurrentThread
00401A8C   .  50            push eax                                 ; |hThread
00401A8D   .  FF15 10304000 call dword ptr ds:[<&KERNEL32.GetThreadC>; \GetThreadContext
00401A93   .  395C24 4C     cmp dword ptr ss:[esp+0x4C],ebx
00401A97   .  75 12         jnz XCrackMe1.00401AAB
00401A99   .  395C24 50     cmp dword ptr ss:[esp+0x50],ebx
00401A9D   .  75 0C         jnz XCrackMe1.00401AAB
00401A9F   .  395C24 54     cmp dword ptr ss:[esp+0x54],ebx
00401AA3   .  75 06         jnz XCrackMe1.00401AAB
00401AA5   .  395C24 58     cmp dword ptr ss:[esp+0x58],ebx
00401AA9   .  74 05         je XCrackMe1.00401AB0
00401AAB   >  90            nop
00401AAC   .  90            nop
00401AAD   .  90            nop
00401AAE   .  90            nop
00401AAF   .  90            nop


作者这样不断的检查一些地址,同样也给逆向人员带来了方便,因为这样很快就能发现程序关键点了。
这就是程序的关键call了,

算法很简单的:
00401550  |> /33C0          /xor eax,eax
00401552  |. |8A03          |mov al,byte ptr ds:[ebx]
00401554  |. |8D0440        |lea eax,dword ptr ds:[eax+eax*2]
00401557  |. |99            |cdq
00401558  |. |2BC2          |sub eax,edx
0040155A  |. |D1F8          |sar eax,1
0040155C  |. |25 FF000000   |and eax,0xFF
00401561  |. |50            |push eax
00401562  |. |8D4424 14     |lea eax,dword ptr ss:[esp+0x14]
00401566  |. |50            |push eax
00401567  |. |56            |push esi
00401568  |. |FFD5          |call ebp                                ;  msvcrt.sprintf


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x

免费评分

参与人数 1热心值 +1 收起 理由
Chief + 1 吾爱破解2013CM大赛,有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

黑夜伴影 发表于 2013-12-14 04:01
我对破解还不会、只能膜拜会破解的大婶
朦胧中的罪 发表于 2013-12-14 04:03
 楼主| h_one 发表于 2013-12-15 16:31
黑夜伴影 发表于 2013-12-14 04:01
我对破解还不会、只能膜拜会破解的大婶

多敲代码
头像被屏蔽
bambooqj 发表于 2013-12-15 16:39
提示: 作者被禁止或删除 内容自动屏蔽
围剿 发表于 2013-12-16 20:27
起码先把汇编看完再说了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 16:01

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表