- UID
- 32678
注册时间2007-8-2
阅读权限20
最后登录1970-1-1
以武会友
 
该用户从未签到
|
【文章作者】: 网络断魂
【软件名称】: 信华仓管专家增强版
【下载地址】: http://www.xinwa.com/
【加壳方式】: 无壳
【保护方式】: 机器码+注册码
【编写语言】: Borland Delphi 6.0 - 7.0
【使用工具】: OD
【操作平台】: winxp2
【作者声明】: 也不知道分析的对不对,大家别笑话偶
根据字符串提示找到关键处:
0069AB98 /. 55 push ebp
0069AB99 |. 8BEC mov ebp, esp
0069AB9B |. B9 08000000 mov ecx, 8
0069ABA0 |> 6A 00 /push 0
0069ABA2 |. 6A 00 |push 0
0069ABA4 |. 49 |dec ecx
0069ABA5 |.^ 75 F9 \jnz short 0069ABA0
0069ABA7 |. 51 push ecx
0069ABA8 |. 53 push ebx
0069ABA9 |. 56 push esi
0069ABAA |. 57 push edi
0069ABAB |. 8BF0 mov esi, eax
0069ABAD |. 33C0 xor eax, eax
0069ABAF |. 55 push ebp
0069ABB0 |. 68 6BAE6900 push 0069AE6B
0069ABB5 |. 64:FF30 push dword ptr fs:[eax]
0069ABB8 |. 64:8920 mov dword ptr fs:[eax], esp
0069ABBB |. 8D45 F4 lea eax, dword ptr [ebp-C]
0069ABBE |. BA 84AE6900 mov edx, 0069AE84 ; ASCII "L2007168"
0069ABC3 |. E8 889DD6FF call 00404950
0069ABC8 |. B2 01 mov dl, 1
0069ABCA |. 8B86 1C030000 mov eax, dword ptr [esi+31C]
0069ABD0 |. 8B08 mov ecx, dword ptr [eax]
0069ABD2 |. FF91 78010000 call dword ptr [ecx+178]
0069ABD8 |. 8B9E 1C030000 mov ebx, dword ptr [esi+31C]
0069ABDE |. 8BC3 mov eax, ebx
0069ABE0 |. E8 2BBCE2FF call 004C6810
0069ABE5 |. 8BC3 mov eax, ebx
0069ABE7 |. E8 18BCE2FF call 004C6804
0069ABEC |. 8BC3 mov eax, ebx
0069ABEE |. E8 ADE0E2FF call 004C8CA0
0069ABF3 |. BA 98AE6900 mov edx, 0069AE98 ; ASCII "CPUID"
0069ABF8 |. 8BC3 mov eax, ebx
0069ABFA |. E8 11CDE2FF call 004C7910
0069ABFF |. 8D55 FC lea edx, dword ptr [ebp-4]
0069AC02 |. 8B08 mov ecx, dword ptr [eax]
0069AC04 |. FF51 60 call dword ptr [ecx+60]
0069AC07 |. 8D45 E4 lea eax, dword ptr [ebp-1C]
0069AC0A |. 50 push eax
0069AC0B |. B9 06000000 mov ecx, 6 ; //取6位,
0069AC10 |. BA 02000000 mov edx, 2 ; //从第2位开始取
0069AC15 |. 8B45 FC mov eax, dword ptr [ebp-4] ; //送机器码第一段
0069AC18 |. E8 BBA1D6FF call 00404DD8
0069AC1D |. 8B4D E4 mov ecx, dword ptr [ebp-1C] ; //送截取后的机器码
0069AC20 |. 8D45 E8 lea eax, dword ptr [ebp-18]
0069AC23 |. BA A8AE6900 mov edx, 0069AEA8
0069AC28 |. E8 9F9FD6FF call 00404BCC
0069AC2D |. 8B45 E8 mov eax, dword ptr [ebp-18]
0069AC30 |. E8 BBEFD6FF call 00409BF0
0069AC35 |. 05 50080000 add eax, 850 ; //机器码值+850
0069AC3A |. 8D3C40 lea edi, dword ptr [eax+eax*2] ; //*3
0069AC3D |. 8D55 F0 lea edx, dword ptr [ebp-10]
0069AC40 |. 8BC7 mov eax, edi
0069AC42 |. E8 09EFD6FF call 00409B50 ; //转换为十进制(作为第二段注册码)
0069AC47 |. BA B4AE6900 mov edx, 0069AEB4 ; ASCII "HDID"
0069AC4C |. 8BC3 mov eax, ebx
0069AC4E |. E8 BDCCE2FF call 004C7910
0069AC53 |. 8D55 F8 lea edx, dword ptr [ebp-8]
0069AC56 |. 8B08 mov ecx, dword ptr [eax]
0069AC58 |. FF51 60 call dword ptr [ecx+60]
0069AC5B |. 8D45 DC lea eax, dword ptr [ebp-24]
0069AC5E |. 50 push eax
0069AC5F |. B9 06000000 mov ecx, 6 ; //取6位,
0069AC64 |. BA 02000000 mov edx, 2 ; //从第2位开始取
0069AC69 |. 8B45 F8 mov eax, dword ptr [ebp-8] ; //送机器码第二段
0069AC6C |. E8 67A1D6FF call 00404DD8
0069AC71 |. 8B4D DC mov ecx, dword ptr [ebp-24] ; //送截取后的值
0069AC74 |. 8D45 E0 lea eax, dword ptr [ebp-20]
0069AC77 |. BA A8AE6900 mov edx, 0069AEA8
0069AC7C |. E8 4B9FD6FF call 00404BCC
0069AC81 |. 8B45 E0 mov eax, dword ptr [ebp-20]
0069AC84 |. E8 67EFD6FF call 00409BF0
0069AC89 |. 05 50080000 add eax, 850 ; //截取后的机器码+850
0069AC8E |. 8D3C40 lea edi, dword ptr [eax+eax*2] ; //*3
0069AC91 |. 8D55 EC lea edx, dword ptr [ebp-14]
0069AC94 |. 8BC7 mov eax, edi
0069AC96 |. E8 B5EED6FF call 00409B50 ; //转换为十进制作为第三段注册码
0069AC9B |. 8D55 D4 lea edx, dword ptr [ebp-2C]
0069AC9E |. 8B86 10030000 mov eax, dword ptr [esi+310]
0069ACA4 |. E8 E3A9DBFF call 0045568C
0069ACA9 |. 8B45 D4 mov eax, dword ptr [ebp-2C] ; //送假码第一段
0069ACAC |. 8D55 D8 lea edx, dword ptr [ebp-28]
0069ACAF |. E8 C0E9D6FF call 00409674
0069ACB4 |. 8B45 D8 mov eax, dword ptr [ebp-28] ; //送假码第一段
0069ACB7 |. BA 84AE6900 mov edx, 0069AE84 ; ASCII "L2007168"
0069ACBC |. E8 03A0D6FF call 00404CC4 ; //字符串比较(内存注册机第一段位置)
0069ACC1 75 4C jnz short 0069AD0F ; //跳往注册码错误
0069ACC3 |. 8D55 CC lea edx, dword ptr [ebp-34]
0069ACC6 |. 8B86 20030000 mov eax, dword ptr [esi+320]
0069ACCC |. E8 BBA9DBFF call 0045568C
0069ACD1 |. 8B45 CC mov eax, dword ptr [ebp-34]
0069ACD4 |. 8D55 D0 lea edx, dword ptr [ebp-30]
0069ACD7 |. E8 98E9D6FF call 00409674
0069ACDC |. 8B45 D0 mov eax, dword ptr [ebp-30] ; //送假码第二段
0069ACDF |. 8B55 F0 mov edx, dword ptr [ebp-10] ; //送真码第二段
0069ACE2 |. E8 DD9FD6FF call 00404CC4 ; //字符串比较(内存注册机第二段位置)
0069ACE7 75 26 jnz short 0069AD0F ; //跳往注册码错误
0069ACE9 |. 8D55 C4 lea edx, dword ptr [ebp-3C]
0069ACEC |. 8B86 24030000 mov eax, dword ptr [esi+324]
0069ACF2 |. E8 95A9DBFF call 0045568C
0069ACF7 |. 8B45 C4 mov eax, dword ptr [ebp-3C]
0069ACFA |. 8D55 C8 lea edx, dword ptr [ebp-38]
0069ACFD |. E8 72E9D6FF call 00409674
0069AD02 |. 8B45 C8 mov eax, dword ptr [ebp-38] ; //送假码第三段
0069AD05 |. 8B55 EC mov edx, dword ptr [ebp-14] ; //送真码第三段
0069AD08 |. E8 B79FD6FF call 00404CC4 ; //字符串比较(内存注册机第三段位置)
0069AD0D |. 74 52 je short 0069AD61 ; //不跳则死
0069AD0F |> 33D2 xor edx, edx
0069AD11 |. 8B86 10030000 mov eax, dword ptr [esi+310]
0069AD17 |. E8 A0A9DBFF call 004556BC
0069AD1C |. 33D2 xor edx, edx
0069AD1E |. 8B86 20030000 mov eax, dword ptr [esi+320]
0069AD24 |. E8 93A9DBFF call 004556BC
0069AD29 |. 33D2 xor edx, edx
0069AD2B |. 8B86 24030000 mov eax, dword ptr [esi+324]
0069AD31 |. E8 86A9DBFF call 004556BC
0069AD36 |. 8B86 10030000 mov eax, dword ptr [esi+310]
0069AD3C |. 8B10 mov edx, dword ptr [eax]
0069AD3E |. FF92 C0000000 call dword ptr [edx+C0]
0069AD44 |. 6A 10 push 10
0069AD46 |. B9 BCAE6900 mov ecx, 0069AEBC
0069AD4B |. BA C8AE6900 mov edx, 0069AEC8 ; 注册码不正确!请重新输入!
0069AD50 |. A1 046C6F00 mov eax, dword ptr [6F6C04]
0069AD55 |. 8B00 mov eax, dword ptr [eax]
0069AD57 |. E8 A4C4DDFF call 00477200
0069AD5C |. E9 C2000000 jmp 0069AE23
0069AD61 |> 8BC3 mov eax, ebx
0069AD63 |. E8 44E3E2FF call 004C90AC
0069AD68 |. 8B86 58030000 mov eax, dword ptr [esi+358]
0069AD6E |. E8 756EE0FF call 004A1BE8
0069AD73 |. 83C4 F8 add esp, -8
0069AD76 |. DD1C24 fstp qword ptr [esp]
0069AD79 |. 9B wait
0069AD7A |. BA ECAE6900 mov edx, 0069AEEC ; et
0069AD7F |. 8BC3 mov eax, ebx
0069AD81 |. E8 8ACBE2FF call 004C7910
0069AD86 |. 8B10 mov edx, dword ptr [eax]
0069AD88 |. FF92 A0000000 call dword ptr [edx+A0]
0069AD8E |. 8D55 C0 lea edx, dword ptr [ebp-40]
0069AD91 |. 8B86 08030000 mov eax, dword ptr [esi+308]
0069AD97 |. E8 F0A8DBFF call 0045568C
0069AD9C |. 8B45 C0 mov eax, dword ptr [ebp-40]
0069AD9F |. 50 push eax
0069ADA0 |. BA F8AE6900 mov edx, 0069AEF8 ; 用户名称
0069ADA5 |. 8BC3 mov eax, ebx
0069ADA7 |. E8 64CBE2FF call 004C7910
0069ADAC |. 5A pop edx
0069ADAD |. 8B08 mov ecx, dword ptr [eax]
0069ADAF |. FF91 B0000000 call dword ptr [ecx+B0]
0069ADB5 |. 8D55 BC lea edx, dword ptr [ebp-44]
0069ADB8 |. 8B86 0C030000 mov eax, dword ptr [esi+30C]
0069ADBE |. E8 C9A8DBFF call 0045568C
0069ADC3 |. 8B45 BC mov eax, dword ptr [ebp-44]
0069ADC6 |. 50 push eax
0069ADC7 |. BA 0CAF6900 mov edx, 0069AF0C ; 公司名称
0069ADCC |. 8BC3 mov eax, ebx
0069ADCE |. E8 3DCBE2FF call 004C7910
0069ADD3 |. 5A pop edx
0069ADD4 |. 8B08 mov ecx, dword ptr [eax]
0069ADD6 |. FF91 B0000000 call dword ptr [ecx+B0]
0069ADDC |. BA 20AF6900 mov edx, 0069AF20 ; flat
0069ADE1 |. 8BC3 mov eax, ebx
0069ADE3 |. E8 28CBE2FF call 004C7910
0069ADE8 |. BA 30AF6900 mov edx, 0069AF30 ; 是
0069ADED |. 8B08 mov ecx, dword ptr [eax]
0069ADEF |. FF91 B0000000 call dword ptr [ecx+B0]
0069ADF5 |. 8BC3 mov eax, ebx
0069ADF7 |. 8B10 mov edx, dword ptr [eax]
0069ADF9 |. FF92 48020000 call dword ptr [edx+248]
0069ADFF |. 8BC3 mov eax, ebx
0069AE01 |. E8 0ABAE2FF call 004C6810
0069AE06 |. B2 01 mov dl, 1
0069AE08 |. 8B86 54030000 mov eax, dword ptr [esi+354]
0069AE0E |. E8 99A7DBFF call 004555AC
0069AE13 |. BA 3CAF6900 mov edx, 0069AF3C ; 您已经成功注册本软件,将可以永久使用本软件,谢谢您的支持。
0069AE18 |. 8B86 54030000 mov eax, dword ptr [esi+354]
0069AE1E |. E8 99A8DBFF call 004556BC
0069AE23 |> 33C0 xor eax, eax
0069AE25 |. 5A pop edx
0069AE26 |. 59 pop ecx
0069AE27 |. 59 pop ecx
0069AE28 |. 64:8910 mov dword ptr fs:[eax], edx
0069AE2B |. 68 72AE6900 push 0069AE72
0069AE30 |> 8D45 BC lea eax, dword ptr [ebp-44]
0069AE33 |. BA 03000000 mov edx, 3
0069AE38 |. E8 9F9AD6FF call 004048DC
0069AE3D |. 8D45 C8 lea eax, dword ptr [ebp-38]
0069AE40 |. E8 739AD6FF call 004048B8
0069AE45 |. 8D45 CC lea eax, dword ptr [ebp-34]
0069AE48 |. E8 6B9AD6FF call 004048B8
0069AE4D |. 8D45 D0 lea eax, dword ptr [ebp-30]
0069AE50 |. E8 639AD6FF call 004048B8
0069AE55 |. 8D45 D4 lea eax, dword ptr [ebp-2C]
0069AE58 |. E8 5B9AD6FF call 004048B8
0069AE5D |. 8D45 D8 lea eax, dword ptr [ebp-28]
0069AE60 |. BA 0A000000 mov edx, 0A
0069AE65 |. E8 729AD6FF call 004048DC
0069AE6A \. C3 retn
0069AE6B .^ E9 B093D6FF jmp 00404220
0069AE70 .^ EB BE jmp short 0069AE30
0069AE72 . 5F pop edi
0069AE73 . 5E pop esi
0069AE74 . 5B pop ebx
0069AE75 . 8BE5 mov esp, ebp
0069AE77 . 5D pop ebp
0069AE78 . C3 retn
算法总结:
1、第一段注册码为固定值:L2007168
2、取第一段机器码(十六进制字符串)中的2-7位,+850H,再乘以3,转换为十进制作为第二段注册码!
3、取第二段机器码(十六进制字符串)中的2-7位,+850H,再乘以3,转换为十进制作为第三段注册码!
算法注册机源码:
void C华信仓管专家注册机Dlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
CString jqm1;
CString jqm2;
CString zcm1;
CString zcm2;
GetDlgItemText(IDC_EDIT_JQM1,jqm1); //获取输入的第一段机器码
GetDlgItemText(IDC_EDIT_JQM2,jqm2); //获取输入的第二段机器码
jqm1 = jqm1.Left(7); //取第一段机器码的左7位
jqm1 = jqm1.Right(6); //再取右边6位
jqm2 = jqm2.Left(7); //取第二段机器码的左7位,
jqm2 = jqm2.Right(6); //再取右边6位
long zcm1_d = (strtol(jqm1,NULL,16) + 2128) * 3; //十六进制字符串转换成整数+2128,再乘3
long zcm2_d = (strtol(jqm2,NULL,16) + 2128) * 3; //十六进制字符串转换成整数+2128,再乘3
zcm1.Format("%d",zcm1_d); //格式化输出
zcm2.Format("%d",zcm2_d); //格式化输出
SetDlgItemText(IDC_EDIT_ZCM1,"L2007168"); //输出第一段注册码,固定值
SetDlgItemText(IDC_EDIT_ZCM2,zcm1); //输出第二段注册码
SetDlgItemText(IDC_EDIT_ZCM3,zcm2); //输出第三段注册码
}
注册机.jpeg
(28.04 KB, 下载次数: 37)
为图省事,注册机中我没有加入非法字符的较验,各位自己加进去哈!
[ 本帖最后由 网络断魂 于 2007-12-17 21:08 编辑 ] |
-
-
注册机.jpeg
28.04 KB, 下载次数: 25, 下载积分: 飘云币 -2 枚
|