首页
社区
课程
招聘
超级菜鸟问题~望高手HELP~谢谢~!
发表于: 2005-4-17 16:59 5181

超级菜鸟问题~望高手HELP~谢谢~!

2005-4-17 16:59
5181
我刚开始学破解,很多东西都还不知道,希望各位高手多多指导~
我在破一个crackme的时候,爆破成功,可找不到它的算法,望大家教教我,谢谢
首先,我用W32dsm找"Bad Serial, Sorry!""来到这里,
|:00401135(C)    ;然后双击.
|
:00401154 6A30                    push 00000030

* Possible StringData Ref from Data Obj ->"Crackme 1.0"
                                  |
:00401156 6835304000              push 00403035

* Possible StringData Ref from Data Obj ->"Bad Serial, Sorry!"
                                  |
:0040115B 6822304000              push 00403022
:00401160 FF3554304000            push dword ptr [00403054]

然后,到了

:004010C9 56                      push esi
:004010CA 57                      push edi
:004010CB 51                      push ecx
:004010CC 33F6                    xor esi, esi
:004010CE 33FF                    xor edi, edi
:004010D0 B908000000              mov ecx, 00000008
:004010D5 BE44304000              mov esi, 00403044
:004010DA 803632                  xor byte ptr [esi], 32
:004010DD 46                      inc esi
:004010DE E2FA                    loop 004010DA
:004010E0 BE44304000              mov esi, 00403044
:004010E5 B904000000              mov ecx, 00000004
:004010EA 8A06                    mov al, byte ptr [esi]
:004010EC 8A5E01                  mov bl, byte ptr [esi+01]
:004010EF 32C3                    xor al, bl
:004010F1 88874C304000            mov byte ptr [edi+0040304C], al
:004010F7 83C602                  add esi, 00000002
:004010FA 47                      inc edi
:004010FB E2ED                    loop 004010EA
:004010FD BE4C304000              mov esi, 0040304C
:00401102 8A06                    mov al, byte ptr [esi]
:00401104 8A5E01                  mov bl, byte ptr [esi+01]
:00401107 32C3                    xor al, bl
:00401109 8A5E02                  mov bl, byte ptr [esi+02]
:0040110C 8A4E03                  mov cl, byte ptr [esi+03]
:0040110F 32D9                    xor bl, cl
:00401111 32C3                    xor al, bl
:00401113 B908000000              mov ecx, 00000008
:00401118 BE44304000              mov esi, 00403044
:0040111D 3006                    xor byte ptr [esi], al
:0040111F 46                      inc esi
:00401120 E2FB                    loop 0040111D
:00401122 B908000000              mov ecx, 00000008
:00401127 BE44304000              mov esi, 00403044

* Possible StringData Ref from Data Obj ->"qYyBELGood Work Cracker"
                                  |
:0040112C BF08304000              mov edi, 00403008
:00401131 8A06                    mov al, byte ptr [esi]
:00401133 3A07                    cmp al, byte ptr [edi]
:00401135 751D                    jne 00401154   ;关键跳
:00401137 46                      inc esi
:00401138 47                      inc edi
:00401139 E2F6                    loop 00401131
:0040113B 6A40                    push 00000040

由于水平有限,其他地方就没有注释了,见谅~~
请大家帮我看看算法~谢谢

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (21)
雪    币: 200
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
哎~~没人理我哦~~~
郁闷ing~!
2005-4-17 17:24
0
雪    币: 671
活跃值: (723)
能力值: ( LV9,RANK:1060 )
在线值:
发帖
回帖
粉丝
3
动态跟一下看看!
2005-4-17 18:39
0
雪    币: 200
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
大家帮帮忙啊~
2005-4-17 22:10
0
雪    币: 236
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
:004010C9 56                      push esi
:004010CA 57                      push edi
:004010CB 51                      push ecx
:004010CC 33F6                    xor esi, esi
:004010CE 33FF                    xor edi, edi
:004010D0 B908000000              mov ecx, 00000008
:004010D5 BE44304000              mov esi, 00403044
:004010DA 803632                  xor byte ptr [esi], 32      //403044地址处的后面8个字符分别与0x32异或
:004010DD 46                      inc esi                     //
:004010DE E2FA                    loop 004010DA               //
:004010E0 BE44304000              mov esi, 00403044
:004010E5 B904000000              mov ecx, 00000004
:004010EA 8A06                    mov al, byte ptr [esi]            //用刚才处理后的字符串两两字符异或。
:004010EC 8A5E01                  mov bl, byte ptr [esi+01]
:004010EF 32C3                    xor al, bl
:004010F1 88874C304000            mov byte ptr [edi+0040304C], al   //结果存入40304c后
:004010F7 83C602                  add esi, 00000002
:004010FA 47                      inc edi
:004010FB E2ED                    loop 004010EA                     //循环4次,也就是处理完八个字符。
:004010FD BE4C304000              mov esi, 0040304C
:00401102 8A06                    mov al, byte ptr [esi]            //40304c的字符串前两个字符再次异或
:00401104 8A5E01                  mov bl, byte ptr [esi+01]         //
:00401107 32C3                    xor al, bl                        //(结果A)
:00401109 8A5E02                  mov bl, byte ptr [esi+02]      
:0040110C 8A4E03                  mov cl, byte ptr [esi+03]
:0040110F 32D9                    xor bl, cl                        //第3,4字符异或(结果B)
:00401111 32C3                    xor al, bl                        //A,B异或
:00401113 B908000000              mov ecx, 00000008
:00401118 BE44304000              mov esi, 00403044
:0040111D 3006                    xor byte ptr [esi], al            //A,B异或的值与403044地址开始的字符串再异或8次
:0040111F 46                      inc esi
:00401120 E2FB                    loop 0040111D
:00401122 B908000000              mov ecx, 00000008
:00401127 BE44304000              mov esi, 00403044                 //这个算法很简单。不知看懂没有。
2005-4-17 22:15
0
雪    币: 208
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
算法是满简单的。我个大鸟都看明白了! 我想这个程序是用win32asm写的。
2005-4-18 00:42
0
雪    币: 200
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
呵呵,谢谢先~~`
还得慢慢研究一下~
谢了~
2005-4-18 10:08
0
雪    币: 200
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
004010DA 803632 xor byte ptr [esi], 32 //403044地址处的后面8个字符分别与0x32异或

不好意思,403044地址处的字符是什么??怎么找到??
2005-4-18 10:19
0
雪    币: 108
活跃值: (42)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
最初由 senots 发布
004010DA 803632 xor byte ptr [esi], 32 //403044地址处的后面8个字符分别与0x32异或

不好意思,403044地址处的字符是什么??怎么找到??


:004010D5 BE44304000              mov esi, 00403044
2005-4-18 11:13
0
雪    币: 200
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
最初由 闪电狼 发布


:004010D5 BE44304000 mov esi, 00403044


对不起,我想问的是具体的值应该是多少??
2005-4-18 11:42
0
雪    币: 200
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
哦~~我知道了,是我输入的值~!

呵呵~
2005-4-18 11:45
0
雪    币: 200
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
麻烦哪位帮帮忙算个注册码,好吗??
谢谢~~~
2005-4-18 11:46
0
雪    币: 236
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
13
我都帮你把处理过程写清楚了,难道你还不能算出正确的注册码吗?
2005-4-18 12:55
0
雪    币: 200
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
还是没能理清楚头绪~~~

它只需要输入一个注册号,如果我输入87654321,是不是就是用我输入的87654321计算????那算出的结果肯定不会跟正确的注册码一样啊???
不知道我的理解对不对~~~~请教~!!!
2005-4-18 13:06
0
雪    币: 236
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
15
mov edi, 00403008
:00401131 8A06                    mov al, byte ptr [esi]
:00401133 3A07                    cmp al, byte ptr [edi]
403008这个地方有一个字符来比较。也就是说,你用403008的字符,按照刚才的异或顺利逆向处理就可以得到正确的注册码了
2005-4-18 13:47
0
雪    币: 200
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
可是403008的字符该怎么得到呢?
2005-4-18 14:03
0
雪    币: 236
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
17
你应该是用OD调试吧?在左下角的内存查看区点右键,选前往。。。。输入地址不就看到了吗?
2005-4-18 14:42
0
雪    币: 236
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
18
你把403008地址的字符告诉我,我给你注册码
2005-4-18 15:03
0
雪    币: 200
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
找到这些东西 不知道对不对~

00403008  71 18 59 1B 79 42 45 4C  qYyBEL
2005-4-18 19:27
0
雪    币: 200
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
谢谢xeno的帮助,我算出来了~~
Z3r0Ring
呵呵,再次谢谢xeno,还有帮助过我的各位~!!!
待会做个注册机,呵呵,虽然没什么用,但是也是自己努力做的第一个东东啊~~
2005-4-18 22:17
0
雪    币: 236
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
21
不用谢,加油!
2005-4-19 10:08
0
雪    币: 200
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
哈哈~~~好的~~~
2005-4-19 14:03
0
游客
登录 | 注册 方可回帖
返回
//