软件名称:Windows密码管理大师 2.1
软件性质: [共享软件]
文件大小: 3.76M
最近版本: 2.1
操作系统: 9X/ME/2K/XP/
语言界面: 中文
下载地址:http://download.pchome.net/utility/codeman/19360.html
软件介绍:
你是否经常出入各大论坛,并且有各种不同的用户名和密码。你是否一个或多个QQ号码,
当你登录论坛或QQ的时候是否将密码忘记,那么用《Windows密码管理大师》来管理你的密码吧,它可以帮你管理你在各论坛的注册资料,包括用户名,注册邮箱,注册ID,注册密码,注册网址等,当你选中一项资料时便可轻易访问该网站。本软件启动时用密码保护,可以防止非法用户查看你的注册资料,非常安全方便。
Cracker:游上岸的鱼[DFCG][FCG][BCG][DCM]
2005.04.09
前言:这软件的破解很简单只是简单的加法运算,我想高手就没有必要看了,不过要给我顶哦!
开工:工具OllyDbg.V1.10 ,PEID0.93, UPX ShellEx
用PEID0.93检测为UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo
用UPX ShellEx顺利脱壳,再用PEID0.93检测为Borland Delphi 4.0 - 5.0
好了,用WIN32DASM反汇编,查找字符串"注册码不正确,无法注册" 来到这里
0053BC2D E8 C2CDFFFF call Windows?005389F4 ; 关键CALL F7跟进
0053BC32 84C0 test al,al ; 检测AL是否为0
0053BC34 74 09 je short Windows?0053BC3F ; 不是那么就不跳,那么我们就注册成功
0053BC36 8BC3 mov eax,ebx
0053BC38 E8 03CBFFFF call Windows?00538740
0053BC3D 5B pop ebx
0053BC3E C3 retn
0053BC3F B8 54BC5300 mov eax,Windows?0053BC54
0053BC44 E8 9B32F2FF call Windows?0045EEE4
0053BC49 5B pop ebx
0053BC4A C3 retn * Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0053BC34(C)
|
* Possible StringData Ref from Data Obj ->"注册码不正确,无法注册"
|
:0053BC3F B854BC5300 mov eax, 0053BC54
:0053BC44 E89B32F2FF call 0045EEE4
:0053BC49 5B pop ebx
:0053BC4A C3 ret 0053BC2D F7进去后F8往下走,期待机器码的出现来到这里
005389FF 56 push esi
00538A00 8945 FC mov dword ptr ss:[ebp-4],eax
00538A03 33C0 xor eax,eax
00538A05 55 push ebp
00538A06 68 D08A5300 push Windows?00538AD0
00538A0B 64:FF30 push dword ptr fs:[eax]
00538A0E 64:8920 mov dword ptr fs:[eax],esp
00538A11 33C0 xor eax,eax
00538A13 8945 F4 mov dword ptr ss:[ebp-C],eax
00538A16 8D55 F8 lea edx,dword ptr ss:[ebp-8]
00538A19 8B45 FC mov eax,dword ptr ss:[ebp-4]
00538A1C 8B80 E4030000 mov eax,dword ptr ds:[eax+3E4]
00538A22 E8 7DDBEFFF call Windows?004365A4
00538A27 8B45 F8 mov eax,dword ptr ss:[ebp-8]
00538A2A E8 29B7ECFF call Windows?00404158
00538A2F 8BD8 mov ebx,eax
00538A31 85DB test ebx,ebx
00538A33 7E 2E jle short Windows?00538A63 ; 检测机器码是否为空
00538A35 BE 01000000 mov esi,1
00538A3A 8D45 F0 lea eax,dword ptr ss:[ebp-10]
00538A3D 50 push eax
00538A3E B9 01000000 mov ecx,1
00538A43 8BD6 mov edx,esi
00538A45 8B45 F8 mov eax,dword ptr ss:[ebp-8]
00538A48 E8 13B9ECFF call Windows?00404360
00538A4D 8B45 F0 mov eax,dword ptr ss:[ebp-10]
00538A50 E8 C7B8ECFF call Windows?0040431C ; 取机器码的ACSII值
00538A55 8A00 mov al,byte ptr ds:[eax]
00538A57 25 FF000000 and eax,0FF ; 清0其他
00538A5C 0145 F4 add dword ptr ss:[ebp-C],eax ; 机器码的ACSII值累加,[EBP-C]是典型的delphi程序寄存器
00538A5F 46 inc esi
00538A60 4B dec ebx ; 计数器
00538A61 ^ 75 D7 jnz short Windows?00538A3A
说明:
00538A3A 到00538A61的循环用delphi表示就是
For i:= 1 To Length(jiqima) Do
begin
temp1:=ord(jiqima[i]);
sn1:=temp1+sn1;
end;
00538A63 8D55 EC lea edx,dword ptr ss:[ebp-14]
00538A66 8B45 FC mov eax,dword ptr ss:[ebp-4]
00538A69 8B80 E8030000 mov eax,dword ptr ds:[eax+3E8]
00538A6F E8 30DBEFFF call Windows?004365A4
00538A74 8B45 EC mov eax,dword ptr ss:[ebp-14]
00538A77 E8 0C15EDFF call Windows?00409F88
00538A7C 8B55 F4 mov edx,dword ptr ss:[ebp-C]
00538A7F 81C2 FC7E1200 add edx,127EFC ; SN1加上常数$127EFC
00538A85 81C2 9FE46400 add edx,Windows?0064E49F ; 再加上常数$0064E49F
00538A8B 3BC2 cmp eax,edx ; 注册码比较
00538A8D 75 19 jnz short Windows?00538AA8 ; 不等就跳转
00538A8F B3 01 mov bl,1 ; 等就置BL=1
00538A91 B8 18D75400 mov eax,Windows?0054D718
00538A96 8B55 F8 mov edx,dword ptr ss:[ebp-8]
00538A99 E8 8EB4ECFF call Windows?00403F2C
00538A9E 8B45 F4 mov eax,dword ptr ss:[ebp-C]
00538AA1 A3 1CD75400 mov dword ptr ds:[54D71C],eax
00538AA6 EB 02 jmp short Windows?00538AAA
00538AA8 33DB xor ebx,ebx ; 清空
00538AAA 33C0 xor eax,eax ; 清空置AL=0
00538AAC 5A pop edx
00538AAD 59 pop ecx
00538AAE 59 pop ecx
00538AAF 64:8910 mov dword ptr fs:[eax],edx
00538AB2 68 D78A5300 push Windows?00538AD7
00538AB7 8D45 EC lea eax,dword ptr ss:[ebp-14]
00538ABA E8 19B4ECFF call Windows?00403ED8
00538ABF 8D45 F0 lea eax,dword ptr ss:[ebp-10]
00538AC2 E8 11B4ECFF call Windows?00403ED8
00538AC7 8D45 F8 lea eax,dword ptr ss:[ebp-8]
00538ACA E8 09B4ECFF call Windows?00403ED8
00538ACF C3 retn 算法总结:
1.依次取机器码的ASCII码并且相加得到SN1
2.在把SN1+$127EFC+$0064E49F得到SN2
3.再把SN2转化为10进制就是我们需要的注册码
用keymaker写内存注册机
中断地址:00538A8B
中断次数:1
第一字节:3B
指令长度:2
寄存器方式:
EDX
十进制 算法注册机源代码delphi7.0+winxp SP1测试通过
procedure TForm1.bsSkinButton1Click(Sender: TObject);
var
jiqima: String;
i: Integer;
sn1: Int64;
temp1: Int64;
begin
jiqima:=bsSkinEdit1.text;
sn1:=0;
For i:= 1 To Length(jiqima) Do
begin
temp1:=ord(jiqima[i]);
sn1:=temp1+sn1;
end;
sn1:=sn1+$127EFC+$64E49F;
bsSkinEdit2.Text:=inttostr(sn1);
end;
end.
小弟第一次在看雪发帖子``给点面子别丢鸡蛋哦``
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)