吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2981|回复: 13
收起左侧

[CrackMe] 难度颇高的CrackMe,分析了半天终于搞定了分析给大佬们试试

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

这个程序差点搞的我自闭,绕来绕去,被虐的体无完肤的时候,终于日回去了,总共修改了三处,过程下午贴出来,先观摩下大佬的分享过程,让菜鸡学习下。

本帖子中包含更多资源

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

x

免费评分

参与人数 5吾爱币 +6 热心值 +5 收起 理由
乔木自燃 + 1 + 1 我很赞同!
森森百丈松 + 1 + 1 我很赞同!
CrazyNut + 3 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
wuliwuli + 1 谢谢@Thanks!
火绒 + 1 + 1 用心讨论,共获提升!

查看全部评分

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

solly 发表于 2020-8-11 01:08
这个crackme每次会生成随机的账号名和密码,首先要固定一下账号名和密码,不然就只能用内存注册机了。
固定账号名和密码只要改一条指令:RDTSC,在如下位置:
[Asm] 纯文本查看 复制代码
00401737  /$  55                push ebp
00401738  |.  8BEC              mov ebp,esp
0040173A  |.  51                push ecx
0040173B  |.  52                push edx
0040173C      33C0              xor eax,eax                              ;  破解位置: 由 rdtsc(0F 31) 改成 xor eax, eax (33C0)后,输入字符全部固定为大写的 M
0040173E  |.  69C0 FD430300     imul eax,eax,0x343FD                     ;  214013
00401744  |.  05 C39E2600       add eax,0x269EC3                         ;  2531011
00401749  |.  C1E8 10           shr eax,0x10                             ;  hiword()
0040174C  |.  25 FF7F0000       and eax,0x7FFF                           ;  15914
00401751  |.  8B4D 10           mov ecx,[arg.3]                          ;  'z'
00401754  |.  85C9              test ecx,ecx
00401756  |.  75 05             jnz short Ye_CM1_5.0040175D
00401758  |.  B9 FFFFFF7F       mov ecx,0x7FFFFFFF
0040175D  |>  2B4D 08           sub ecx,[arg.1]                          ;  'z'-'a'
00401760  |.  41                inc ecx                                  ;  26
00401761  |.  33D2              xor edx,edx
00401763  |.  F7F1              div ecx
00401765  |.  0355 08           add edx,[arg.1]                          ;  (15914 % 26) + 'a'
00401768  |.  8BC2              mov eax,edx
0040176A  |.  5A                pop edx
0040176B  |.  59                pop ecx
0040176C  |.  8BE5              mov esp,ebp
0040176E  |.  5D                pop ebp
0040176F  \.  C2 1000           retn 0x10


然后在账号中输入16个大写 M,密码中输入 32 个 M 就可以成功了。

初始化的账号和密码的编码方式説明:
以账号 MMMMMMMMMMMMMMMM 为例説明,将字符 M 取 ASCII 码:0x4D, 异或 0x10,即 0x4D xor 0x10,得到 0x5D,转换成16进制字符串:“5D",这样16个M就是 "5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D",然后再加上9个字符,这9个字符是 MD5("666")中的第3到11字符,为:”E0B27C451“ ,组成 "5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5DE0B27C451",这就是程序初始化好的账号名,密码只是由32个M编码后组成的,后面也是加的"E0B27C451"组成:"5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5DE0B27C451"。但在界面输入的没有编码的原始字符,即账号是16个M组成,密码是32个M组成。

本帖子中包含更多资源

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

x
 楼主| 怕猪猪与逆向 发表于 2020-8-9 23:11
李道臣 发表于 2020-8-10 00:08


看了画眉的视频才搞定的,但是依然不知道啥原理!还是lz列害。

本帖子中包含更多资源

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

x
李喔 发表于 2020-8-10 09:24
列还厉害!!!!!!
Man_Sir_Chen 发表于 2020-8-10 09:52
列还厉害
vlks 发表于 2020-8-10 10:02
一直苦于没有练习的目标啊,谢谢大佬。
N30 发表于 2020-8-10 11:43
嗯嗯嗯,来看看,
Joky 发表于 2020-8-10 12:01
小白一个,求楼主发一下教程!谢谢。
字符串搜索,易语言按钮特征码,API都试过了 找不到。
 楼主| 怕猪猪与逆向 发表于 2020-8-10 13:00
粗略谈下这个程序的分析过程

为什么返回固定key还是不成功了,因为初始窗口过程前还会调用一个call来初始化全局变量并存放对应的真key
所以返回固定key修改完,保存到文件,然后重新运行你会发现成功了
如果是一步步修改的,先修改返回固定key,然后修改[0x4B4570]=返回的固定key [0x4B4574]=返回固定的key 然后运行就成功了,


总结,这个程序大概思路是先初始化存放真全局变量key,然后通过线程混淆跟踪,还有就是全局标记是跟执行过程息息相关的,环环相扣,防止别人直接nop或jmp过程,只有这些全局标记的值都是正确的才会跳转到成功,不然就算载入窗口显示的还是失败!

本帖子中包含更多资源

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

x
 楼主| 怕猪猪与逆向 发表于 2020-8-10 13:02
这是比窗口初始化还早的调用,可能是hook也可能是易语言自带的全局变量初始化过程

本帖子中包含更多资源

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

x
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-28 07:08

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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