首页
社区
课程
招聘
[原创]破解FoxMail密码
发表于: 2007-12-14 10:32 10928

[原创]破解FoxMail密码

2007-12-14 10:32
10928

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 破解FoxMail密码
; by 无名, QQ:316050822,E-MAIL:cnchaosir@hotmail.com
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 本程序为行者孙的文章《破解FoxMail密码》VFP版本改写而成,思路归原作者
; 所有。引用时请保留! ;)
; 本程序为测试版本,使用时请在FoxMail安装目录下找到要破解的E-MAIL账户名
; 打开并将“POP3Password=”后的加密串放到szPwdStr处,并重新编译本程序。
; 我的汇编不太好,代码写的冗余,请高手帮助优化,不甚感激!
; 我很少用注释,若对大家理解本程序算法带来不便请见谅!:)
; 本代码仅供学习研究使用,若有违法行为与我无关。:)
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 使用 nmake 或下列命令进行编译和链接:
; ml /c /coff FoxMailPwd.Asm
; rc FoxMailPwd.rc
; Link /subsystem:windows FoxMailPwd.Asm FoxMailPwd.res
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>               
                        .386
                        .model flat,stdcall
                        option casemap:none
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include                        windows.inc
include                        user32.inc
includelib                user32.lib
include                        kernel32.inc
includelib                kernel32.lib
include                        gdi32.inc
includelib                gdi32.lib
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
                        .data
szPwdStr                db                'A153E13AC17F8DD17BCF22F64DE872B667ABB89E66',0
szBuffer                db                128        dup(?)
szBuffer1                db                128        dup(?)
szBuffer2                db                128        dup(?)
szCaption                db                '提示',0
szFormat                db                '解密成功!密码为:%s',0
dwSize                        dd                ?
dbKey                        db                7Eh,64h,72h,61h,47h,6Fh,6Eh,7Eh       
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
                        .code
                       
Begin:
                        pushad
                        invoke        lstrlen,offset szPwdStr
                        push        eax
                        pop        dwSize
                        mov        bl,2
                        div        bl
                        mov        ecx,eax
                        push        ecx
                        lea        esi,szPwdStr
                        lea        edi,szBuffer
                        xor        ebx,ebx
_LoopBegin:
                        mov        ax,[esi]
                        xchg        al,ah
                        cmp        ah,39h
                        ja        _Sub
                        sub        ah,30h
_Continue:                shl        ah,4
                        cmp        al,39h
                        ja        _Sub1
                        sub        al,30h
_Countinue1:                add        al,ah
                        xor        ah,ah
                        mov        [edi],al
                        add        esi,2
                        inc        edi
                        Loop        short        _LoopBegin
                        cmp        ecx,0
                        je        _Bye
_Sub:                        sub        ah,37h
                        jmp        short         _Continue                               
_Sub1:                        sub        al,37h
                        jmp        short         _Countinue1
                                                                ;以上将ASCII码转为16进制数       
;*****************************************************************************************
_Bye:
                        pop        ecx
                        push        ecx
                        lea        esi,szBuffer
                        lea        edi,szBuffer1
                        cld               
                        rep        movsb                                  ;拷贝转换后的数据
;*****************************************************************************************
;以下为解密过程
;*****************************************************************************************
                        pop        ecx
                        dec        ecx
                        push        ecx
                        xor        ebx,ebx
                        lea        esi,dbKey
                        lea        edi,szBuffer
_Go:                        cmp        ebx,8
                        jae        @f
_Next:                        mov        al,[esi]
                        xor        al,[edi+1]
                        mov        BYTE ptr [edi],al
                        inc        esi
                        inc        edi
                        inc        ebx
                        loop        _Go
                        cmp        ecx,0
                        je        _GetOut
@@:                       
                        sub        ebx,8
                        lea        esi,dbKey
                        add        esi,ebx
                        jmp        short        _Next
_GetOut:               
                        lea        esi,szBuffer1
                        mov        al,[esi]
                        xor        al,90
                        mov        [esi],al
                       
                        pop        ecx
                        xor        eax,eax
                        lea        esi,szBuffer1
                        lea        edi,szBuffer
_LastLoop:                mov        al,[edi]
                        cmp        al,[esi]
                        jb        @f
                        sub        al,[esi]
                        mov        BYTE ptr [edi],al
                        inc        esi
                        inc        edi
                        loop        _LastLoop
                        cmp        ecx,0
                        je        _Exit
@@:
                        add        al,255
                        sub        al,[esi]
                        mov        BYTE ptr [edi],al
                        inc        esi
                        inc        edi
                        jmp        _LastLoop
                        cmp        ecx,0
                        je        _Exit
;****************************************************************************************
_Exit:
                        invoke        wsprintf,addr szBuffer2,addr szFormat,addr szBuffer
                        invoke        MessageBox,NULL,addr szBuffer2,addr szCaption,MB_OK
                        invoke        ExitProcess,NULL
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
                        end        Begin


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

收藏
免费 7
支持
分享
最新回复 (6)
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
2
不用这么麻烦,自己起个新的账号,把对应目录的Account.stg放过去就可以了.
2007-12-14 11:36
0
雪    币: 105
活跃值: (30)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
哈哈,关于在于算法啊...不在于目的...
2007-12-14 13:42
0
雪    币: 485
活跃值: (12)
能力值: ( LV9,RANK:490 )
在线值:
发帖
回帖
粉丝
4
都很厉害
2007-12-14 13:51
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
看不懂汇编,^_^
2007-12-14 23:55
0
雪    币: 2943
活跃值: (1788)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
6
支持,如果加上个Edit框,不就成了一个可以使用的程序了吗,呵呵。
KEY就是:~DRAGON~
而且循环使用。
XOR 是关键
2007-12-15 01:50
0
雪    币: 1919
活跃值: (901)
能力值: ( LV9,RANK:490 )
在线值:
发帖
回帖
粉丝
7
先收藏份~~~
2007-12-15 11:54
0
游客
登录 | 注册 方可回帖
返回
//