九零登录

[【通过】] 【已转正】简单算法分析-电脑老爸

[复制链接]
发表于 2016-8-7 02:31:40 | 显示全部楼层 |阅读模式
电脑老爸http://fjmcc.newhua.com/down/PcLaoba.zip
用OD载入F9运行  来到注册界面随便输入个序列号
1.png
利用F12暂停法
2.png
找到弹出窗口的CALL下F2断点然后运行
3.png
再次F9 输入序列号
这时断在刚刚下F2断点的位置一路F8返回到程序的自身
4.png
向上拉发现当前版本:高级版再向上拉发现当前版本:标准版
5.png
004B12DB  /E9 1C060000     jmp 004B18FC 一个好大JMP 可能是注册成功后的JMP
所以从004B12E0    68 04000080     push 0x80000004开始有可能是高级版的算法
经过分析
我这注册码为1234567|-2141962095
004B12E0   68 04000080     push 0x80000004
004B12E5   6A 00           push 0x0
004B12E7   A1 90032402     mov eax,dword ptrds:[0x2240390]
004B12EC   85C0            test eax,eax   取|后面的  -2141962095
004B12EE   75 05           jnz short 004B12F5
004B12F0   B8 8C384000     mov eax,0040388C
004B12F5   50              push eax
004B12F6   68 01000000     push 0x1
004B12FB   BB 64010000     mov ebx,0x164
004B1300   E8 FC9A0100     call 004CAE01
004B1305   83C4 10         add esp,0x10
004B1308   8945 F8         mov dword ptrss:[ebp-0x8],eax
004B130B   8955 FC         mov dword ptrss:[ebp-0x4],edx
004B130E   DD45 F8         fld qword ptrss:[ebp-0x8]
004B1311   DC0D E0C74700   fmul qword ptrds:[0x47C7E0]  -2141962095*7
004B1317   DD5D F0         fstp qword ptrss:[ebp-0x10]
004B131A   DD45 F0         fld qword ptrss:[ebp-0x10]
004B131D   E8 D52AFFFF     call 004A3DF7    浮点数转16放到EAX
004B1322   68 01030080     push 0x80000301
004B1327   6A 00           push 0x0
004B1329   50              push eax
004B132A   68 01000000     push 0x1
004B132F   BB D4010000     mov ebx,0x1D4
004B1334   E8 C89A0100     call 004CAE01   把eax转换成字符串
004B1339   83C4 10         add esp,0x10
004B133C   8945 EC         mov dword ptrss:[ebp-0x14],eax
004B133F   68 01030080     push 0x80000301
004B1344   6A 00           push 0x0
004B1346   68 05000000     push 0x5
004B134B   68 04000080     push 0x80000004
004B1350   6A 00           push 0x0
004B1352   8B45 EC         mov eax,dword ptrss:[ebp-0x14]
004B1355   85C0            test eax,eax
004B1357   75 05           jnz short 004B135E
004B1359   B8 8C384000     mov eax,0040388C
004B135E   50              push eax
004B135F   68 02000000     push 0x2
004B1364   BB 38010000     mov ebx,0x138
004B1369   E8 939A0100     call 004CAE01   取字符串后5位
004B136E   83C4 1C         add esp,0x1C
004B1371   8945 E8         mov dword ptrss:[ebp-0x18],eax
004B1374   8B5D EC         mov ebx,dword ptrss:[ebp-0x14]
004B1377   85DB            test ebx,ebx

后面的算法和上面一样只是
004B1311   DC0D E0C74700   fmul qword ptrds:[0x47C7E0]  -2141962095*7
后面分是乘1 除8 乘11 乘10 然后转16进  取后5位


算法大约是


python 小脚本
[Bash shell] 纯文本查看 复制代码
def Number(Code,Multiple):
   if(Multiple>0):
       number=hex(int(Code*Multiple) & 0xffffffff)
   else:
       number=hex(int(Code/-Multiple) & 0xffffffff)
   return(str(number[-5:]))
Code=input("Code:")
Code2=int(Code.split('|')[1])
print((Number(Code2,7)+"-"+Number(Code2,1)+"-"+Number(Code2,-8)+"-"+Number(Code2,11)+"-"+Number(Code2,10)).upper()
)
Code:1234567|-2141962095
DC3F7-44091-A8813-EC63B-A85AA

6.png

本人技术不高,希望能加入90sec交流 更加希望能够认识更多的朋友

=====================================
管理给予通过,转正成功。
                      管理05

单选投票, 共有 18 人参与投票
66.67% (12)
33.33% (6)
您所在的用户组没有投票权限

评分

参与人数 2酒票 +7 收起 理由
Ceeeceece + 2 感谢分享
管理05 + 5 欢迎加入90!

查看全部评分

发表于 2016-8-7 10:49:58 | 显示全部楼层
太基础了,52那边入门教程的东西
发表于 2016-8-7 11:40:28 | 显示全部楼层
坛里来了不少逆向破解的啊,这下交流面更广了。
给你一票,有值得学习的地方。
发表于 2016-8-8 10:10:11 | 显示全部楼层
我投了你一票  记住

九零

GMT+8, 2026-10-22 13:32

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表