首页
社区
课程
招聘
[旧帖] [原创]32BIT FTP简单破解 0.00雪花
发表于: 2008-2-2 05:06 3640

[旧帖] [原创]32BIT FTP简单破解 0.00雪花

2008-2-2 05:06
3640
【文章标题】: 简单破解32bitFTP
【文章作者】: bithaha
【软件名称】: 32bitFTP
【下载地址】: 华军软件
【加壳方式】: 无
【编写语言】: vc7.0
【软件介绍】: 新手找自信软件,看着很cool的软件(英文)
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
  又碰到个软柿子,给出解题思路,谁有兴趣可以看一下.
  OD载入,输入KEY,断GetDlgItemText或者万能断点均可,然后F8,F7来到如下函数
  在这个函数中有些字符过滤,就是cmp x,41H,jnz xxxx 这样的语句,省略了.
  004170AD  |.  51            PUSH ECX
  004170AE  |.  52            PUSH EDX
  004170AF  |.  895C24 24     MOV DWORD PTR SS:[ESP+24],EBX
  004170B3  |.  C74424 1C 010>MOV DWORD PTR SS:[ESP+1C],1
  004170BB  |.  E8 80010000   CALL 32bitftp.00417240                                  ;  生成"esp"+18
  当用户名是bithaha的时候,生成的值为7F,注意此处的esp+18并不是真正的esp+18,见下面。算法并不难也不是很长
  004170C0  |.  8B7C24 28     MOV EDI,DWORD PTR SS:[ESP+28]
  004170C4  |.  83C9 FF       OR ECX,FFFFFFFF
  004170C7  |.  33C0          XOR EAX,EAX
  004170C9  |.  83C4 0C       ADD ESP,0C            ;ESP+=0ch
  004170CC  |.  F2:AE         REPNE SCAS BYTE PTR ES:[EDI]
  004170CE  |.  F7D1          NOT ECX
  004170D0  |.  2BF9          SUB EDI,ECX
  004170D2  |.  8BF7          MOV ESI,EDI
  004170D4  |.  8BD1          MOV EDX,ECX
  004170D6  |.  BF A4ED4700   MOV EDI,32bitftp.0047EDA4                               ;  ASCII "bithaha"
  004170DB  |.  83C9 FF       OR ECX,FFFFFFFF
  004170DE  |.  F2:AE         REPNE SCAS BYTE PTR ES:[EDI]
  004170E0  |.  8BCA          MOV ECX,EDX
  004170E2  |.  4F            DEC EDI
  004170E3  |.  C1E9 02       SHR ECX,2
  004170E6  |.  F3:A5         REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI]
  004170E8  |.  8BCA          MOV ECX,EDX
  004170EA  |.  8B5424 18     MOV EDX,DWORD PTR SS:[ESP+18];这个ESP+18
  004170EE  |.  83E1 03       AND ECX,3
  004170F1  |.  F3:A4         REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]
  004170F3  |.  8A0D A4ED4700 MOV CL,BYTE PTR DS:[47EDA4]
  004170F9  |.  33F6          XOR ESI,ESI
  004170FB  |.  3ACB          CMP CL,BL
  004170FD  |.  897424 10     MOV DWORD PTR SS:[ESP+10],ESI
  00417101  |.  74 31         JE SHORT 32bitftp.00417134
  00417103  |>  8BC1          /MOV EAX,ECX                          ;循环1,生成的最终结果在EDX中,我这里是6910
  算法简单,四则运算
  00417105  |.  25 FF000000   |AND EAX,0FF
  0041710A  |.  8D3CC0        |LEA EDI,DWORD PTR DS:[EAX+EAX*8]
  0041710D  |.  03C6          |ADD EAX,ESI
  0041710F  |.  8D0478        |LEA EAX,DWORD PTR DS:[EAX+EDI*2]
  00417112  |.  03D0          |ADD EDX,EAX
  00417114  |.  80F9 60       |CMP CL,60
  00417117  |.  73 05         |JNB SHORT 32bitftp.0041711E
  00417119  |.  83C2 15       |ADD EDX,15
  0041711C  |.  EB 03         |JMP SHORT 32bitftp.00417121
  0041711E  |>  83EA 15       |SUB EDX,15
  00417121  |>  8A8E A5ED4700 |MOV CL,BYTE PTR DS:[ESI+47EDA5]
  00417127  |.  46            |INC ESI
  00417128  |.  3ACB          |CMP CL,BL
  0041712A  |.^ 75 D7         \JNZ SHORT 32bitftp.00417103
  0041712C  |.  897424 10     MOV DWORD PTR SS:[ESP+10],ESI
  00417130  |.  895424 18     MOV DWORD PTR SS:[ESP+18],EDX
  00417134  |>  B9 80000000   MOV ECX,80
  00417139  |.  33C0          XOR EAX,EAX
  0041713B  |.  BF A4EB4700   MOV EDI,32bitftp.0047EBA4                               ;  
  00417140  |.  52            PUSH EDX                                                ;EDX=6910H
  00417141  |.  68 6C914600   PUSH 32bitftp.0046916C                                  ;  ASCII "%06lu"
  00417146  |.  68 A4EB4700   PUSH 32bitftp.0047EBA4                                  ;  
  0041714B  |.  F3:AB         REP STOS DWORD PTR ES:[EDI]
  0041714D  |.  E8 E7D50100   CALL 32bitftp.00434739                                  ;EDX的值换成十进制的字符串"026896"
  00417152  |.  8B2D 40424500 MOV EBP,DWORD PTR DS:[<&KERNEL32.lstrlenA>]             ;  kernel32.lstrlenA
  00417158  |.  83C4 0C       ADD ESP,0C
  0041715B  |.  B9 00010000   MOV ECX,100
  00417160  |.  33C0          XOR EAX,EAX
  00417162  |.  BF A4ED4700   MOV EDI,32bitftp.0047EDA4                               ;  ASCII "bithaha"
  00417167  |.  68 A4EB4700   PUSH 32bitftp.0047EBA4                                  ; /
  0041716C  |.  F3:AB         REP STOS DWORD PTR ES:[EDI]                             ; |
  0041716E  |.  895C24 14     MOV DWORD PTR SS:[ESP+14],EBX                           ; |
  00417172  |.  FFD5          CALL EBP                                                ; \lstrlenA
  00417174  |.  8B4C24 10     MOV ECX,DWORD PTR SS:[ESP+10]
  00417178  |.  3BC8          CMP ECX,EAX
  0041717A  |.  7D 37         JGE SHORT 32bitftp.004171B3
  0041717C  |>  0FBE91 A4EB47>/MOVSX EDX,BYTE PTR DS:[ECX+47EBA4]                     ;循环2,这个循环也比较
  简单,四则运算
  00417183  |.  03D1          |ADD EDX,ECX
  00417185  |.  8D044D A4ED47>|LEA EAX,DWORD PTR DS:[ECX*2+47EDA4]
  0041718C  |.  52            |PUSH EDX
  0041718D  |.  68 64914600   |PUSH 32bitftp.00469164                                 ;  ASCII "%02X"
  00417192  |.  50            |PUSH EAX
  00417193  |.  E8 A1D50100   |CALL 32bitftp.00434739
  00417198  |.  8B7C24 1C     |MOV EDI,DWORD PTR SS:[ESP+1C]
  0041719C  |.  83C4 0C       |ADD ESP,0C
  0041719F  |.  47            |INC EDI
  004171A0  |.  68 A4EB4700   |PUSH 32bitftp.0047EBA4                                 ;  
  004171A5  |.  897C24 14     |MOV DWORD PTR SS:[ESP+14],EDI
  004171A9  |.  FFD5          |CALL EBP
  004171AB  |.  8B4C24 10     |MOV ECX,DWORD PTR SS:[ESP+10]
  004171AF  |.  3BC8          |CMP ECX,EAX
  004171B1  |.^ 7C C9         \JL SHORT 32bitftp.0041717C
  004171B3  |>  B9 80000000   MOV ECX,80
  004171B8  |.  B8 20202020   MOV EAX,20202020
  004171BD  |.  BF A4EB4700   MOV EDI,32bitftp.0047EBA4                               ;  
  004171C2  |.  68 A4ED4700   PUSH 32bitftp.0047EDA4                                  ;  ASCII "bithaha"
  004171C7  |.  F3:AB         REP STOS DWORD PTR ES:[EDI]
  004171C9  |.  895C24 14     MOV DWORD PTR SS:[ESP+14],EBX
  004171CD  |.  33FF          XOR EDI,EDI
  004171CF  |.  33F6          XOR ESI,ESI
  004171D1  |.  FFD5          CALL EBP
  004171D3  |.  8B4C24 10     MOV ECX,DWORD PTR SS:[ESP+10]
  004171D7  |.  3BC8          CMP ECX,EAX
  004171D9  |.  7D 2A         JGE SHORT 32bitftp.00417205
  004171DB  |>  83FF 03       /CMP EDI,3                                                       ;循环3,四则运算
  004171DE  |.  75 03         |JNZ SHORT 32bitftp.004171E3
  004171E0  |.  33FF          |XOR EDI,EDI
  004171E2  |.  46            |INC ESI
  004171E3  |>  8A91 A4ED4700 |MOV DL,BYTE PTR DS:[ECX+47EDA4]
  004171E9  |.  41            |INC ECX
  004171EA  |.  8896 A4EB4700 |MOV BYTE PTR DS:[ESI+47EBA4],DL
  004171F0  |.  47            |INC EDI
  004171F1  |.  68 A4ED4700   |PUSH 32bitftp.0047EDA4                                 ;  ASCII "bithaha"
  004171F6  |.  894C24 14     |MOV DWORD PTR SS:[ESP+14],ECX
  004171FA  |.  46            |INC ESI
  004171FB  |.  FFD5          |CALL EBP
  004171FD  |.  8B4C24 10     |MOV ECX,DWORD PTR SS:[ESP+10]
  00417201  |.  3BC8          |CMP ECX,EAX
  00417203  |.^ 7C D6         \JL SHORT 32bitftp.004171DB
  00417205  |>  BF A4EB4700   MOV EDI,32bitftp.0047EBA4                               ;  注册码
  0041720A  |.  83C9 FF       OR ECX,FFFFFFFF
  0041720D  |.  33C0          XOR EAX,EAX
  0041720F  |.  889E A4EB4700 MOV BYTE PTR DS:[ESI+47EBA4],BL
  00417215  |.  F2:AE         REPNE SCAS BYTE PTR ES:[EDI]
  00417217  |.  F7D1          NOT ECX
  00417219  |.  2BF9          SUB EDI,ECX
  0041721B  |.  8BC1          MOV EAX,ECX
  0041721D  |.  8BF7          MOV ESI,EDI
  0041721F  |.  8B7C24 20     MOV EDI,DWORD PTR SS:[ESP+20]
  00417223  |.  C1E9 02       SHR ECX,2
  00417226  |.  F3:A5         REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI]
  00417228  |.  8BC8          MOV ECX,EAX
  0041722A  |.  83E1 03       AND ECX,3
  0041722D  |.  F3:A4         REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]
  0041722F  |.  5F            POP EDI
  00417230  |.  5E            POP ESI
  00417231  |.  5D            POP EBP
  00417232  |.  5B            POP EBX
  00417233  |.  59            POP ECX
  00417234  \.  C3            RETN;//返回后与输入的值比较
  
  没有最简单,只有更简单,祝大家新年快乐!
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2008年02月02日 5:04:40

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
虽然看不懂,但是学习了。努力
2008-2-2 09:31
0
雪    币: 485
活跃值: (12)
能力值: ( LV9,RANK:490 )
在线值:
发帖
回帖
粉丝
3
此帖于 2008-02-02 05:11 被 bithaha 编辑

是睡的太晚,还是起的过早了?支持下。
2008-2-2 10:24
0
游客
登录 | 注册 方可回帖
返回
//