首页
社区
课程
招聘
[宣布]Script editor结束,现在换个软件。请大家不要手下留情
发表于: 2007-9-8 22:33 1449

[宣布]Script editor结束,现在换个软件。请大家不要手下留情

2007-9-8 22:33
1449
今天华军软件园刚更新的软件
下载地址是:http://www.newhua.com/soft/47230.htm
请大家不要手下留情,软件无壳,方法应该和script editor差不多,但是可能会有些不同。
我先来一部分,下面就交给大家了,该怎么着就怎么着
00423C72   .  83C4 08       ADD ESP,8
00423C75   .  85C0          TEST EAX,EAX
00423C77   .  75 18         JNZ SHORT Speed_DV.00423C91
00423C79   .  6A 40         PUSH 40
00423C7B   .  68 38FE4900   PUSH Speed_DV.0049FE38                   ;  sorry
00423C80   .  68 0CFE4900   PUSH Speed_DV.0049FE0C                   ;  invalid username or registration code
00423C85   .  8BCE          MOV ECX,ESI
00423C87   .  E8 EF7E0400   CALL Speed_DV.0046BB7B
00423C8C   .  E9 A0000000   JMP Speed_DV.00423D31
00423C91   >  8B4E 5C       MOV ECX,DWORD PTR DS:[ESI+5C]
00423C94   .  8D5424 04     LEA EDX,DWORD PTR SS:[ESP+4]
00423C98   .  51            PUSH ECX
00423C99   .  68 F0FD4900   PUSH Speed_DV.0049FDF0                   ;  license to:%s
00423C9E   .  52            PUSH EDX
00423C9F   .  E8 201E0400   CALL Speed_DV.00465AC4
00423CA4   .  8B4424 10     MOV EAX,DWORD PTR SS:[ESP+10]
00423CA8   .  83C4 0C       ADD ESP,0C
00423CAB   .  8BCE          MOV ECX,ESI
00423CAD   .  6A 40         PUSH 40
00423CAF   .  68 E4FD4900   PUSH Speed_DV.0049FDE4                   ;  thank you
00423CB4   .  50            PUSH EAX
00423CB5   .  E8 C17E0400   CALL Speed_DV.0046BB7B

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (19)
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
跟进~~~
2007-9-8 22:46
0
雪    币: 8322
活跃值: (3481)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
BIT把第一个爆破点写出来了,我也跟上
00401FFB   .  68 60D64900   PUSH 11.0049D660                         ;  license to:
00402000   .  8BCF          MOV ECX,EDI
00402002   .  E8 C7640600   CALL 11.004684CE
00402007   .  68 50D64900   PUSH 11.0049D650                         ;  unrigistered!
0040200C   .  8BCF          MOV ECX,EDI
0040200E   .  E8 0E670600   CALL 11.00468721
00402013   .  68 FC884A00   PUSH 11.004A88FC
00402018   .  8D4C24 14     LEA ECX,DWORD PTR SS:[ESP+14]
0040201C   .  E8 99600600   CALL 11.004680BA
00402021   .  68 00894A00   PUSH 11.004A8900
00402026   .  8D4C24 1C     LEA ECX,DWORD PTR SS:[ESP+1C]
0040202A   .  C68424 300100>MOV BYTE PTR SS:[ESP+130],3
00402032   .  E8 83600600   CALL 11.004680BA
00402037   .  8B5424 18     MOV EDX,DWORD PTR SS:[ESP+18]
0040203B   .  8B4424 10     MOV EAX,DWORD PTR SS:[ESP+10]
0040203F   .  52            PUSH EDX
00402040   .  50            PUSH EAX
00402041   .  C68424 340100>MOV BYTE PTR SS:[ESP+134],4
00402049   .  E8 62190200   CALL 11.004239B0
0040204E      83C4 08       ADD ESP,8
00402051      85C0          TEST EAX,EAX
00402053      74 18         JE SHORT 11.0040206D              这里爆破后就。。。。。。。。。
00402055      68 3CD64900   PUSH 11.0049D63C                         ;  license to:
0040205A      8BCF          MOV ECX,EDI
0040205C   .  E8 6D640600   CALL 11.004684CE
00402061   .  8D4C24 10     LEA ECX,DWORD PTR SS:[ESP+10]
00402065   .  51            PUSH ECX

上传的附件:
2007-9-8 23:43
0
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
呵呵,也爆了~
修改函数
0x4235D0:
mov eax,1;
ret;
2007-9-9 09:08
0
雪    币: 177
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
要是只改BIT的那处就会每次让你输入注册码
麻烦点.
logkiller和ClyDenker想法也不错的
向学习大家了
我的想法是在字符串参考中找license to;把所有的license to上的跳转都改成相反的
大家也知道那些跳转的判断注册与否的东西,所以我们把作者的思路反下就可以了,
然后保存~
这样就一次注册,终生使用
不知道对不对
我是小菜,请大家指点~~~
2007-9-9 10:38
0
雪    币: 1505
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
6
哈哈
2007-9-9 11:41
0
雪    币: 1505
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
7
做到这一步就非常好了 有没有暗桩以及其他的东西先不管
从第二周开始就要分析算法 大家做好准备噢!
2007-9-9 11:43
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
好像这个程序的关键代码ida分析成.data段的数据。想在ida里方便的看算法不行。。。。od看MFC的东西好累啊,满屏幕的call。
2007-9-9 13:13
0
雪    币: 598
活跃值: (96)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
贴2个注册码
pediy  KAIEHGkesVcnrTpA  
Second  LAiByIGkesVcnrTp
2007-9-9 14:29
0
雪    币: 598
活跃值: (96)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
跟着前边两位分析的继续分析,第一次发贴错的地方或者分析不好的地方希望高手多多教俺。

00423C60   .  8B46 60       mov     eax, dword ptr [esi+60]
00423C63   .  8B4E 5C       mov     ecx, dword ptr [esi+5C]
00423C66   .  50            push    eax
00423C67   .  51            push    ecx
00423C68   .  C64424 1C 01  mov     byte ptr [esp+1C], 1
00423C6D   .  E8 3EFDFFFF   call    004239B0
00423C72   .  83C4 08       add     esp, 8
00423C75   .  85C0          test    eax, eax
00423C77      75 18         jnz     short 00423C91                ;这个跳转很重要,根据比较eax,eax根据上边的函数出来,所以进上边的函数看看。
00423C79   .  6A 40         push    40
00423C7B   .  68 38FE4900   push    0049FE38                           ;  sorry
00423C80   .  68 0CFE4900   push    0049FE0C                         ;  invalid username or registration code
00423C85   .  8BCE          mov     ecx, esi

/************************************************************************************************/

004239B0  /$  56            push    esi
004239B1  |.  8B7424 0C     mov     esi, dword ptr [esp+C]
004239B5  |.  57            push    edi
004239B6  |.  8B7C24 0C     mov     edi, dword ptr [esp+C]
004239BA  |.  56            push    esi
004239BB  |.  57            push    edi
004239BC  |.  E8 0FFCFFFF   call    004235D0
004239C1  |.  83C4 08       add     esp, 8
004239C4  |.  85C0          test    eax, eax
004239C6  |.  75 11         jnz     short 004239D9
004239C8  |.  56            push    esi
004239C9  |.  57            push    edi
004239CA  |.  E8 E1F6FFFF   call    004230B0
004239CF  |.  83C4 08       add     esp, 8
004239D2  |.  85C0          test    eax, eax                ;这不是那个EAX吗?继续跟上边的函数4230b0
004239D4  |.  75 03         jnz     short 004239D9
004239D6  |.  5F            pop     edi
004239D7  |.  5E            pop     esi
004239D8  |.  C3            retn

/************************************************************************************************/
进入这个4230b0函数以后,前边对用户名和密码进行了好多严整,我想大概包括长度,数字,字母。一类的。

0042314D  |.  F7D1          not     ecx
0042314F  |.  49            dec     ecx
00423150  |.  3BCD          cmp     ecx, ebp
00423152  |.  0F87 52010000 ja      004232AA                         ;  比较用户名和密码的长度
00423158  |.  8BFB          mov     edi, ebx
0042315A  |.  8BCE          mov     ecx, esi
0042315C  |.  F2:AE         repne   scas byte ptr es:[edi]
0042315E  |.  F7D1          not     ecx
00423160  |.  49            dec     ecx
00423161  |.  0F84 43010000 je      004232AA                             ;又是比较,如果让他跳走,那就失败了。
00423167  |.  8BFA          mov     edi, edx
00423169  |.  8BCE          mov     ecx, esi
0042316B  |.  F2:AE         repne   scas byte ptr es:[edi]
0042316D  |.  F7D1          not     ecx
0042316F  |.  49            dec     ecx
00423170  |.  0F84 34010000 je      004232AA                                ;又是比较,如果让他跳走,那就失败了。
00423176  |.  894424 38     mov     dword ptr [esp+38], eax
0042317A  |>  8B5424 38     /mov     edx, dword ptr [esp+38]
0042317E  |.  8A82 E0FC4900 |mov     al, byte ptr [edx+49FCE0]
00423184  |.  8B15 D4424A00 |mov     edx, dword ptr [4A42D4]         ;  Speed_DV.004A42E8

这个地方有3个跳转,如果跳转出去就是说你输入的用户名或者密码的长度不符合软件要求。(我这么认为。在分析分析就好了。)
继续下走。~~~~

0042319B  |.  F2:AE         |repne   scas byte ptr es:[edi]
0042319D  |.  F7D1          |not     ecx
0042319F  |.  49            |dec     ecx
004231A0  |.  C64424 2C 02  |mov     byte ptr [esp+2C], 2
004231A5  |.  74 4F         |je      short 004231F6
004231A7  |>  8A042B        |/mov     al, byte ptr [ebx+ebp]
004231AA  |.  33F6          ||xor     esi, esi
004231AC  |>  3A0475 78FC49>||/cmp     al, byte ptr [esi*2+49FC78]   ;  算法
004231B3  |.  74 08         |||je      short 004231BD
004231B5  |.  46            |||inc     esi
004231B6  |.  83FE 34       |||cmp     esi, 34
004231B9  |.^ 7C F1         ||\jl      short 004231AC
004231BB  |.  EB 11         ||jmp     short 004231CE
004231BD  |>  8A0C75 79FC49>||mov     cl, byte ptr [esi*2+49FC79]
004231C4  |.  51            ||push    ecx
004231C5  |.  8D4C24 38     ||lea     ecx, dword ptr [esp+38]
004231C9  |.  E8 7A550400   ||call    00468748
004231CE  |>  83FE 34       ||cmp     esi, 34
004231D1  |.  75 0E         ||jnz     short 004231E1
004231D3  |.  8B5424 18     ||mov     edx, dword ptr [esp+18]
004231D7  |.  8D4C24 34     ||lea     ecx, dword ptr [esp+34]
004231DB  |.  52            ||push    edx
004231DC  |.  E8 67550400   ||call    00468748
004231E1  |>  8BFB          ||mov     edi, ebx
004231E3  |.  83C9 FF       ||or      ecx, FFFFFFFF

这里就是算法的地方了。循环啊~~~晕晕的。继续下边看。。。
0042320A  |.  52            |push    edx
0042320B  |.  B9 54894A00   |mov     ecx, 004A8954
00423210  |.  E8 8F240400   |call    004656A4
00423215  |.  50            |push    eax
00423216  |.  8D4C24 38     |lea     ecx, dword ptr [esp+38]
0042321A  |.  C64424 30 03  |mov     byte ptr [esp+30], 3
0042321F  |.  E8 39550400   |call    0046875D
00423224  |.  8D4C24 1C     |lea     ecx, dword ptr [esp+1C]
00423228  |.  C64424 2C 02  |mov     byte ptr [esp+2C], 2
0042322D  |.  E8 13510400   |call    00468345
00423232  |>  8B4424 20     |mov     eax, dword ptr [esp+20]
00423236  |.  8B4C24 34     |mov     ecx, dword ptr [esp+34]
0042323A  |.  50            |push    eax                             ; /Arg2               
0042323B  |.  51            |push    ecx                             ; |Arg1
0042323C  |.  E8 B4F90200   |call    00452BF5                        ; \Speed_DV.00452BF5
00423241  |.  83C4 08       |add     esp, 8

呵呵,到了这里,你看看Arg2  和Arg1里边是什么~~~~?抄下来,试试能不能成功。~:)
引用名言:打完收工。从小语文不好,大家能理解就行了,最近西红柿贵,大家别丢我这啊。

总结一下:就是逆推.从eax入手.
2007-9-9 14:52
0
雪    币: 1505
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
11
呀 不是吧 我简单看了一下 也看到了那几个数字 呵呵 不过没太注意
给Sencond两朵大红花
2007-9-9 15:55
0
雪    币: 598
活跃值: (96)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12
/*************************************************************/
        /*  username字符串输入的时候只能是大小写字母,长度小于16个字符。
       
                o_out字符数组里边是存放最后的注册码。
         */
        /*************************************************************/
        char username[]="Second";
        int nameLength=sizeof(username)-1;
        if(nameLength>0x10)
        {
                AfxMessageBox("名称过长");
                return;
        }
        //用到的一个全局数据区域。
        BYTE b_49fc78[0x80]={
                0x61, 0x43, 0x62, 0x78, 0x63, 0x69, 0x64, 0x49, 0x65, 0x41,
                0x66, 0x58, 0x67, 0x4D, 0x68, 0x6B, 0x69, 0x45, 0x6A, 0x56,
                0x6B, 0x5A, 0x6C, 0x65, 0x6D, 0x52, 0x6E, 0x79, 0x6F, 0x42,
                0x70, 0x4B, 0x71, 0x64, 0x72, 0x54, 0x73, 0x53, 0x74, 0x50,
                0x75, 0x57, 0x76, 0x6C, 0x77, 0x6A, 0x78, 0x44, 0x79, 0x48,
                0x7A, 0x46, 0x41, 0x7A, 0x42, 0x71, 0x43, 0x70, 0x44, 0x4F,
                0x45, 0x6B, 0x46, 0x67, 0x47, 0x59, 0x48, 0x6D, 0x49, 0x74,
                0x4A, 0x61, 0x4B, 0x72, 0x4C, 0x51, 0x4D, 0x6E, 0x4E, 0x73,
                0x4F, 0x75, 0x50, 0x55, 0x51, 0x47, 0x52, 0x4A, 0x53, 0x4C,
                0x54, 0x4E, 0x55, 0x62, 0x56, 0x63, 0x57, 0x66, 0x58, 0x68,
                0x59, 0x6F, 0x5A, 0x77, 0x41, 0x4D, 0x42, 0x00, 0x47, 0x6B,
                0x65, 0x73, 0x56, 0x63, 0x6E, 0x72, 0x54, 0x70, 0x41, 0x51,
                0x73, 0x58, 0x77, 0x4B, 0x00, 0x00, 0x00, 0x00
        };
        char o_out[100]={0};
        int j=0;
        do
        {
                for(int i=0;i<0x34;i++)
                {
                        if(username[j]==b_49fc78[i*2])
                        {
                                o_out[j]=b_49fc78[i*2+1];
                                j++;
                                break;
                        }
                }
        }while(j<nameLength);
       
        int otherLen=0x10-nameLength;
        for(int x=0;x<otherLen;x++)
        {
                o_out[nameLength+x]=b_49fc78[x+0x6c];
        }
        AfxMessageBox(_T(o_out));
主要代码大概应该就是这样了.
加点限制就可以当注册机用了.
能力有限望大牛多多给予帮助.谢谢bithaha出的题.能有锻炼的机会.
2007-9-9 17:47
0
雪    币: 177
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
second太强了
向他学习和膜拜~~~

在他的指点下,我也给出组吧:
ysfeagle
HSXACMeAGkesVcnr
2007-9-9 18:40
0
雪    币: 8322
活跃值: (3481)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
楼上的太有才了,我还只会爆破,连注册码也没搞来。。。。。。。。。。。。。。。
2007-9-9 19:54
0
雪    币: 1505
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
15
呵呵 在爆破前面那个函数跟来跟去就看见注册码了

另外,sencond 请把你的分析过程写出来好吗 ,写清楚分析的过程呵呵,不只是结果
另开一帖
2007-9-9 21:26
0
雪    币: 598
活跃值: (96)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
16
分析过程?上边不是已经写了吗?
2007-9-9 21:44
0
雪    币: 1505
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
17
算法分析过程 呵呵
你能另外发个帖子吗,方便以后整理精华
2007-9-9 21:49
0
雪    币: 2134
活跃值: (14)
能力值: (RANK:170 )
在线值:
发帖
回帖
粉丝
18
second,支持下;))
2007-9-9 23:50
0
雪    币: 424
活跃值: (10)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
19
嘿嘿嘿``我来支持鸟`
Second是我们组哒`
2007-9-10 09:15
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
学习 Second ,学习算法
2007-9-10 13:16
0
游客
登录 | 注册 方可回帖
返回
//