首页
社区
课程
招聘
再发一个简单的 CrackME 2
2007-5-11 21:47 10553

再发一个简单的 CrackME 2

2007-5-11 21:47
10553
前天发错了一个带 BUG 的 CM,深感内疚,为了对的起和我一样的菜鸟
严重BS一下那些能写注册机的大牛 (我不是叫高手远远。。。。。远的飘走吗?)晕,
竟然跑来几个
今晚没事干,为了补救一下形象,就动手写了这个 CM
难度:1/10 (好像有个版主通常都是这样写的)

[培训]科锐软件逆向50期预科班报名即将截止,速来!!! 50期正式班报名火爆招生中!!!

上传的附件:
收藏
免费 0
打赏
分享
最新回复 (16)
雪    币: 201
活跃值: (2073)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
4st0ne 4 2007-5-11 21:51
2
0
某版主还常常说:CrackMe不要加壳
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
yingyue 2007-5-11 21:54
3
0
那是为了节省论坛空间,UPX 加的
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
qpzm 2007-5-12 11:23
4
0
我是新手,fs怎么也脱不掉?
雪    币: 2319
活跃值: (565)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
riijj 7 2007-5-12 11:56
5
0
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
yingyue 2007-5-12 17:00
6
0
顶上去,这次采取了严重放水的方式 ,连我自己都感觉过份啊 !
真的,今天重新看了一次代码,有一个位置实在放水的过份了。。。。。
大家继续努力啊,算法等你弄出来后就知道简单了
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
yingyue 2007-5-13 00:18
7
0
啊,怎么还没有结果啊,我发誓这次绝对没 BUG 的,测试过 N 多次了

我可爱的高手哪去了,又是陷阱啊!
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
yingyue 2007-5-13 19:24
8
0
期待。。。。。。。。。。。。。。。。。破文
雪    币: 1969
活跃值: (46)
能力值: (RANK:550 )
在线值:
发帖
回帖
粉丝
hawking 12 2007-5-13 20:02
9
0
捧个场
name: hawkings
key : -117
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
yingyue 2007-5-13 20:52
10
0
强,落幕。。。。。。。。。。。
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
yingyue 2007-5-13 22:06
11
0
扔个 穷举算法注册机

#include<iostream.h>
#include<stdio.h>
#include<string.h>
int ZHEN(int i);
int SUM(int b,int c);
main()
{
    char name[20];
    int sn,i,a,len;
    cout<<endl;
    cout<<"请输入 9-12 位的用户名 ";  // 8 位也可以,9 位以上安全些
    cin.get(name,20);
    len=strlen(name);
    for(i=0;i<len*101;i++)      
    {
        a=i;
        sn=ZHEN(a);                 
    }
    sn=sn+name[2]+name[4];
    a=SUM(sn,len);   
    cout<<"你要的注册码是:"<<a<<endl;
    getchar();
}

int ZHEN(int a)
{
    int sn;
    sn=a/90*3;
    return sn;
}
int SUM(int a,int len)
{
    a=a*10;
    int i,sn,v=0,s=0;
    sn=(len*a^-54321)/(a/len);
    len=len*1.5;
    for(i=-1;i>-1000;i--)
    {
       s++;
       v=i;
       if(sn-(v+v/len)==0)
       break;
    }
    return s-(s*2);
}
雪    币: 405
活跃值: (10)
能力值: ( LV9,RANK:1130 )
在线值:
发帖
回帖
粉丝
binbinbin 28 2007-5-13 22:28
12
0
楼上真有耐心。
我一看到那堆:偷懒了。反正应该没什么的
00401622    817D C0 0E03000>cmp     dword ptr [ebp-40], 30E
00401629    7F 05           jg      short 00401630
0040162B    31C0            xor     eax, eax
0040162D    EB 43           jmp     short 00401672
0040162F    90              nop
00401630    0FBE45 E2       movsx   eax, byte ptr [ebp-1E]
00401634    89C2            mov     edx, eax
00401636    0355 C8         add     edx, dword ptr [ebp-38]
00401639    0FBE45 E4       movsx   eax, byte ptr [ebp-1C]
0040163D    8D0C10          lea     ecx, dword ptr [eax+edx]
00401640    894D C8         mov     dword ptr [ebp-38], ecx
00401643    83C4 FC         add     esp, -4
00401646    8B45 DC         mov     eax, dword ptr [ebp-24]
00401649    50              push    eax
0040164A    8B45 C8         mov     eax, dword ptr [ebp-38]
0040164D    50              push    eax
0040164E    8B45 D8         mov     eax, dword ptr [ebp-28]
00401651    50              push    eax
00401652    E8 71000000     call    004016C8                         ; 这里进去,F7.

进到下面这里。有空的兄弟慢慢看啊~~,一版下来,算法很明显:

004016C8    55              push    ebp
004016C9    89E5            mov     ebp, esp
004016CB    83EC 44         sub     esp, 44
004016CE    53              push    ebx
004016CF    8B55 0C         mov     edx, dword ptr [ebp+C]
004016D2    89D0            mov     eax, edx
004016D4    C1E0 02         shl     eax, 2
004016D7    01D0            add     eax, edx
004016D9    8D1400          lea     edx, dword ptr [eax+eax]
004016DC    8955 FC         mov     dword ptr [ebp-4], edx
004016DF    8B55 10         mov     edx, dword ptr [ebp+10]
004016E2    0FAF55 FC       imul    edx, dword ptr [ebp-4]
004016E6    89D0            mov     eax, edx
004016E8    35 CF2BFFFF     xor     eax, FFFF2BCF
004016ED    8945 DC         mov     dword ptr [ebp-24], eax
004016F0    8B4D FC         mov     ecx, dword ptr [ebp-4]
004016F3    89C8            mov     eax, ecx
004016F5    99              cdq
004016F6    F77D 10         idiv    dword ptr [ebp+10]
004016F9    89C3            mov     ebx, eax
004016FB    8B45 DC         mov     eax, dword ptr [ebp-24]
004016FE    99              cdq
004016FF    F7FB            idiv    ebx
00401701    89C1            mov     ecx, eax
00401703    894D F8         mov     dword ptr [ebp-8], ecx
00401706    DB45 08         fild    dword ptr [ebp+8]
00401709    DB45 08         fild    dword ptr [ebp+8]
0040170C    DB45 10         fild    dword ptr [ebp+10]
0040170F    DD05 C0164000   fld     qword ptr [4016C0]
00401715    DEC9            fmulp   st(1), st
00401717    DEE9            fsubp   st(1), st
00401719    DEE9            fsubp   st(1), st
0040171B    D97D EA         fstcw   word ptr [ebp-16]
0040171E    66:8B45 EA      mov     ax, word ptr [ebp-16]
00401722    66:0D 000C      or      ax, 0C00
00401726    66:8945 E8      mov     word ptr [ebp-18], ax
0040172A    D96D E8         fldcw   word ptr [ebp-18]
0040172D    DB5D F4         fistp   dword ptr [ebp-C]
00401730    D96D EA         fldcw   word ptr [ebp-16]
00401733    8B4D 08         mov     ecx, dword ptr [ebp+8]
00401736    89C8            mov     eax, ecx
00401738    99              cdq
00401739    F77D F4         idiv    dword ptr [ebp-C]
0040173C    8B55 08         mov     edx, dword ptr [ebp+8]
0040173F    01C2            add     edx, eax
00401741    8955 F0         mov     dword ptr [ebp-10], edx
00401744    8B45 F8         mov     eax, dword ptr [ebp-8]
00401747    3B45 F0         cmp     eax, dword ptr [ebp-10]
0040174A    75 09           jnz     short 00401755                   ; 这里爆破
0040174C    B8 0B000000     mov     eax, 0B
00401751    EB 0D           jmp     short 00401760
00401753    EB 0B           jmp     short 00401760
00401755    B8 01000000     mov     eax, 1
0040175A    EB 04           jmp     short 00401760
0040175C    8D7426 00       lea     esi, dword ptr [esi]
00401760    8B5D B8         mov     ebx, dword ptr [ebp-48]
00401763    C9              leave
00401764    C3              retn
雪    币: 200
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
zcg 2007-5-13 22:41
13
0
[QUOTE=binbinbin;309058]楼上真有耐心。
我一看到那堆:偷懒了。反正应该没什么的
00401622    817D C0 0E03000>cmp     dword ptr [ebp-40], 30E
00401629    7F 05           jg      short 00401630
0040...[/QUOTE]

晕,那是作者自己给自己写的注册机!
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
yingyue 2007-5-15 11:52
14
0
#include<iostream.h>
#include<stdio.h>
#include<string.h>
void TT(int a);
void CRACK(void);
int ZHEN(int i);
int SUM(int a,int b,int c);
main()
{
    cout<<"                ---------------------------------------"<<endl;
    cout<<"                   --------------yingyue------------"<<endl;
    cout<<"                  --------------vvvvvvaa@tom.com------"<<endl;
    cout<<"                -----------------CrackMe 2--------------"<<endl;
    cout<<"                    >>>>>>>>>>  不要爆破  <<<<<<<<<<<           "<<endl;
    char name[20];
    int len,code,w,j;
    int *p=new int [1300];          // 骗人的
    int sn,i,a;
    cout<<endl<<endl;
    cout<<">>> 请输入你的大名吧 :";
    cin.get(name,20);
    len=strlen(name);
    if(len<3)
    return 0;
    cout<<endl<<endl;
    cout<<">>> 请输入你的假码吧 :";
    cin>>code;
    for(i=0;i<len*101;i++)       //输入了 8 个字符后,这里输出了 24
    {
        a=i;          // a 取得当前 i 的值
        sn*=2;
        sn=i-3;
        sn=ZHEN(a);                 //整个循环里就只有这个有用的
        w=sn*4;
        j=w*2+33;
        p[i]=i*3/2;               // 骗人的
    }
    cout<<endl<<endl;
    delete [] p;      //释放动态数组
    if(a<783)     //这里变相要你的用户名不能小于8位
    return 0;
    sn=sn+name[2]+name[4];  //这里把注册码和用户名勾挂
    a=SUM(code,sn,len);   // 把上面流水循环最后的结果流到这个函数继续工作
    TT(a);        // 显示 成功.失败 函数
}
//----------------------------------   下面是函数定义部份
int ZHEN(int a)
{
    int sn;
    sn=a/90*3;
    return sn;
}
int SUM(int code,int a,int len)
{
    int b=a*10,sn;
    int s,v;
    sn=(len*b^-54321)/(b/len);
    s=code-(code-len*1.5);
    v=code+(code/s);
    if(sn-v==0)
    return 11;
    else
    return 1;
}
void CRACK(int a)
{
    if(a!=11)
    {
    cout<<">>>>> 恭喜你,还有努力啊!"<<endl;
    getchar();
    }
}
void TT(int  a)
{
    if(a==11)
    {
    cout<<">>>>> 叫你输入假码,你就输入真码,严重佩服你的能力,强"<<endl;
    getchar();
    }
    CRACK(a);
}
雪    币: 424
活跃值: (10)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
大菜一号 21 2007-5-17 09:23
15
0
源码都丢出来```
汗``不搞了`
雪    币: 228
活跃值: (16)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
水中花 4 2007-5-17 15:06
16
0
name:jgh1316
code:707
雪    币: 87
活跃值: (1509)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
tzl 10 2007-5-17 16:09
17
0
不错不错,支持一下
游客
登录 | 注册 方可回帖
返回