吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5056|回复: 15
收起左侧

[CrackMe] 新手超简单找回自信CM01

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



来个简单的CM。新手找回自信专用.

PS:我编写程序的时候,几次忍不住笑


本帖子中包含更多资源

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

x

免费评分

参与人数 2吾爱币 +1 热心值 +2 收起 理由
向挽. + 1 + 1 不懂得
KaQqi + 1 您那是giggle...我看到您把许多人坑了之后的笑容了,哈哈

查看全部评分

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

zbnysjwsnd8 发表于 2017-8-11 18:10
本帖最后由 zbnysjwsnd8 于 2017-8-12 22:35 编辑
SeriousSnow 发表于 2017-8-11 18:03
看到这样的按钮事件,,我以为是HOOK API结果发现,,好像不是,,,那应该就是有地方修改内存,,然而没发 ...

有个密文 长度是0x12个字节
依次和0x88异或 得到注册码


[Asm] 纯文本查看 复制代码
00487AB2    B9 12000000     mov ecx,0x12
00487AB7    BA AC7B4800     mov edx,CM01.00487BAC
00487ABC    83F9 00         cmp ecx,0x0
00487ABF    74 07           je short CM01.00487AC8
00487AC1    8032 88         xor byte ptr ds:[edx],0x88
00487AC4    42              inc edx                                  ; CM01.<ModuleEntryPoint>
00487AC5    49              dec ecx                                  ; CM01.<ModuleEntryPoint>
00487AC6  ^ EB F4           jmp short CM01.00487ABC

异或后:

出现的52pojie.cnBy:Xjun就是注册码
然后计算出的注册码和用户输入的注册码比较
如果不相等则直接返回
相等的话就把第二个提示的MessageBox("注册失败")中的"失败"改成"成功" 再更改一下MessageBox的图标(修改后是一个感叹号 原来是一个叉) 然后返回
[Asm] 纯文本查看 复制代码
00487AC8    68 AC7B4800     push CM01.00487BAC                       ; 计算出的注册码
00487ACD    50              push eax                                 ; 用户输入的注册码
00487ACE    E8 2E000000     call CM01.00487B01                       ; 文本比较 相等返回0
00487AD3    83F8 00         cmp eax,0x0
00487AD6    0F84 E5000000   je CM01.00487BC1

00487BC1    C705 5D9B4600 B>mov dword ptr ds:[0x469B5D],0xA6B9C9B3   ; 失败 改成 成功
00487BCB    C605 4E114000 4>mov byte ptr ds:[0x40114E],0x40
00487BD2    83C4 08         add esp,0x8
00487BD5    90              nop
00487BD6    90              nop
00487BD7    90              nop
00487BD8    61              popad
00487BD9    8901            mov dword ptr ds:[ecx],eax
00487BDB    8B4C24 58       mov ecx,dword ptr ss:[esp+0x58]
00487BDF  - E9 98BAF8FF     jmp CM01.0041367C


然后退出支持库以后 在按钮事件中取出注册码的前7个字节 和"52pojie"比较
[Asm] 纯文本查看 复制代码
004010AA  |.  C745 FC 00000>mov [local.1],0x0
004010B1  |.  6A FF         push -0x1
004010B3  |.  6A 08         push 0x8
004010B5  |.  68 03000116   push 0x16010003                          ;  编辑框1
004010BA  |.  68 01000152   push 0x52010001
004010BF  |.  E8 4E010000   call CM01.00401212                       ;  jmp to <CM01.控件属性获取>(这里就被修改了 获取注册码)
004010C4  |.  83C4 10       add esp,0x10
004010C7  |.  8945 F8       mov [local.2],eax
004010CA  |.  68 01030080   push 0x80000301
004010CF  |.  6A 00         push 0x0
004010D1  |.  68 07000000   push 0x7
004010D6  |.  68 04000080   push 0x80000004
004010DB  |.  6A 00         push 0x0
004010DD  |.  8B45 F8       mov eax,[local.2]                        ;  kernel32.BaseThreadInitThunk
004010E0  |.  85C0          test eax,eax
004010E2  |.  75 05         jnz short CM01.004010E9
004010E4  |.  B8 509B4600   mov eax,CM01.00469B50
004010E9  |>  50            push eax
004010EA  |.  68 02000000   push 0x2
004010EF  |.  BB 70124000   mov ebx,<CM01.取文本左边>
004010F4  |.  E8 13010000   call CM01.0040120C                       ;  jmp to <CM01.调用核心支持库>
004010F9  |.  83C4 1C       add esp,0x1C
004010FC  |.  8945 F4       mov [local.3],eax
004010FF  |.  8B5D F8       mov ebx,[local.2]                        ;  kernel32.BaseThreadInitThunk
00401102  |.  85DB          test ebx,ebx
00401104  |.  74 09         je short CM01.0040110F
00401106  |.  53            push ebx
00401107  |.  E8 FA000000   call CM01.00401206                       ;  jmp to <CM01.释放变量空间>
0040110C  |.  83C4 04       add esp,0x4
0040110F  |>  8B45 F4       mov eax,[local.3]
00401112  |.  50            push eax
00401113  |.  8B5D FC       mov ebx,[local.1]
00401116  |.  85DB          test ebx,ebx
00401118  |.  74 09         je short CM01.00401123
0040111A  |.  53            push ebx
0040111B  |.  E8 E6000000   call CM01.00401206                       ;  jmp to <CM01.释放变量空间>
00401120  |.  83C4 04       add esp,0x4
00401123  |>  58            pop eax                                  ;  kernel32.75DA38F4
00401124  |.  8945 FC       mov [local.1],eax
00401127  |.  68 519B4600   push CM01.00469B51                       ;  52pojie
0040112C  |.  FF75 FC       push [local.1]
0040112F  |.  E8 D0FEFFFF   call <CM01.比较文本>
00401134  |.  83C4 08       add esp,0x8
00401137  |.  83F8 00       cmp eax,0x0
0040113A  |.  0F85 35000000 jnz CM01.00401175


不相等提示失败(前面的比较注册码也不会通过)
[Asm] 纯文本查看 复制代码
00401175  |> \6A 00         push 0x0
00401177  |.  6A 00         push 0x0
00401179  |.  6A 00         push 0x0
0040117B  |.  68 01030080   push 0x80000301
00401180  |.  6A 00         push 0x0
00401182  |.  68 10000000   push 0x10
00401187  |.  68 04000080   push 0x80000004
0040118C  |.  6A 00         push 0x0
0040118E  |.  68 599B4600   push CM01.00469B59                       ;  注册失败!
00401193  |.  68 03000000   push 0x3
00401198  |.  BB 90134000   mov ebx,<CM01.系统核心支持库.未知命令>
0040119D  |.  E8 6A000000   call CM01.0040120C                       ;  jmp to <CM01.调用核心支持库>
004011A2  |.  83C4 28       add esp,0x28

否则的话提示失败(用户输入的注册码的前七个字节是"52pojie" 但是剩下的部分不是".cnBy:Xjun")
[Asm] 纯文本查看 复制代码
00401140  |.  6A 00         push 0x0
00401142  |.  6A 00         push 0x0
00401144  |.  6A 00         push 0x0
00401146  |.  68 01030080   push 0x80000301
0040114B  |.  6A 00         push 0x0
0040114D  |.  68 10000000   push 0x10
00401152  |.  68 04000080   push 0x80000004
00401157  |.  6A 00         push 0x0
00401159  |.  68 599B4600   push CM01.00469B59                       ;  注册失败!
0040115E  |.  68 03000000   push 0x3
00401163  |.  BB 90134000   mov ebx,<CM01.系统核心支持库.未知命令>
00401168  |.  E8 9F000000   call CM01.0040120C                       ;  jmp to <CM01.调用核心支持库>
0040116D  |.  83C4 28       add esp,0x28

如果用户输入的注册码的前七个字节是"52pojie" 并且剩下的部分是".cnBy:Xjun" 那么在前面就会将"失败"改成"成功" MessageBox的图标也会被更改(修改后是一个感叹号 原来是一个叉)
[Asm] 纯文本查看 复制代码
00401140  |.  6A 00         push 0x0
00401142  |.  6A 00         push 0x0
00401144  |.  6A 00         push 0x0
00401146  |.  68 01030080   push 0x80000301
0040114B  |.  6A 00         push 0x0
0040114D  |.  68 40000000   push 0x40
00401152  |.  68 04000080   push 0x80000004
00401157  |.  6A 00         push 0x0
00401159  |.  68 599B4600   push CM01.00469B59                       ;  注册成功!
0040115E  |.  68 03000000   push 0x3
00401163  |.  BB 90134000   mov ebx,<CM01.系统核心支持库.未知命令>
00401168  |.  E8 9F000000   call CM01.0040120C                       ;  jmp to <CM01.调用核心支持库>
0040116D  |.  83C4 28       add esp,0x28

本帖子中包含更多资源

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

x

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
Aperodry + 1 + 1 谢谢@Thanks!

查看全部评分

Je11y 发表于 2017-8-11 22:30
十分尴尬, 我断点断错位置了 报错后OD直接定位到了真码位置..........

免费评分

参与人数 1吾爱币 +2 热心值 +1 收起 理由
610100 + 2 + 1 热心回复!

查看全部评分

2217936322 发表于 2017-8-11 16:39
zbnysjwsnd8 发表于 2017-8-11 16:46
本帖最后由 zbnysjwsnd8 于 2017-8-11 16:51 编辑

52pojie.cnBy:Xjun
zbnysjwsnd8 发表于 2017-8-11 16:50
本帖最后由 zbnysjwsnd8 于 2017-8-11 16:52 编辑

唔 可以 是修改支持库
注册码:52pojie.cnBy:Xjun

本帖子中包含更多资源

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

x
linlkz 发表于 2017-8-11 16:54
怎么知道成功与否呢?
PETiger 发表于 2017-8-11 18:00
你也开始发cm了
SeriousSnow 发表于 2017-8-11 18:03
看到这样的按钮事件,,我以为是HOOK API结果发现,,好像不是,,,那应该就是有地方修改内存,,然而没发现线程或者时钟,,,,无奈二进制搜索成功,还真搜到了,,,然后还是没啥头绪,就周围内存下访问断点,,看看有没有啥有用的,,然后就发现
上面那块内存会断下来,,看堆栈 编辑框1 还有我的假码都在,,,,,,,然后F9F9F9这就是注册码就一个一个出来了了,,,,我是真的服了,,完全不知道这个是怎么弄的,,稀里糊涂的的找到了注册码,,,,,求楼主告知

本帖子中包含更多资源

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

x
SeriousSnow 发表于 2017-8-11 18:31
zbnysjwsnd8 发表于 2017-8-11 18:10
有个密文 长度是0x12个字节
依次和0x88异或 得到注册码

我去,,,改了支持库,,,,厉害厉害,,,
bestyyb 发表于 2017-8-11 21:26
你这个就是标题党啊,没几个找回自信的到现在。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-24 16:40

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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