首页
社区
课程
招聘
[原创]一组密码,谁能解密?
发表于: 2011-10-23 03:07 9510

[原创]一组密码,谁能解密?

2011-10-23 03:07
9510
我自己不能解密,所以求大家解密,并写个教程。谢谢!
方式:
写个教程,大家都能看懂的
收获:
联系我,我给你源码。

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

上传的附件:
收藏
免费 0
支持
分享
最新回复 (15)
雪    币: 123
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
这个是不是有问题,似乎根本不能解密,不清楚是不是作者故意这样做的还是如何什么。
0040143F  |.  FF15 98444000 CALL    DWORD PTR [<&USER32.GetDlgItemTextA>]                     ; \GetDlgItemTextA
00401445  |.  8D85 FCFEFFFF LEA     EAX, [LOCAL.65]
0040144B  |.  50            PUSH    EAX
0040144C  |.  E8 CF030000   CALL    Password.00401820       //这个CALL取密长度,长度应在10个以内。否则跳走
00401451  |.  59            POP     ECX
00401452  |.  83F8 0B       CMP     EAX, 0B
00401455  |.  73 1F         JNB     SHORT Password.00401476
00401457  |.  8D85 FCFEFFFF LEA     EAX, [LOCAL.65]
0040145D  |.  50            PUSH    EAX
0040145E  |.  E8 BD030000   CALL    Password.00401820
00401463  |.  59            POP     ECX
00401464  |.  50            PUSH    EAX
00401465  |.  8D85 FCFEFFFF LEA     EAX, [LOCAL.65]
0040146B  |.  50            PUSH    EAX
0040146C  |.  E8 C5FEFFFF   CALL    Password.00401336   //这个CALL比对密码CALL
00401471  |.  83F8 01       CMP     EAX, 1
00401474  |.  75 15         JNZ     SHORT Password.0040148B
00401476  |>  6A 00         PUSH    0                                                         ; /Style = MB_OK|MB_APPLMODAL
00401478  |.  68 12304000   PUSH    Password.00403012                                         ; |Title = "Check"
0040147D  |.  68 18304000   PUSH    Password.00403018                                         ; |Text = "Password Error!"
00401482  |.  53            PUSH    EBX                                                       ; |hOwner
00401483  |.  FF15 60444000 CALL    DWORD PTR [<&USER32.MessageBoxA>]                         ; \MessageBoxA
00401489  |.  EB 13         JMP     SHORT Password.0040149E
0040148B  |>  6A 00         PUSH    0                                                         ; /Style = MB_OK|MB_APPLMODAL
0040148D  |.  68 12304000   PUSH    Password.00403012                                         ; |Title = "Check"
00401492  |.  68 00304000   PUSH    Password.00403000                                         ; |Text = "Password Correct!"
00401497  |.  53            PUSH    EBX                                                       ; |hOwner
00401498  |.  FF15 60444000 CALL    DWORD PTR [<&USER32.MessageBoxA>]                         ; \MessageBoxA

感觉到最后,怎样也不会出来正确密码的。
00401336  /$  8B5424 04     MOV     EDX, DWORD PTR [ESP+4]
0040133A  |.  31C9          XOR     ECX, ECX
0040133C  |>  813411 674523>/XOR     DWORD PTR [ECX+EDX], 1234567
00401343  |.  8D0411        |LEA     EAX, DWORD PTR [ECX+EDX]
00401346  |.  8020 0E       |AND     BYTE PTR [EAX], 0E
00401349  |.  83C1 04       |ADD     ECX, 4
0040134C  |.  83F9 08       |CMP     ECX, 8
0040134F  |.^ 75 EB         \JNZ     SHORT Password.0040133C
00401351  |.  31C9          XOR     ECX, ECX
00401353  |>  8A0411        /MOV     AL, BYTE PTR [ECX+EDX]
00401356  |.  0042 08       |ADD     BYTE PTR [EDX+8], AL
00401359  |.  41            |INC     ECX
0040135A  |.  83F9 08       |CMP     ECX, 8
0040135D  |.^ 75 F4         \JNZ     SHORT Password.00401353
0040135F  |.  31C9          XOR     ECX, ECX
00401361  |>  813411 DEBC9A>/XOR     DWORD PTR [ECX+EDX], 89ABCDE
00401368  |.  8D0411        |LEA     EAX, DWORD PTR [ECX+EDX]
0040136B  |.  8020 0E       |AND     BYTE PTR [EAX], 0E
0040136E  |.  83C1 04       |ADD     ECX, 4
00401371  |.  83F9 08       |CMP     ECX, 8
00401374  |.^ 75 EB         \JNZ     SHORT Password.00401361
00401376  |.  31C9          XOR     ECX, ECX
00401378  |>  8A0411        /MOV     AL, BYTE PTR [ECX+EDX]
0040137B  |.  0042 09       |ADD     BYTE PTR [EDX+9], AL
0040137E  |.  41            |INC     ECX
0040137F  |.  83F9 08       |CMP     ECX, 8
00401382  |.^ 75 F4         \JNZ     SHORT Password.00401378
00401384  |.  66:817A 08 DE>CMP     WORD PTR [EDX+8], 42DE   //比对PWD最后两位。
0040138A  |.  75 38         JNZ     SHORT Password.004013C4  //不等则跳走
0040138C  |.  66:8B42 08    MOV     AX, WORD PTR [EDX+8]   //取进AX
00401390  |.  66:35 EEEE    XOR     AX, 0EEEE                       //XOR 0xEEEE
00401394  |.  66:3D AC30    CMP     AX, 30AC                       //注意这里 0x42DE ^ 0xEEEE = 0xAC30   就算进到这里,也肯定会跳走,运算本身有错误
00401398  |.  75 2A         JNZ     SHORT Password.004013C4
0040139A  |.  66:8B02       MOV     AX, WORD PTR [EDX]
0040139D  |.  66:05 9235    ADD     AX, 3592
004013A1  |.  66:3D 9AE5    CMP     AX, 0E59A
004013A5  |.  75 1D         JNZ     SHORT Password.004013C4
004013A7  |.  813A 08B0817A CMP     DWORD PTR [EDX], 7A81B008
004013AD  |.  75 15         JNZ     SHORT Password.004013C4
004013AF  |.  817A 04 02BF8>CMP     DWORD PTR [EDX+4], 388DBF02
004013B6  |.  75 0C         JNZ     SHORT Password.004013C4
004013B8  |.  807A 05 BF    CMP     BYTE PTR [EDX+5], 0BF
004013BC  |.  75 06         JNZ     SHORT Password.004013C4
004013BE  |.  807A 06 8D    CMP     BYTE PTR [EDX+6], 8D
004013C2  |.  74 06         JE      SHORT Password.004013CA
004013C4  |>  31C0          XOR     EAX, EAX
004013C6  |.  40            INC     EAX
004013C7  |.  C2 0800       RETN    8

注意看,红色的地方, 其它地方就不用看了。
意思就是
if (! TRUE)  
   go Error;
if(7 != 8)
  go error
  if(...)
    if(...)
     if(....)
      if(true)
        return 0;

Error:
   return 1
2011-10-23 11:28
0
雪    币: 54
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我也觉得除了爆破是无法解密啊 按代码分析 密码的234和678位分别为I8s F41 但是这样算的第九位是 制表符。。。

而且这里算出是AC30两个跳转是矛盾的 必定定有一个跳到出错的地方
00401384  |.  66:817A 08 DE42   CMP WORD PTR DS:[EDX+8],42DE
0040138A      75 38             JNZ SHORT Password.004013C4
0040138C      66:8B42 08        MOV AX,WORD PTR DS:[EDX+8]
00401390  |.  66:35 EEEE        XOR AX,0EEEE
00401394  |.  66:3D AC30        CMP AX,30AC
00401398  |.  75 2A             JNZ SHORT Password.004013C4

期待高手来分析
2011-10-23 12:16
0
雪    币: 435
活跃值: (1282)
能力值: ( LV13,RANK:388 )
在线值:
发帖
回帖
粉丝
4
.text:00401384 cmp word ptr [edx+8], 42DEh
.text:0040138A jnz short loc_4013C4
.text:0040138C mov ax, [edx+8]
.text:00401390 xor ax, 0EEEEh
.text:00401394 cmp ax, 30ACh
.text:00401398 jnz short loc_4013C4

42de xor eeee =ac30
作者这个笨蛋写反了
2011-10-23 12:41
0
雪    币: 435
活跃值: (1282)
能力值: ( LV13,RANK:388 )
在线值:
发帖
回帖
粉丝
5
[QUOTE=GaussAsm;1012468]我也觉得除了爆破是无法解密啊 按代码分析 密码的234和678位分别为I8s F41 但是这样算的第九位是 制表符。。。

而且这里算出是AC30两个跳转是矛盾的 必定定有一个跳到出错的地方
00401384  |.  66:817A 08 DE42   CMP WORD PTR DS:[ED...[/QUOTE]

穷举写了一半,结果看到那个ac30就想哭了,这太坑人了
2011-10-23 12:45
0
雪    币: 2676
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
[QUOTE=小河北;1012457]这个是不是有问题,似乎根本不能解密,不清楚是不是作者故意这样做的还是如何什么。
0040143F  |.  FF15 98444000 CALL    DWORD PTR [<&USER32.GetDlgItemTextA>]                     ; ...[/QUOTE]

不会是作者把0x30AC的高低位搞反了吧。
2011-10-23 12:47
0
雪    币: 435
活跃值: (1282)
能力值: ( LV13,RANK:388 )
在线值:
发帖
回帖
粉丝
7
.text:004013A7                 cmp     dword ptr [edx], 7A81B008h
.text:004013AD                 jnz     short loc_4013C4
[COLOR="Red"].text:004013AF                 cmp     dword ptr [edx+4], 388DBF02h[/COLOR]
.text:004013B6                 jnz     short loc_4013C4
[COLOR="Red"].text:004013B8                 cmp     byte ptr [edx+5], 0BFh
.text:004013BC                 jnz     short loc_4013C4[/COLOR]
.text:004013BE                 cmp     byte ptr [edx+6], 8Dh
.text:004013C2                 jz      short loc_4013CA
.text:004013C4
.text:004013C4 loc_4013C4:                             ; CODE XREF: sub_401336+54j
.text:004013C4                                         ; sub_401336+62j ...
.text:004013C4                 xor     eax, eax
.text:004013C6                 inc     eax
.text:004013C7                 retn    8
.text:004013CA ; ---------------------------------------------------------------------------
.text:004013CA
.text:004013CA loc_4013CA:                             ; CODE XREF: sub_401336+8Cj
.text:004013CA                 cmp     byte ptr [edx+5], 0BFh
.text:004013CE                 setnz   cl
.text:004013D1                 movzx   eax, cl
.text:004013D4                 retn    8


坑太多了 ,即要求56位计算结果=bf8d
又不能等于bf8d
坑爹啊
2011-10-23 13:04
0
雪    币: 278
活跃值: (709)
能力值: ( LV15,RANK:520 )
在线值:
发帖
回帖
粉丝
8
各位兄弟不好意思,可能是写代码的时候写错了。
2011-10-23 21:19
0
雪    币: 278
活跃值: (709)
能力值: ( LV15,RANK:520 )
在线值:
发帖
回帖
粉丝
9
谢谢大家提供错误,已经修改了。这个我是在国外网站上下载的,是TDC的密码组的CrackMe的第4个,我算出来是1I8s 0xb F41,其中0xB是十六进制,问题就在这里CMP     WORD PTR [EDX+8], DE42 效验是根据两次异或和AND之后计算第9位和第10位,我的密码过不了这两位,于是我就自己对照写了一个,想让大家看看。
2011-10-23 21:21
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
10
非中文语系可打出最后面的 ASCII(165)    hex:A5
上传的附件:
  • 3.JPG (17.21kb,261次下载)
2011-10-24 11:08
0
雪    币: 159
活跃值: (69)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
第一次距离 s大 这么近

TDC crackme #4 pass:qI8szF41rt
我用记事本看到的
上传的附件:
2011-10-24 12:53
0
雪    币: 278
活跃值: (709)
能力值: ( LV15,RANK:520 )
在线值:
发帖
回帖
粉丝
12
膜拜大S!!!!!!!!!!!!!!!!!!!!!!!!!
2011-10-24 13:30
0
雪    币: 305
活跃值: (31)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
膜拜各种牛人!!
2011-10-25 20:39
0
雪    币: 85
活跃值: (87)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
我是来参拜S大的...
2011-10-26 10:13
0
雪    币: 190
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
在这个战线上,牛人还是很多的
2011-10-27 14:04
0
雪    币: 193
活跃值: (1225)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
谢谢分享~~~
2011-10-28 14:47
0
游客
登录 | 注册 方可回帖
返回
//