吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

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

[CrackMe] 书生CrackMe破文---记录学习过程

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

本帖最后由 L4Nce 于 2014-3-10 17:41 编辑

【文章标题】: 书生--破解思路
【文章作者】: 书生
【软件名称】: [CrackMe] 新手写的CM,求践踏,侮辱,各种爆,各种追
【下载地址】: http://www.52pojie.cn/thread-240736-3-1.html
【加壳方式】: 无
【使用工具】: OD
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
  拿到易语言首先想到的FF 55 FC 5F 5E按钮事件断点吧

  Ctrl+B搜索FF 55 FC 5F 5E按钮事件  发现一直被断下  不用想了 作者加了时钟  立马想到干掉时钟 Bp SetTimer 干掉时钟运行 发现点击按钮后提示空白

  立马知道了 作者是在 时钟里赋值成功 或者失败的  所以这里我们不干掉时钟 否则就永远不成功了0.0

  呵呵

  上面仅是思路 下面才是重点

  我们在按钮事件上 下条件断点

  [ebp-4]!=0040142A&[ebp-4]!=00401211

  这时输入注册码 点击按钮

  好断下后  F7进入

  
[Asm] 纯文本查看 复制代码
00401004  /.  55            push    ebp
  00401005  |.  8BEC          mov     ebp, esp
  00401007  |.  81EC 08000000 sub     esp, 0x8
  0040100D  |.  8965 FC       mov     dword ptr [ebp-0x4], esp
  00401010  |.  68 D0814800   push    004881D0
  00401015  |.  68 00000000   push    0x0
  0040101A  |.  68 00000000   push    0x0
  0040101F  |.  68 68114000   push    00401168
  00401024  |.  68 00000000   push    0x0
  00401029  |.  68 00000000   push    0x0
  0040102E  |.  B8 00000000   mov     eax, 0x0
  00401033  |.  E8 08050000   call    00401540
  00401038  |.  3965 FC       cmp     dword ptr [ebp-0x4], esp
  0040103B  |.  74 0D         je      short 0040104A
  0040103D  |.  68 06000000   push    0x6
  00401042  |.  E8 F3040000   call    0040153A
  00401047  |.  83C4 04       add     esp, 0x4
  0040104A  |>  A3 D0814800   mov     dword ptr [0x4881D0], eax
  0040104F  |.  68 01030080   push    0x80000301
  00401054  |.  6A 00         push    0x0
  00401056  |.  68 C8000000   push    0xC8
  0040105B  |.  68 01000000   push    0x1
  00401060  |.  B8 01000000   mov     eax, 0x1
  00401065  |.  BB 508A4400   mov     ebx, 00448A50
  0040106A  |.  E8 E3040000   call    00401552
  0040106F  |.  83C4 10       add     esp, 0x10
  00401072  |.  68 05000080   push    0x80000005
  00401077  |.  6A 00         push    0x0
  00401079  |.  A1 D4814800   mov     eax, dword ptr [0x4881D4]
  0040107E  |.  85C0          test    eax, eax
  00401080      75 05         jnz     short 00401087
  00401082  |.  B8 FCAC4600   mov     eax, 0046ACFC
  00401087  |>  50            push    eax
  00401088  |.  68 01000000   push    0x1
  0040108D  |.  BB C0164000   mov     ebx, 004016C0
  00401092  |.  E8 B5040000   call    0040154C
  00401097  |.  83C4 10       add     esp, 0x10
  0040109A  |.  8945 FC       mov     dword ptr [ebp-0x4], eax
  0040109D  |.  6A 00         push    0x0
  0040109F  |.  6A 00         push    0x0
  004010A1  |.  6A 00         push    0x0
  004010A3  |.  68 01030080   push    0x80000301
  004010A8  |.  6A 00         push    0x0
  004010AA  |.  68 00000000   push    0x0
  004010AF  |.  68 04000080   push    0x80000004
  004010B4  |.  6A 00         push    0x0
  004010B6  |.  8B45 FC       mov     eax, dword ptr [ebp-0x4]
  004010B9  |.  85C0          test    eax, eax
  004010BB  |.  75 05         jnz     short 004010C2
  004010BD  |.  B8 04AD4600   mov     eax, 0046AD04
  004010C2  |>  50            push    eax
  004010C3  |.  68 03000000   push    0x3
  004010C8  |.  BB F0174000   mov     ebx, 004017F0
  004010CD  |.  E8 7A040000   call    0040154C
  004010D2  |.  83C4 28       add     esp, 0x28
  004010D5  |.  8B5D FC       mov     ebx, dword ptr [ebp-0x4]
  004010D8  |.  85DB          test    ebx, ebx
  004010DA  |.  74 09         je      short 004010E5
  004010DC  |.  53            push    ebx
  004010DD  |.  E8 46040000   call    00401528
  004010E2  |.  83C4 04       add     esp, 0x4
  004010E5  |>  8BE5          mov     esp, ebp
  004010E7  |.  5D            pop     ebp
  004010E8  \.  C3            retn

  ---------------------------------------------------------------------

  00401079  |.  A1 D4814800   mov     eax, dword ptr [0x4881D4] 取常量内容给eax
  0040107E  |.  85C0          test    eax, eax  比较eax
  00401080      75 05         jnz     short 00401087 是否跳转
  00401082  |.  B8 FCAC4600   mov     eax, 0046ACFC  不跳转就赋值
  00401087  |>  50            push    eax    压入栈eax
  00401088  |.  68 01000000   push    0x1    压入栈1
  0040108D  |.  BB C0164000   mov     ebx, 004016C0  把004016C0  给ebx
  00401092  |.  E8 B5040000   call    0040154C
  00401097  |.  83C4 10       add     esp, 0x10
  0040109A  |.  8945 FC       mov     dword ptr [ebp-0x4], eax 这里吧eax给ebp-0x4
  0040109D  |.  6A 00         push    0x0
  0040109F  |.  6A 00         push    0x0
  004010A1  |.  6A 00         push    0x0
  004010A3  |.  68 01030080   push    0x80000301
  004010A8  |.  6A 00         push    0x0
  004010AA  |.  68 00000000   push    0x0
  004010AF  |.  68 04000080   push    0x80000004
  004010B4  |.  6A 00         push    0x0
  004010B6  |.  8B45 FC       mov     eax, dword ptr [ebp-0x4]  然后又把 [ebp-0x4]给eax
  004010B9  |.  85C0          test    eax, eax  对比eax  这里我们使用命令dd eax 然后数据窗口HEX--16位  发现里面内容是:注册码不对,还需要努力  然后我们往上面看eax最初的值是谁赋的 当然是0x4881D4这个常量
  我们对这个常量下内存写入断点
  004010BB  |.  75 05         jnz     short 004010C2  如果不跳转的话默认赋值  这里是跳转的
  004010BD  |.  B8 04AD4600   mov     eax, 0046AD04  赋值

  内存写入断点断在

  00401307  |.  A3 D4814800   mov     dword ptr [0x4881D4], eax
  0040130C  |>  8BE5          mov     esp, ebp
  0040130E  |.  5D            pop     ebp
  0040130F  \.  C3            retn
  然后我们往上面找 注意 mov     dword ptr [0x4881D4], eax 这样的语句

  00401295     /0F84 3B000000 je      004012D6
  0040129B  |. |B8 1BAD4600   mov     eax, 0046AD1B
  004012A0  |. |85C0          test    eax, eax
  004012A2  |. |74 13         je      short 004012B7
  004012A4  |. |50            push    eax
  004012A5  |. |8B40 04       mov     eax, dword ptr [eax+0x4]
  004012A8  |. |83C0 08       add     eax, 0x8
  004012AB  |. |50            push    eax
  004012AC  |. |E8 95020000   call    00401546
  004012B1  |. |59            pop     ecx
  004012B2  |. |5E            pop     esi
  004012B3  |. |8BF8          mov     edi, eax
  004012B5  |. |F3:A4         rep     movs byte ptr es:[edi], byte ptr>
  004012B7  |> |50            push    eax
  004012B8  |. |8B1D D4814800 mov     ebx, dword ptr [0x4881D4]
  004012BE  |. |85DB          test    ebx, ebx
  004012C0  |. |74 09         je      short 004012CB
  004012C2  |. |53            push    ebx
  004012C3  |. |E8 60020000   call    00401528
  004012C8  |. |83C4 04       add     esp, 0x4
  004012CB  |> |58            pop     eax
  004012CC  |. |A3 D4814800   mov     dword ptr [0x4881D4], eax
  004012D1  |. |E9 36000000   jmp     0040130C
  004012D6  |> \B8 4BAD4600   mov     eax, 0046AD4B
  004012DB  |.  85C0          test    eax, eax
  004012DD  |.  74 13         je      short 004012F2
  004012DF  |.  50            push    eax
  004012E0  |.  8B40 04       mov     eax, dword ptr [eax+0x4]
  004012E3  |.  83C0 08       add     eax, 0x8
  004012E6  |.  50            push    eax
  004012E7  |.  E8 5A020000   call    00401546
  004012EC  |.  59            pop     ecx
  004012ED  |.  5E            pop     esi
  004012EE  |.  8BF8          mov     edi, eax
  004012F0  |.  F3:A4         rep     movs byte ptr es:[edi], byte ptr>
  004012F2  |>  50            push    eax
  004012F3  |.  8B1D D4814800 mov     ebx, dword ptr [0x4881D4]
  004012F9  |.  85DB          test    ebx, ebx
  004012FB  |.  74 09         je      short 00401306
  004012FD  |.  53            push    ebx
  004012FE  |.  E8 25020000   call    00401528
  00401303  |.  83C4 04       add     esp, 0x4
  00401306  |>  58            pop     eax
  00401307  |.  A3 D4814800   mov     dword ptr [0x4881D4], eax



  你会发现00401295 这条语句就是关键跳了Nop掉即可

  菜鸟第一次写破文 写的不好 大大们别见笑  希望在这里能找到几个一起学习的朋友  一起学习研究 加好友


--------------------------------------------------------------------------------
【经验总结】
  这几天的学习没白学 呵呵

--------------------------------------------------------------------------------
【版权声明】: 本文原创于书生, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2014年03月10日 15:51:19


免费评分

参与人数 2热心值 +2 收起 理由
L4Nce + 1 我很赞同!欢迎来发cm破文
loveliuhao323 + 1 出视频教程会更好!

查看全部评分

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

shu810687117 发表于 2014-3-10 15:54
支持一下吧,加油
hzg303 发表于 2014-3-10 15:56
 楼主| No_what_can't 发表于 2014-3-10 15:58
hzg303 发表于 2014-3-10 15:56
似乎不是很难的哟

偶是菜鸟一个  大神们别见笑  我老忘 所以写下来 下次还能看
loveliuhao323 发表于 2014-3-10 16:02
以后出视频教程吧
头像被屏蔽
381400744 发表于 2014-3-10 17:31
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-24 20:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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