好友
阅读权限10
听众
最后登录1970-1-1
|
Teak
发表于 2019-3-12 21:16
本帖最后由 Teak 于 2019-3-30 20:41 编辑
160Crackme之004
这也叫1星,自我感觉比前面三个还难
1. F9 运行,然后输入账户和密码11111 12345 ,如下图所示
2. 可以点击下面的面板,提示说如果注册成功,会显示朱茵小姐姐的靓照,OD里面跟了半天,没找到合适断点,
发现了一个注册成功的字样,如下图所示:
3. 继续反汇编窗口查看该字符串,然后往上查看,如下图所示:
注意红色箭头4580b3这个跳转,在45803b这个地方下断,这是判断的地方,原因是当输入正确的name和serial时才会一步一步执行,
执行有“恭喜恭喜!注册成功”这一步骤,所以我们可以推断,45803b这个地方是判断name和serial是否正确,
输入11111和12345的肯定是错的,所以程序从jnz直接跳转到4580b3,然后什么反应没有,
再次输入,直接nop 替换jnz,得到朱茵女神的靓照如下:
4. 我试了常规方法找了一下注册的断点,还是无解,没办法,拜访了各位大佬的博客,原来这是个delphi语言,
因为报着搞算法的心思来的,所以根本不关心是什么语言,大佬们用了一款dede的反汇编工具,看雪论坛有下载,
不过吾爱破解爱盘也提供了一个反编译工具,其实这俩工具没啥区别,就汉化与否而已,delphi反编译工具的内容如下图所示:
这个程序很简单,就4个事件而已,chkcode多半就是生成算法的地方了,记下位置OD载入查看457c40,
并下断点,F9运行,输入name:11111,再次输入serial,刚输了第一个,
程序立马在457c40处停下来,继续运行到457c88处,反汇编窗口如下:
此时查看堆栈窗口
继续单步
[Asm] 纯文本查看 复制代码
00457C40 /. 55 push ebp
00457C41 |. 8BEC mov ebp,esp
00457C43 |. 51 push ecx
00457C44 |. B9 05000000 mov ecx,0x5
00457C49 |> 6A 00 /push 0x0 ; 循环
00457C4B |. 6A 00 |push 0x0
00457C4D |. 49 |dec ecx
00457C4E |.^ 75 F9 \jnz short CKme.00457C49
00457C50 |. 51 push ecx
00457C51 |. 874D FC xchg [local.1],ecx ; ecx=12fe48 [ecx]="1"
00457C54 |. 53 push ebx
00457C55 |. 56 push esi
00457C56 |. 8BD8 mov ebx,eax ; CKme.00457CA9
00457C58 |. 33C0 xor eax,eax ; CKme.00457CA9
00457C5A |. 55 push ebp
00457C5B |. 68 3D7E4500 push CKme.00457E3D
00457C60 |. 64:FF30 push dword ptr fs:[eax]
00457C63 |. 64:8920 mov dword ptr fs:[eax],esp
00457C66 |. 8BB3 F8020000 mov esi,dword ptr ds:[ebx+0x2F8] ; esi=5 len(11111)+5=10 可以输入name来验证
00457C6C |. 83C6 05 add esi,0x5 ; esi=5+5=A
00457C6F |. FFB3 10030000 push dword ptr ds:[ebx+0x310] ; [ebx+0x310]=961f70 [961f70]="黑头Sun Bird"
00457C75 |. 8D55 F8 lea edx,[local.2] ; edx=12fc90
00457C78 |. 8BC6 mov eax,esi ; eax=A
00457C7A |. E8 85FEFAFF call CKme.00407B04 ; eax=12fc90 [eax]=10 ecx=A,将A转化成10
00457C7F |. FF75 F8 push [local.2]
00457C82 |. FFB3 14030000 push dword ptr ds:[ebx+0x314] ; [961cd4]=961f8c [961f8c]="dseloffc-012-OK"
00457C88 |. 8D55 F4 lea edx,[local.3] ; edx=12fc8c
00457C8B |. 8B83 D4020000 mov eax,dword ptr ds:[ebx+0x2D4] ; eax=964c10 [eax]="聪A"
00457C91 |. E8 B2B6FCFF call CKme.00423348 ; eax=5
00457C96 |. FF75 F4 push [local.3] ; 12fc8c [12fc8c]="11111"
00457C99 |. 8D83 18030000 lea eax,dword ptr ds:[ebx+0x318] ; eax=961cd8
00457C9F |. BA 04000000 mov edx,0x4 ; edx=4
00457CA4 |. E8 93BFFAFF call CKme.00403C3C ; 连接字符串的作用[961cd8]=962024 [962024]="黑头Sun Bird10dseloffc-012-OK11111"
00457CA9 |. 33D2 xor edx,edx ; edx=0
00457CAB |. 8B83 F4020000 mov eax,dword ptr ds:[ebx+0x2F4] ; eax=96477c [eax]="HPB"
然后返回程序将00457CA4得到的数据输入到程序中去,因为参考了大佬们的资料,知道这玩意儿肯定是密钥了,不过写成这样在不知道的情况下估计也是密钥,我也会去试,面板那儿就是坑,我是瞎点几下才显示的照片。后来又去查了几篇文章,才知道是作者留下的坑。
算法大概如下:
Py3
name=input("请随便输入一个账户,如11111:")
s1=len(name)+5
s2="黑头Sun Bird"+str(s1)+"dseloffc-012-OK"+name
print("Serial是: "+s2)
|
免费评分
-
参与人数 1 | 威望 +1 |
吾爱币 +7 |
热心值 +1 |
收起
理由
|
Hmily
| + 1 |
+ 7 |
+ 1 |
感谢发布原创作品,吾爱破解论坛因你更精彩! |
查看全部评分
本帖被以下淘专辑推荐:
- · 学习及教程|主题: 1126, 订阅: 1119
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|