- UID
- 54189
注册时间2008-7-2
阅读权限20
最后登录1970-1-1
以武会友
该用户从未签到
|
里诺进销存管理软件 V3.29 单机版 算法注册机
去年5月份的时候 在家就想用个进销存软件管理下生意 一不小心就找到了里诺进销存 的确不错的一款软
件哦
可惜要收费。。。
混了这么久PYG的小菜--我 怎么也不能就这么看着自己的毛爷爷跑到别人那去了把。。。
于是就来试试 那次特激动 应为第一次追出了注册码 所以还在QQ空间留了记录 哈哈
http://user.qzone.qq.com/36707630/blog/1211301411
那次因为要用软件就没继续弄了
过了大半年了 又有台电脑要用这软件 于是 就想起了 写一次注册机
因为我C语言不怎么好 VC也不大会 就边看书边百度 搞了3个小时才搞定。。哈哈 也特别激动的
所以就来这里留下纪念了
先来两张图
过程 :- 查找 注册信息
- 0070CAAF . 68 84CB7000 push 0070CB84 ; 软件注册------双击来到这里 然后网上找比较过程咯0070CAB4 . 68 90CB7000 push 0070CB90 ; 注册成功,本程序所有功能限制下次启动时将被自动解除,欢迎您成为我们正式版本用户!
- 0070CAB9 . 8B45 FC mov eax, dword ptr [ebp-4]
- 0070CABC . E8 73BDD8FF call 00498834
- 0070CAC1 . 50 push eax ; |hOwner
- 0070CAC2 . E8 E1BDCFFF call <jmp.&user32.MessageBoxA> ; \MessageBoxA
- 0070CAC7 . 8B45 FC mov eax, dword ptr [ebp-4]
- 0070CACA . E8 ED30DAFF call 004AFBBC
- 0070CACF . 33C0 xor eax, eax
- 0070CAD1 . 5A pop edx
- 0070CAD2 . 59 pop ecx
- 0070CAD3 . 59 pop ecx
- 0070CAD4 . 64:8910 mov dword ptr fs:[eax], edx
- 0070CAD7 . EB 36 jmp short 0070CB0F
- 0070CAD9 .^ E9 A279CFFF jmp 00404480
- 0070CADE . 8B45 FC mov eax, dword ptr [ebp-4]
- 0070CAE1 . E8 D630DAFF call 004AFBBC
- 0070CAE6 . 8B45 FC mov eax, dword ptr [ebp-4]
- 0070CAE9 . E8 16010000 call 0070CC04
- 0070CAEE . E8 B97DCFFF call 004048AC
- 0070CAF3 . EB 1A jmp short 0070CB0F
- 0070CAF5 > 6A 40 push 40
- 0070CAF7 . 68 84CB7000 push 0070CB84 ; 软件注册
- 0070CAFC . 68 E0CB7000 push 0070CBE0 ; 注册失败,请检查您的注册名和注册码!
- 0070CB01 . 8B45 FC mov eax, dword ptr [ebp-4]
- 0070CB04 . E8 2BBDD8FF call 00498834
- 0070CB09 . 50 push eax ; |hOwner
- 0070CB0A . E8 99BDCFFF call <jmp.&user32.MessageBoxA> ; \MessageBoxA
复制代码 网上找 可以看到有个跳转 到注册失败 上面有个call 跟进- 0070C9FE . 55 push ebp
- 0070C9FF . 68 3DCB7000 push 0070CB3D
- 0070CA04 . 64:FF30 push dword ptr fs:[eax]
- 0070CA07 . 64:8920 mov dword ptr fs:[eax], esp
- 0070CA0A . 8B45 FC mov eax, dword ptr [ebp-4]
- 0070CA0D . E8 A6020000 call 0070CCB8 ; 关键CALL ---跟进
- 0070CA12 . 84C0 test al, al
- 0070CA14 0F84 DB000000 je 0070CAF5 ; 跳到注册失败
- 0070CA1A . 33C0 xor eax, eax
复制代码 跟进后 可以看到 假码 机器码都出现了 要开始算咯。。。- 0070CCE3 |. E8 9C50D8FF call 00491D84
- 0070CCE8 |. 8B45 F8 mov eax, dword ptr [ebp-8] ; 假码
- 0070CCEB |. 8D55 FC lea edx, dword ptr [ebp-4]
- 0070CCEE |. E8 4DD7CFFF call 0040A440
- 0070CCF3 |. 8B45 FC mov eax, dword ptr [ebp-4] ; 假码
- 0070CCF6 |. 50 push eax ; 假码
- 0070CCF7 |. 8D55 EC lea edx, dword ptr [ebp-14]
- 0070CCFA |. 8B86 04030000 mov eax, dword ptr [esi+304]
- 0070CD00 |. E8 7F50D8FF call 00491D84
- 0070CD05 |. 8B45 EC mov eax, dword ptr [ebp-14] ; 机器码
- 0070CD08 |. 8D55 F0 lea edx, dword ptr [ebp-10]
- 0070CD0B |. E8 30D7CFFF call 0040A440
- 0070CD10 |. 8B55 F0 mov edx, dword ptr [ebp-10] ; 机器码
- 0070CD13 |. 8D4D F4 lea ecx, dword ptr [ebp-C]
- 0070CD16 |. 8BC6 mov eax, esi
- 0070CD18 |. E8 FF000000 call 0070CE1C ; 算法
- 0070CD1D |. 8B55 F4 mov edx, dword ptr [ebp-C] ; 注册码 -----这里出现了注册码 上面的CALL肯定就是算法咯 跟进
复制代码 0070CD18 |. E8 FF000000 call 0070CE1C ; 算法
跟进来后 可以看到2个循环 逐步读取机器码 将机器码字符转换为其ASCII码的十六进制- 0070CE1C /$ 55 push ebp
- 0070CE1D |. 8BEC mov ebp, esp
- 0070CE1F |. 51 push ecx
- 0070CE20 |. B9 04000000 mov ecx, 4
- 0070CE25 |> 6A 00 /push 0
- 0070CE27 |. 6A 00 |push 0
- 0070CE29 |. 49 |dec ecx
- 0070CE2A |.^ 75 F9 \jnz short 0070CE25
- 0070CE2C |. 51 push ecx
- 0070CE2D |. 874D FC xchg dword ptr [ebp-4], ecx
- 0070CE30 |. 53 push ebx
- 0070CE31 |. 56 push esi
- 0070CE32 |. 57 push edi
- 0070CE33 |. 8BF9 mov edi, ecx
- 0070CE35 |. 8955 FC mov dword ptr [ebp-4], edx ; 机器码
- 0070CE38 |. 8B45 FC mov eax, dword ptr [ebp-4] ; 机器码给EAX
- 0070CE3B |. E8 3485CFFF call 00405374
- 0070CE40 |. 33C0 xor eax, eax
- 0070CE42 |. 55 push ebp
- 0070CE43 |. 68 DDCF7000 push 0070CFDD
- 0070CE48 |. 64:FF30 push dword ptr fs:[eax]
- 0070CE4B |. 64:8920 mov dword ptr fs:[eax], esp
- 0070CE4E |. 8BC7 mov eax, edi
- 0070CE50 |. E8 5F80CFFF call 00404EB4
- 0070CE55 |. 8B45 FC mov eax, dword ptr [ebp-4] ; 机器码给EAX
- 0070CE58 |. E8 2783CFFF call 00405184
- 0070CE5D |. 8BF0 mov esi, eax
- 0070CE5F |. 85F6 test esi, esi
- 0070CE61 |. 7E 26 jle short 0070CE89
- 0070CE63 |. BB 01000000 mov ebx, 1 ; FOR 循环 int i = 1
- 0070CE68 |> 8D4D EC /lea ecx, dword ptr [ebp-14]
- 0070CE6B |. 8B45 FC |mov eax, dword ptr [ebp-4] ; 读入机器码 机器码位数给 EAX
- 0070CE6E |. 0FB64418 FF |movzx eax, byte ptr [eax+ebx-1] ; 循环读机器码
- 0070CE73 |. 33D2 |xor edx, edx
- 0070CE75 |. E8 E2DECFFF |call 0040AD5C ; 循环变每位机器码
- 0070CE7A |. 8B55 EC |mov edx, dword ptr [ebp-14]
- 0070CE7D |. 8D45 F8 |lea eax, dword ptr [ebp-8]
- 0070CE80 |. E8 0783CFFF |call 0040518C
- 0070CE85 |. 43 |inc ebx
- 0070CE86 |. 4E |dec esi
- 0070CE87 |.^ 75 DF \jnz short 0070CE68
- 0070CE89 |> 8B45 F8 mov eax, dword ptr [ebp-8] ; 机器码转换的值 第一位4转成34 第二位M转成4D。。
- 0070CE8C |. E8 F382CFFF call 00405184
- 0070CE91 |. 8BF0 mov esi, eax
- 0070CE93 |. 85F6 test esi, esi
- 0070CE95 |. 7E 2C jle short 0070CEC3
- 0070CE97 |. BB 01000000 mov ebx, 1
- 0070CE9C |> 8B45 F8 /mov eax, dword ptr [ebp-8]
- 0070CE9F |. E8 E082CFFF |call 00405184
- 0070CEA4 |. 2BC3 |sub eax, ebx 循环转换
- 0070CEA6 |. 8B55 F8 |mov edx, dword ptr [ebp-8] ; 34变57
- 0070CEA9 |. 8A1402 |mov dl, byte ptr [edx+eax] ; 十六进制转换
- 0070CEAC |. 8D45 E8 |lea eax, dword ptr [ebp-18]
- 0070CEAF |. E8 E881CFFF |call 0040509C
- 0070CEB4 |. 8B55 E8 |mov edx, dword ptr [ebp-18]
- 0070CEB7 |. 8D45 F4 |lea eax, dword ptr [ebp-C]
- 0070CEBA |. E8 CD82CFFF |call 0040518C
- 0070CEBF |. 43 |inc ebx
- 0070CEC0 |. 4E |dec esi
- 0070CEC1 |.^ 75 D9 \jnz short 0070CE9C
复制代码 下面代码不贴啦
最后算法 大概是
1 取机器码每位字符的ASCII码的十六进制
2 将最后2位机器码的ASCII码的十六进制数 颠倒排列 存入 key1
3 将最后2位机器码的前2位的ASCII码的十六进制是 颠倒排列 存入 key2
4 将内置字符串"jxcw268d58k" 截取前4位 令其前三位为大写 存入 key3 = JXCw
再截取5位 存入 key4 = 268d5
5 将内置字符 "-" 存入 key5
最后注册码 key= key3+key5+key2+key4+key5+key1
看起来好麻烦 其实3个for循环就够了
PS 我没有看其他电脑里面的 内置字符串"jxcw268d58k" 是否都一样 如果是一样的就可以通用了。。
另外传上源代码:
里诺进销存注册机Dlg.rar
(2.06 KB, 下载次数: 166)
整个太大不让我传 我就传了个 。CPP文件就够啦 哈哈
[ 本帖最后由 crackiss 于 2009-2-18 15:35 编辑 ] |
评分
-
查看全部评分
|