里诺进销存管理软件 V3.29 单机版 算法注册机+VC源码
里诺进销存管理软件 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
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
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:, edx
0070CAD7 .EB 36 jmp short 0070CB0F
0070CAD9 .^ E9 A279CFFF jmp 00404480
0070CADE .8B45 FC mov eax, dword ptr
0070CAE1 .E8 D630DAFF call 004AFBBC
0070CAE6 .8B45 FC mov eax, dword ptr
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
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:
0070CA07 .64:8920 mov dword ptr fs:, esp
0070CA0A .8B45 FC mov eax, dword ptr
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 ;假码
0070CCEB|.8D55 FC lea edx, dword ptr
0070CCEE|.E8 4DD7CFFF call 0040A440
0070CCF3|.8B45 FC mov eax, dword ptr ;假码
0070CCF6|.50 push eax ;假码
0070CCF7|.8D55 EC lea edx, dword ptr
0070CCFA|.8B86 04030000 mov eax, dword ptr
0070CD00|.E8 7F50D8FF call 00491D84
0070CD05|.8B45 EC mov eax, dword ptr ;机器码
0070CD08|.8D55 F0 lea edx, dword ptr
0070CD0B|.E8 30D7CFFF call 0040A440
0070CD10|.8B55 F0 mov edx, dword ptr ;机器码
0070CD13|.8D4D F4 lea ecx, dword ptr
0070CD16|.8BC6 mov eax, esi
0070CD18|.E8 FF000000 call 0070CE1C ;算法
0070CD1D|.8B55 F4 mov edx, dword ptr ;注册码 -----这里出现了注册码 上面的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 , ecx
0070CE30|.53 push ebx
0070CE31|.56 push esi
0070CE32|.57 push edi
0070CE33|.8BF9 mov edi, ecx
0070CE35|.8955 FC mov dword ptr , edx ;机器码
0070CE38|.8B45 FC mov eax, dword ptr ;机器码给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:
0070CE4B|.64:8920 mov dword ptr fs:, esp
0070CE4E|.8BC7 mov eax, edi
0070CE50|.E8 5F80CFFF call 00404EB4
0070CE55|.8B45 FC mov eax, dword ptr ;机器码给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
0070CE6B|.8B45 FC |mov eax, dword ptr ;读入机器码 机器码位数给 EAX
0070CE6E|.0FB64418 FF |movzx eax, byte ptr ;循环读机器码
0070CE73|.33D2 |xor edx, edx
0070CE75|.E8 E2DECFFF |call 0040AD5C ;循环变每位机器码
0070CE7A|.8B55 EC |mov edx, dword ptr
0070CE7D|.8D45 F8 |lea eax, dword ptr
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 ;机器码转换的值 第一位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
0070CE9F|.E8 E082CFFF |call 00405184
0070CEA4|.2BC3 |sub eax, ebx 循环转换
0070CEA6|.8B55 F8 |mov edx, dword ptr ;34变57
0070CEA9|.8A1402 |mov dl, byte ptr ;十六进制转换
0070CEAC|.8D45 E8 |lea eax, dword ptr
0070CEAF|.E8 E881CFFF |call 0040509C
0070CEB4|.8B55 E8 |mov edx, dword ptr
0070CEB7|.8D45 F4 |lea eax, dword ptr
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" 是否都一样 如果是一样的就可以通用了。。
另外传上源代码:
整个太大不让我传 我就传了个 。CPP文件就够啦 哈哈
[ 本帖最后由 crackiss 于 2009-2-18 15:35 编辑 ] 哈哈传说的沙发?超赞顶起来..../:good /:good /:good 精神值得学习 向你学习/:good 谢谢楼主,经过测试,内置字符串"jxcw268d58k" 是一样
还有楼主估计是一时大意写错了注册码的组合,应该是:
最后注册码 key= key3+key5+key1+key4+key5+key2
1和2换转了,我看楼主的注册机截图都是正确的。再次谢谢楼主。 这样注册了还有暗桩吗?具体怎么才会激活暗桩呢?楼上可以说出来跟跟。 额 我一直没碰过这个软件的暗装。。
感谢 yjh同志确认内置字符串"jxcw268d58k" 是一样
谢谢你的提醒。。我本来就笨 不喜欢循环 这3个循环当时搞的我就头大了。。测试了好多次改了好多次才通过的 哈哈 我也初学编程呀。。。幸福并痛快着。。 支持下原创,我也在用这个软件,收藏一个注册机~:loveliness: 注册了还有暗桩?也太哪个了! 应该不会有暗桩了吧。。。。