crackiss 发表于 2009-2-18 15:32:28

里诺进销存管理软件 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 编辑 ]

竹道 发表于 2009-2-18 16:06:02

哈哈传说的沙发?超赞顶起来..../:good /:good /:good

kulo 发表于 2009-2-18 18:19:33

精神值得学习

kulo 发表于 2009-2-18 18:24:05

向你学习/:good

yjh 发表于 2009-2-18 18:55:36

谢谢楼主,经过测试,内置字符串"jxcw268d58k" 是一样
还有楼主估计是一时大意写错了注册码的组合,应该是:
最后注册码 key= key3+key5+key1+key4+key5+key2

1和2换转了,我看楼主的注册机截图都是正确的。再次谢谢楼主。

yjh 发表于 2009-2-18 20:29:25

这样注册了还有暗桩吗?具体怎么才会激活暗桩呢?楼上可以说出来跟跟。

crackiss 发表于 2009-2-18 21:43:15

额 我一直没碰过这个软件的暗装。。
感谢 yjh同志确认内置字符串"jxcw268d58k" 是一样
谢谢你的提醒。。我本来就笨 不喜欢循环 这3个循环当时搞的我就头大了。。测试了好多次改了好多次才通过的 哈哈 我也初学编程呀。。。幸福并痛快着。。

rufeng12 发表于 2009-2-19 02:36:11

支持下原创,我也在用这个软件,收藏一个注册机~:loveliness:

fxingbuo 发表于 2009-2-19 06:51:57

注册了还有暗桩?也太哪个了!

crackiss 发表于 2009-2-19 08:57:57

应该不会有暗桩了吧。。。。
页: [1] 2 3 4 5
查看完整版本: 里诺进销存管理软件 V3.29 单机版 算法注册机+VC源码