小子贼野 发表于 2007-8-9 20:57:20

Windows 密码管理大师 V2.2 Build算法分析+Delphi注册机

【破解作者】 小子贼野
【作者主页】 hxxp://mayday.unpack.cn/
【使用工具】 OD
【破解平台】 Win9x/NT/2000/XP
【软件名称】 Windows 密码管理大师 V2.2 Build
【下载地址】 http://www.skycn.com/soft/22167.html
【软件简介】 你是否经常出入各大论坛,并且有各种不同的用户名和密码。你是否一个或多个QQ号码,当你登录论坛或QQ的时候是否将密码忘记,那么用《Windows密码管理大师》来管理你的密码吧,它可以帮你管理你在各论坛的注册资料,包括用户名,注册邮箱,注册ID,注册密码,注册网址等,当你选中一项资料时便可轻易访问该网站。本软件启动时用密码保护,可以防止非法用户查看你的注册资料,非常安全方便。
         最新版本v2.1
             新版本对工具栏图标做了调整,修正了加密项无反应的BUG.
             最新版本v2.2
             新版本增加了多项功能,修正了几个BUG,赶快试式吧。
【加壳方式】 UPX
【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------------------------

有MM说她的密码有好多个不一样,机器密码,QQ密码什么的,太乱,想找个管理的,说让我给她写一个这样的软件(当时我直接吓爬下了)

然后我就说我不会,我给你网上找一个,结果一找找到了它,居然要我注册,看了老半天,发现算法还满简单的,嘿嘿

--------------------------------------------------------------------------------

0053BC39    8BD8            MOV EBX,EAX
0053BC3B    8BC3            MOV EAX,EBX
0053BC3D    E8 C2CDFFFF   CALL UnPacK.00538A04                     ; 算法call,F7跟进
0053BC42    84C0            TEST AL,AL
0053BC44    74 09         JE SHORT UnPacK.0053BC4F
0053BC46    8BC3            MOV EAX,EBX
0053BC48    E8 03CBFFFF   CALL UnPacK.00538750
--------------------------------------------------------------------------------
00538A04    55            PUSH EBP                                 ; 算法call跟进到这里,F8
00538A05    8BEC            MOV EBP,ESP
00538A07    33C9            XOR ECX,ECX
00538A09    51            PUSH ECX
00538A0A    51            PUSH ECX
00538A0B    51            PUSH ECX
00538A0C    51            PUSH ECX
00538A0D    51            PUSH ECX
00538A0E    53            PUSH EBX
00538A0F    56            PUSH ESI
00538A10    8945 FC         MOV DWORD PTR SS:,EAX
00538A13    33C0            XOR EAX,EAX
00538A15    55            PUSH EBP
00538A16    68 E08A5300   PUSH UnPacK.00538AE0
00538A1B    64:FF30         PUSH DWORD PTR FS:
00538A1E    64:8920         MOV DWORD PTR FS:,ESP
00538A21    33C0            XOR EAX,EAX
00538A23    8945 F4         MOV DWORD PTR SS:,EAX
00538A26    8D55 F8         LEA EDX,DWORD PTR SS:
00538A29    8B45 FC         MOV EAX,DWORD PTR SS:
00538A2C    8B80 E4030000   MOV EAX,DWORD PTR DS:
00538A32    E8 6DDBEFFF   CALL UnPacK.004365A4
00538A37    8B45 F8         MOV EAX,DWORD PTR SS:
00538A3A    E8 19B7ECFF   CALL UnPacK.00404158
00538A3F    8BD8            MOV EBX,EAX
00538A41    85DB            TEST EBX,EBX
00538A43    7E 2E         JLE SHORT UnPacK.00538A73
00538A45    BE 01000000   MOV ESI,1
00538A4A    8D45 F0         LEA EAX,DWORD PTR SS:
00538A4D    50            PUSH EAX
00538A4E    B9 01000000   MOV ECX,1
00538A53    8BD6            MOV EDX,ESI
00538A55    8B45 F8         MOV EAX,DWORD PTR SS:
00538A58    E8 03B9ECFF   CALL UnPacK.00404360
00538A5D    8B45 F0         MOV EAX,DWORD PTR SS:
00538A60    E8 B7B8ECFF   CALL UnPacK.0040431C
00538A65    8A00            MOV AL,BYTE PTR DS:
00538A67    25 FF000000   AND EAX,0FF
00538A6C    0145 F4         ADD DWORD PTR SS:,EAX
00538A6F    46            INC ESI                                  ; 计数器加一
00538A70    4B            DEC EBX                                  ; 用户名长度减一
00538A71^ 75 D7         JNZ SHORT UnPacK.00538A4A                ; 取用户名ascii
00538A73    8D55 EC         LEA EDX,DWORD PTR SS:
00538A76    8B45 FC         MOV EAX,DWORD PTR SS:
00538A79    8B80 E8030000   MOV EAX,DWORD PTR DS:
00538A7F    E8 20DBEFFF   CALL UnPacK.004365A4
00538A84    8B45 EC         MOV EAX,DWORD PTR SS:            ; EAX=假码位数
00538A87    E8 FC14EDFF   CALL UnPacK.00409F88
00538A8C    8B55 F4         MOV EDX,DWORD PTR SS:
00538A8F    81C2 FC7E1200   ADD EDX,127EFC                           ; 用户名ascii+127EFC=a
00538A95    81C2 9FE46400   ADD EDX,UnPacK.0064E49F                  ; a=a+64E49F
00538A9B    3BC2            CMP EAX,EDX                              ; 真假码比较,可做内存注册机
00538A9D    75 19         JNZ SHORT UnPacK.00538AB8                ; 不一样就挂了
00538A9F    B3 01         MOV BL,1
00538AA1    B8 18D75400   MOV EAX,UnPacK.0054D718
00538AA6    8B55 F8         MOV EDX,DWORD PTR SS:
00538AA9    E8 7EB4ECFF   CALL UnPacK.00403F2C
00538AAE    8B45 F4         MOV EAX,DWORD PTR SS:
00538AB1    A3 1CD75400   MOV DWORD PTR DS:,EAX
00538AB6    EB 02         JMP SHORT UnPacK.00538ABA
00538AB8    33DB            XOR EBX,EBX
00538ABA    33C0            XOR EAX,EAX
00538ABC    5A            POP EDX
00538ABD    59            POP ECX
00538ABE    59            POP ECX
00538ABF    64:8910         MOV DWORD PTR FS:,EDX
00538AC2    68 E78A5300   PUSH UnPacK.00538AE7
00538AC7    8D45 EC         LEA EAX,DWORD PTR SS:
00538ACA    E8 09B4ECFF   CALL UnPacK.00403ED8
00538ACF    8D45 F0         LEA EAX,DWORD PTR SS:
00538AD2    E8 01B4ECFF   CALL UnPacK.00403ED8
00538AD7    8D45 F8         LEA EAX,DWORD PTR SS:
00538ADA    E8 F9B3ECFF   CALL UnPacK.00403ED8
00538ADF    C3            RETN
00538AE0^ E9 CFADECFF   JMP UnPacK.004038B4
00538AE5^ EB E0         JMP SHORT UnPacK.00538AC7
00538AE7    8BC3            MOV EAX,EBX                              ; 爆破把这里改ecx也行的,嘿嘿
00538AE9    5E            POP ESI
00538AEA    5B            POP EBX
00538AEB    8BE5            MOV ESP,EBP
00538AED    5D            POP EBP
00538AEE    C3            RETN

--------------------------------------------------------------------------------
【算法总结】序列号的ASCII累加,再加上127EFC和64E49F,即为注册码!
--------------------------------------------------------------------------------
【算法注册机Delphi源码】
procedure TForm1.Button1Click(Sender: TObject);
var
a:string;
b,i:integer;
begin
a:=edit1.text;
b:=0;
for i:=1 to length(a) do
b:=b+ord(a);
b:=b+$127EFC+$64E49F;
edit2.Text:=inttostr(b);
end;

laccer 发表于 2007-8-9 21:06:41

支持小子多发破文,学习了

yingfeng 发表于 2007-8-9 21:10:08

小子进步神速,已达宗师级别

kill203 发表于 2007-8-9 22:52:25

不错啊,顶一个,小子内功深啊

论坛C 发表于 2007-8-10 16:33:22

学习了/:001 /:001

rayicy 发表于 2007-8-10 18:49:12

想不到我算法不行,但是看上文还是看得懂了 共勉之:loveliness:

glts 发表于 2007-8-10 22:24:46

支持小子的原创作品,学习下.

lxk836 发表于 2007-8-11 14:28:30

小子的进步真的好快啊!! 学习了

kangroo 发表于 2007-8-14 00:12:40

00538A6F    46            INC ESI                                  ; 计数器加一
00538A70    4B            DEC EBX                                  ; 用户名长度减一
00538A71^ 75 D7         JNZ SHORT UnPacK.00538A4A                ; 取用户名ascii
这里不是取用户名ASCII,应该是判断是否计算结束了,可能是作者笔误把。
页: [1]
查看完整版本: Windows 密码管理大师 V2.2 Build算法分析+Delphi注册机