吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8967|回复: 31
收起左侧

[原创] 一个真的适合新手的Crackme

  [复制链接]
JoyChou 发表于 2012-5-14 01:26
JoyChou.zip (95.12 KB, 下载次数: 94) 脚本已经注明出处 by willJ
作者:————JoyChou
查壳是yoda's Protector 1.03.2
然后脚本我已经打包了,用脚本脱壳后会有个自校验,然后自己F12调用堆栈,nop掉那个“雅蠛蝶就ok了”

这里就由菜鸟我简单说下这个CM的不脱壳破解
F12调用堆栈后,来到这,其实看到下面的提示就知道可以通过下断点可以关键的地方
在77D6657A    C2 1000         retn 10  处下段,单步到程序领空

然后观察到字符串了,关键的地方也就找到了

004011AC   .  FFD6          call esi                                            ; \获取用户名,长度返回给eax
004011AE   .  6A 09         push 9                                              ; /Count = 9
004011B0   .  8D4424 0C     lea eax,dword ptr ss:[esp+C]                        ; |
004011B4   .  50            push eax                                            ; |Buffer
004011B5   .  68 EB030000   push 3EB                                            ; |ControlID = 3EB (1003.)
004011BA   .  57            push edi                                            ; |hWnd
004011BB   .  FFD6          call esi                                            ; \获取假码,长度依然给eax
004011BD   .  8D7424 08     lea esi,dword ptr ss:[esp+8]                        ;  假码
004011C1   .  8D4C24 1C     lea ecx,dword ptr ss:[esp+1C]                       ;  用户名
004011C5   .  E8 36FEFFFF   call Crackwho.00401000                              //这里就是算法,进去看就知道了,算法了,很简单的,还是比较适合新手,这里我就把注册机贴出来吧。
004011CA   .  5E            pop esi
004011CB   .  6A 00         push 0
004011CD   .  68 3C9A4000   push Crackwho.00409A3C
004011D2   .  85C0          test eax,eax
004011D4   .  74 20         je short Crackwho.004011F6
004011D6   .  68 449A4000   push Crackwho.00409A44                              ;  UNICODE "Congratulation"
004011DB   .  57            push edi
004011DC   .  FF15 FC804000 call dword ptr ds:[4080FC]
004011E2   .  33C0          xor eax,eax
004011E4   .  5F            pop edi
004011E5   .  8B4C24 28     mov ecx,dword ptr ss:[esp+28]
004011E9   .  33CC          xor ecx,esp
004011EB   .  E8 D1000000   call Crackwho.004012C1
004011F0   .  83C4 2C       add esp,2C
004011F3   .  C2 1000       retn 10
004011F6   >  68 649A4000   push Crackwho.00409A64                              ;  UNICODE "Sorry,You are wrong"
004011FB   .  57            push edi
004011FC   .  FF15 FC804000 call dword ptr ds:[4080FC]

进入call到这发现算法,这只是第一重循环,我想下面的7次循环应该也没问题了
0040103E  |.  0FB701        movzx eax,word ptr ds:[ecx]                         ;  eax指向用户名
00401041  |.  0FB71424      movzx edx,word ptr ss:[esp]                         ;  edx指向syclover
00401045  |.  33C2          xor eax,edx                                         ;  第一位用户名和‘s’异或
00401047  |.  99            cdq
00401048  |.  57            push edi
00401049  |.  BF 1A000000   mov edi,1A
0040104E  |.  F7FF          idiv edi                                            ;  异或的结果与1A的余数给edx
00401050  |.  0FB741 02     movzx eax,word ptr ds:[ecx+2]                       ;  此时将假码第二位给eax,准备进行下一次循环
00401054  |.  6A 09         push 9                                              ; /Arg3 = 00000009
00401056  |.  56            push esi                                            ; |Arg2
00401057  |.  51            push ecx                                            ; |Arg1
00401058  |.  83C2 41       add edx,41                                          ; |余数加41
0040105B  |.  66:8911       mov word ptr ds:[ecx],dx                            ; |结果放回ecx



用户名:JoyChou
注册码:FWAVHZQK
PS:当看到出现一个字符串:syclover就可以猜测注册码是8位的。此题是明码比较的,菜鸟就装B的吧算法写了出来,忘老鸟勿喷。


算法:
用户名每一位和syclover十六进制异或,结果%1A,再+0x41,结果转字符
换成十进制就是,结果%26,再加上65

由于菜鸟只会C语言,所以只能写个苦逼的C程序,忘大牛见怪
#include <stdio.h>

int main(void)
{
        char name[10];
        int i, c;
        char temp[10] = "syclover";
        char key[10];
       
        printf("input your name:");
        gets(name);
       
       
       
        for (i = 0; i < 8; i++)
        {
                key = ( (name ^ temp)%26 ) + 65;
        }
        key= '\0';
       
        printf("the key is:     ");
        puts(key);
       
        printf("\n");
       
        c=getchar();
       
        return 0;
}

免费评分

参与人数 3热心值 +3 收起 理由
Kingofdiaos + 1 膜拜膜拜。。。。学习学习。。。。
Mario + 1 膜拜脚臭....
Thend + 1 膜拜 Joychou 大牛 。。。 求带分析算法。

查看全部评分

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

 楼主| JoyChou 发表于 2012-5-14 01:32
菜鸟第一次写这个,好紧张
Kavia 发表于 2012-5-14 01:40
 楼主| JoyChou 发表于 2012-5-14 01:44
现在看了下,写得太不详细了,额。可耻的匿了,睡觉去了。睡觉前先膜拜下J大牛
502468471 发表于 2012-5-14 10:13
学习下!!!
willJ 发表于 2012-5-14 10:38
可以讲讲那个壳的手动脱法,写得不错
Thend 发表于 2012-5-14 13:26
膜拜楼主 。 呵呵
leeyeah93 发表于 2012-5-14 13:34
菜鸟学习了
Mario 发表于 2012-5-14 15:34
脚臭带我算法分析...教我写C语言程序....
hsj840119 发表于 2012-5-14 16:23
分析的不错···谢谢分享!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-25 16:30

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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