expasy 发表于 2015-11-19 02:04

xx视频合并软件V2.20及同作者软件的破解、算法分析、算法注册机?

本帖最后由 H夜 于 2019-6-6 18:30 编辑

今天在逛52的时候看到了下面这个帖子
[原创破解] 超级视频合并软件V2.20--内存注册机版
看了后觉得,额,找到了一个软柿子了,可以去捏一下,然后就去这个软件的官网下了几个来试一下,

想着顺便看看算法,写个注册机啥的

1、首先试的是超级视频合并软件 V2.20这个,知道没加壳的delphi的,直接拖进OD,通过字符串查找很快来到了这里

0057EAC8/.55                  push ebp                                 ;注册按钮事件
0057EAC9|.8BEC                mov ebp,esp
0057EACB|.33C9                xor ecx,ecx
0057EACD|.51                  push ecx
0057EACE|.51                  push ecx
0057EACF|.51                  push ecx
0057EAD0|.51                  push ecx
0057EAD1|.51                  push ecx
0057EAD2|.51                  push ecx
0057EAD3|.53                  push ebx
0057EAD4|.8BD8                mov ebx,eax
0057EAD6|.33C0                xor eax,eax
0057EAD8|.55                  push ebp
0057EAD9|.68 4FEC5700         push VideoJoi.0057EC4F
0057EADE|.64:FF30             push dword ptr fs:
0057EAE1|.64:8920             mov dword ptr fs:,esp
0057EAE4|.8D55 FC             lea edx,
0057EAE7|.8B83 04030000       mov eax,dword ptr ds:
0057EAED|.E8 72C6EEFF         call VideoJoi.0046B164                   ;读取用户名
0057EAF2|.8B45 FC             mov eax,
0057EAF5|.E8 A25BE8FF         call VideoJoi.0040469C                   ;取长度
0057EAFA|.85C0                test eax,eax
0057EAFC|.75 2C               jnz short VideoJoi.0057EB2A            ;非空
0057EAFE|.6A 40               push 0x40
0057EB00|.68 5CEC5700         push VideoJoi.0057EC5C                   ;提示
0057EB05|.68 64EC5700         push VideoJoi.0057EC64                   ;注册名不能为空,请重新输入!
0057EB0A|.8BC3                mov eax,ebx
0057EB0C|.E8 6F2EEFFF         call VideoJoi.00471980
0057EB11|.50                  push eax                                 ; |hOwner = NULL
0057EB12|.E8 258CE8FF         call <jmp.&user32.MessageBoxA>         ; \MessageBoxA
0057EB17|.8B83 04030000       mov eax,dword ptr ds:
0057EB1D|.8B10                mov edx,dword ptr ds:
0057EB1F|.FF92 C4000000       call near dword ptr ds:
0057EB25|.E9 EA000000         jmp VideoJoi.0057EC14
0057EB2A|>8D55 F8             lea edx,
0057EB2D|.8B83 08030000       mov eax,dword ptr ds:
0057EB33|.E8 2CC6EEFF         call VideoJoi.0046B164                   ;假码
0057EB38|.8B45 F8             mov eax,                        ;kernel32.7C817080
0057EB3B|.E8 5C5BE8FF         call VideoJoi.0040469C                   ;假码长度
0057EB40|.85C0                test eax,eax
0057EB42|.75 2C               jnz short VideoJoi.0057EB70            ;非空
0057EB44|.6A 40               push 0x40
0057EB46|.68 5CEC5700         push VideoJoi.0057EC5C                   ;提示
0057EB4B|.68 80EC5700         push VideoJoi.0057EC80                   ;注册码不能为空,请重新输入!
0057EB50|.8BC3                mov eax,ebx
0057EB52|.E8 292EEFFF         call VideoJoi.00471980
0057EB57|.50                  push eax                                 ; |hOwner = NULL
0057EB58|.E8 DF8BE8FF         call <jmp.&user32.MessageBoxA>         ; \MessageBoxA
0057EB5D|.8B83 08030000       mov eax,dword ptr ds:
0057EB63|.8B10                mov edx,dword ptr ds:
0057EB65|.FF92 C4000000       call near dword ptr ds:
0057EB6B|.E9 A4000000         jmp VideoJoi.0057EC14
0057EB70|>8D55 F0             lea edx,
0057EB73|.8B83 08030000       mov eax,dword ptr ds:
0057EB79|.E8 E6C5EEFF         call VideoJoi.0046B164                   ;读取假码
0057EB7E|.8B45 F0             mov eax,
0057EB81|.8D55 F4             lea edx,
0057EB84|.E8 BBA4E8FF         call VideoJoi.00409044                   ;不知干什么的,去掉空字符
0057EB89|.8B45 F4             mov eax,                        ;kernel32.7C839AD8
0057EB8C|.50                  push eax
0057EB8D|.8D55 E8             lea edx,
0057EB90|.8B83 04030000       mov eax,dword ptr ds:
0057EB96|.E8 C9C5EEFF         call VideoJoi.0046B164                   ;读取用户名
0057EB9B|.8B45 E8             mov eax,
0057EB9E|.8D55 EC             lea edx,
0057EBA1|.E8 9EA4E8FF         call VideoJoi.00409044                   ;同上处理,去掉空字符
0057EBA6|.8B55 EC             mov edx,
0057EBA9|.A1 A8C65900         mov eax,dword ptr ds:
0057EBAE|.8B00                mov eax,dword ptr ds:
0057EBB0|.8B80 74040000       mov eax,dword ptr ds:
0057EBB6|.59                  pop ecx                                  ;kernel32.7C817077
0057EBB7|.E8 3823F6FF         call VideoJoi.004E0EF4                   ;/////可疑1,写注册表的
0057EBBC|.A1 A8C65900         mov eax,dword ptr ds:
0057EBC1|.8B00                mov eax,dword ptr ds:
0057EBC3|.8B80 74040000       mov eax,dword ptr ds:
0057EBC9|.E8 C622F6FF         call VideoJoi.004E0E94                   ;/////可疑2,算法&比较
0057EBCE|.84C0                test al,al
0057EBD0      75 29               jnz short VideoJoi.0057EBFB            ;好明显的关键跳
0057EBD2|.6A 40               push 0x40
0057EBD4|.68 5CEC5700         push VideoJoi.0057EC5C                   ;提示
0057EBD9|.68 9CEC5700         push VideoJoi.0057EC9C                   ;注册码不正确,请检查注册码是否输错!
0057EBDE|.8BC3                mov eax,ebx
0057EBE0|.E8 9B2DEFFF         call VideoJoi.00471980
0057EBE5|.50                  push eax                                 ; |hOwner = NULL
0057EBE6|.E8 518BE8FF         call <jmp.&user32.MessageBoxA>         ; \MessageBoxA
0057EBEB|.8B83 08030000       mov eax,dword ptr ds:
0057EBF1|.8B10                mov edx,dword ptr ds:
0057EBF3|.FF92 C4000000       call near dword ptr ds:
0057EBF9|.EB 19               jmp short VideoJoi.0057EC14
0057EBFB|>6A 40               push 0x40
0057EBFD|.68 5CEC5700         push VideoJoi.0057EC5C                   ;提示
0057EC02|.68 C0EC5700         push VideoJoi.0057ECC0                   ;注册成功,您现在可以退出注册窗体了!
0057EC07|.8BC3                mov eax,ebx
0057EC09|.E8 722DEFFF         call VideoJoi.00471980
0057EC0E|.50                  push eax                                 ; |hOwner = NULL
0057EC0F|.E8 288BE8FF         call <jmp.&user32.MessageBoxA>         ; \MessageBoxA


很容易可以发现0057EBD0这行是关键的跳转,通过一一排除确定0057EBC9这行是关键call
0057EBC9|.E8 C622F6FF         call VideoJoi.004E0E94                   ;/////关键call,算法&比较


F7进入这个call,来到这里:
004E0E94/$55                  push ebp
004E0E95|.8BEC                mov ebp,esp
004E0E97|.6A 00               push 0x0
004E0E99|.53                  push ebx
004E0E9A|.8BD8                mov ebx,eax
004E0E9C|.33C0                xor eax,eax
004E0E9E|.55                  push ebp
004E0E9F|.68 E60E4E00         push VideoJoi.004E0EE6
004E0EA4|.64:FF30             push dword ptr fs:
004E0EA7|.64:8920             mov dword ptr fs:,esp
004E0EAA|.8BC3                mov eax,ebx
004E0EAC|.E8 73FEFFFF         call VideoJoi.004E0D24                   ;注册表操作的?
004E0EB1|.DDD8                fstp st
004E0EB3|.8D55 FC             lea edx,
004E0EB6|.8BC3                mov eax,ebx
004E0EB8|.E8 8FFCFFFF         call VideoJoi.004E0B4C                   ;call算法
004E0EBD|.8B55 FC             mov edx,                        ;假码
004E0EC0|.8B43 14             mov eax,dword ptr ds:          ;真码??
004E0EC3|.E8 2039F2FF         call VideoJoi.004047E8                   ;比较
004E0EC8      75 04               jnz short VideoJoi.004E0ECE            ;这里改就可以注册成功了
004E0ECA|.B3 01               mov bl,0x1
004E0ECC|.EB 02               jmp short VideoJoi.004E0ED0
004E0ECE|>33DB                xor ebx,ebx
004E0ED0|>33C0                xor eax,eax
004E0ED2|.5A                  pop edx                                  ;kernel32.7C817077
004E0ED3|.59                  pop ecx                                  ;kernel32.7C817077
004E0ED4|.59                  pop ecx                                  ;kernel32.7C817077
004E0ED5|.64:8910             mov dword ptr fs:,edx               ;ntdll.KiFastSystemCallRet
004E0ED8|.68 ED0E4E00         push VideoJoi.004E0EED
004E0EDD|>8D45 FC             lea eax,
004E0EE0|.E8 DB34F2FF         call VideoJoi.004043C0
004E0EE5\.C3                  retn


发现在004E0EC3这行的时候出现了类似于真码的字符串,在edx中
我的是用户名expasy,类似真码的字符串是ASCII "vj26-97378v201-1607",先记着待会用

继续在004E0EB8这行F7,进入所谓的算法
004E0B4C/$55                  push ebp                                 ;注册码计算
004E0B4D|.8BEC                mov ebp,esp
004E0B4F|.B9 05000000         mov ecx,0x5
004E0B54|>6A 00               /push 0x0
004E0B56|.6A 00               |push 0x0
004E0B58|.49                  |dec ecx
004E0B59|.^ 75 F9               \jnz short VideoJoi.004E0B54
004E0B5B|.51                  push ecx
004E0B5C|.53                  push ebx
004E0B5D|.56                  push esi
004E0B5E|.57                  push edi                                 ;ntdll.7C930228
004E0B5F|.8955 FC             mov ,edx                        ;ntdll.KiFastSystemCallRet
004E0B62|.8BF8                mov edi,eax
004E0B64|.33C0                xor eax,eax
004E0B66|.55                  push ebp
004E0B67|.68 0A0D4E00         push VideoJoi.004E0D0A
004E0B6C|.64:FF30             push dword ptr fs:
004E0B6F|.64:8920             mov dword ptr fs:,esp
004E0B72|.8B45 FC             mov eax,
004E0B75|.E8 4638F2FF         call VideoJoi.004043C0                   ;lstrclr,清屏
004E0B7A|.8D55 F0             lea edx,
004E0B7D|.8BC7                mov eax,edi                              ;ntdll.7C930228
004E0B7F|.E8 60FFFFFF         call VideoJoi.004E0AE4                   ;注册表操作,用户名
004E0B84|.8B45 F0             mov eax,
004E0B87|.E8 103BF2FF         call VideoJoi.0040469C                   ;用户名长度
004E0B8C|.8BF0                mov esi,eax
004E0B8E|.85F6                test esi,esi                           ;用作循环变量
004E0B90|.7E 30               jle short VideoJoi.004E0BC2
004E0B92|.BB 01000000         mov ebx,0x1
004E0B97|>8D55 E8             /lea edx,                     ;------------处理过程1------------
004E0B9A|.8BC7                |mov eax,edi                           ;ntdll.7C930228
004E0B9C|.E8 43FFFFFF         |call VideoJoi.004E0AE4                  ;取用户名?
004E0BA1|.8B45 E8             |mov eax,
004E0BA4|.0FB64418 FF         |movzx eax,byte ptr ds:   ;依次取用户名的各位
004E0BA9|.8D4D EC             |lea ecx,                     ;本来就是16进制的ascii值
004E0BAC|.33D2                |xor edx,edx                           ;ntdll.KiFastSystemCallRet
004E0BAE|.E8 7589F2FF         |call VideoJoi.00409528                  ;IntToHex,转16进制
004E0BB3|.8B55 EC             |mov edx,                     ;将本来就是16进制的ascii值每一位当作是字符
004E0BB6|.8D45 F8             |lea eax,                     ;如'z'=0x7a-->'7a'=0x37,0x41
004E0BB9|.E8 E63AF2FF         |call VideoJoi.004046A4                  ;然后字符串连接
004E0BBE|.43                  |inc ebx
004E0BBF|.4E                  |dec esi
004E0BC0|.^ 75 D5               \jnz short VideoJoi.004E0B97             ;------------过程1end------------
004E0BC2|>8B45 F8             mov eax,                        ;【结果1】
004E0BC5|.E8 D23AF2FF         call VideoJoi.0040469C                   ;len()
004E0BCA|.8BF0                mov esi,eax                              ;循环变量
004E0BCC|.85F6                test esi,esi
004E0BCE|.7E 2C               jle short VideoJoi.004E0BFC
004E0BD0|.BB 01000000         mov ebx,0x1
004E0BD5|>8B45 F8             /mov eax,                     ;------------处理过程2------------
004E0BD8|.E8 BF3AF2FF         |call VideoJoi.0040469C                  ;【结果1】长度
004E0BDD|.2BC3                |sub eax,ebx                           ;-1,2,3,4...
004E0BDF|.8B55 F8             |mov edx,                     ;kernel32.7C817080
004E0BE2|.8A1402            |mov dl,byte ptr ds:
004E0BE5|.8D45 E4             |lea eax,
004E0BE8|.E8 BB39F2FF         |call VideoJoi.004045A8                  ;倒序取【结果1】各位
004E0BED|.8B55 E4             |mov edx,
004E0BF0|.8D45 F4             |lea eax,
004E0BF3|.E8 AC3AF2FF         |call VideoJoi.004046A4                  ;连接
004E0BF8|.43                  |inc ebx
004E0BF9|.4E                  |dec esi                                 ;【结果2】
004E0BFA|.^ 75 D9               \jnz short VideoJoi.004E0BD5             ;------------过程2end------------
004E0BFC|>8D45 F8             lea eax,
004E0BFF|.50                  push eax                                 ;------------处理过程3------------
004E0C00|.B9 04000000         mov ecx,0x4
004E0C05|.BA 01000000         mov edx,0x1
004E0C0A|.8B45 F4             mov eax,                        ;kernel32.7C839AD8
004E0C0D|.E8 EA3CF2FF         call VideoJoi.004048FC                   ;【结果2】的1-4位,相当于vb Mid(eax,edx,ecx)
004E0C12|.8D45 F4             lea eax,                        ;【结果3-1】
004E0C15|.50                  push eax
004E0C16|.B9 04000000         mov ecx,0x4
004E0C1B|.BA 05000000         mov edx,0x5
004E0C20|.8B45 F4             mov eax,                        ;kernel32.7C839AD8
004E0C23|.E8 D43CF2FF         call VideoJoi.004048FC                   ;【结果2】的第5-8位,相当于vb Mid(eax,5,4)
004E0C28|.8B45 F8             mov eax,                        ;【结果3-2】
004E0C2B|.E8 6C3AF2FF         call VideoJoi.0040469C
004E0C30|.83F8 04             cmp eax,0x4                              ;这里是肯定相等的,取的就是4位呀
004E0C33|.7D 2F               jge short VideoJoi.004E0C64
004E0C35|.8B45 F8             mov eax,                        ;------这里没用?-----
004E0C38|.E8 5F3AF2FF         call VideoJoi.0040469C
004E0C3D|.8BD8                mov ebx,eax
004E0C3F|.83FB 03             cmp ebx,0x3
004E0C42|.7F 20               jg short VideoJoi.004E0C64
004E0C44|>8D4D E0             /lea ecx,
004E0C47|.8BC3                |mov eax,ebx
004E0C49|.C1E0 02             |shl eax,0x2
004E0C4C|.33D2                |xor edx,edx                           ;ntdll.KiFastSystemCallRet
004E0C4E|.E8 D588F2FF         |call VideoJoi.00409528
004E0C53|.8B55 E0             |mov edx,
004E0C56|.8D45 F8             |lea eax,
004E0C59|.E8 463AF2FF         |call VideoJoi.004046A4
004E0C5E|.43                  |inc ebx
004E0C5F|.83FB 04             |cmp ebx,0x4
004E0C62|.^ 75 E0               \jnz short VideoJoi.004E0C44             ;-----到这里都没用?0-----
004E0C64|>8B45 F4             mov eax,                        ;kernel32.7C839AD8
004E0C67|.E8 303AF2FF         call VideoJoi.0040469C
004E0C6C|.83F8 04             cmp eax,0x4
004E0C6F|.7D 2F               jge short VideoJoi.004E0CA0
004E0C71|.8B45 F4             mov eax,                        ;------这里没用?-----
004E0C74|.E8 233AF2FF         call VideoJoi.0040469C
004E0C79|.8BD8                mov ebx,eax
004E0C7B|.83FB 03             cmp ebx,0x3
004E0C7E|.7F 20               jg short VideoJoi.004E0CA0
004E0C80|>8D4D DC             /lea ecx,
004E0C83|.8BC3                |mov eax,ebx
004E0C85|.C1E0 02             |shl eax,0x2
004E0C88|.33D2                |xor edx,edx                           ;ntdll.KiFastSystemCallRet
004E0C8A|.E8 9988F2FF         |call VideoJoi.00409528
004E0C8F|.8B55 DC             |mov edx,
004E0C92|.8D45 F4             |lea eax,
004E0C95|.E8 0A3AF2FF         |call VideoJoi.004046A4
004E0C9A|.43                  |inc ebx
004E0C9B|.83FB 04             |cmp ebx,0x4
004E0C9E|.^ 75 E0               \jnz short VideoJoi.004E0C80             ;-----到这里都没用?0-----
004E0CA0|>8D45 D8             lea eax,
004E0CA3|.50                  push eax
004E0CA4|.8B47 04             mov eax,dword ptr ds:         ;ntdll.7C96F7E7
004E0CA7|.B9 04000000         mov ecx,0x4
004E0CAC|.BA 01000000         mov edx,0x1
004E0CB1|.E8 463CF2FF         call VideoJoi.004048FC                   ;取1-4位
004E0CB6|.FF75 D8             push                         ;ntdll.7C930228
004E0CB9|.68 200D4E00         push VideoJoi.004E0D20                   ;-
004E0CBE|.FF75 F8             push                            ;kernel32.7C817080
004E0CC1|.8D45 D4             lea eax,
004E0CC4|.50                  push eax
004E0CC5|.8B47 04             mov eax,dword ptr ds:         ;ntdll.7C96F7E7
004E0CC8|.B9 05000000         mov ecx,0x5
004E0CCD|.BA 05000000         mov edx,0x5
004E0CD2|.E8 253CF2FF         call VideoJoi.004048FC                   ;5-8位
004E0CD7|.FF75 D4             push                         ;kernel32.7C817077
004E0CDA|.68 200D4E00         push VideoJoi.004E0D20                   ;-
004E0CDF|.FF75 F4             push                            ;kernel32.7C839AD8
004E0CE2|.8B45 FC             mov eax,
004E0CE5|.BA 06000000         mov edx,0x6
004E0CEA|.E8 6D3AF2FF         call VideoJoi.0040475C                   ;连接,出真码
004E0CEF|.33C0                xor eax,eax
004E0CF1|.5A                  pop edx                                  ;kernel32.7C817077
004E0CF2|.59                  pop ecx                                  ;kernel32.7C817077
004E0CF3|.59                  pop ecx                                  ;kernel32.7C817077
004E0CF4|.64:8910             mov dword ptr fs:,edx               ;ntdll.KiFastSystemCallRet
004E0CF7|.68 110D4E00         push VideoJoi.004E0D11
004E0CFC|>8D45 D4             lea eax,
004E0CFF|.BA 0A000000         mov edx,0xA
004E0D04|.E8 DB36F2FF         call VideoJoi.004043E4
004E0D09\.C3                  retn


2、算法分析
算法相当简单:
第一步:
处理用户名,这步每个软件的算法结果都一样
expasy的16进制的ascii码:65 78 70 61 73 79
直接变成字符,就是:“657870617379 ”
然后倒序,就是:“973716078756”
取1-4位:“9737”,5-8位:“1607”

第二步:
一个固定的字符串“vj268v2013”,这个字符每个软件不同,也只有这点不同而已
取1-4位:“vj26”,5-9位:“8v201”

第三步:
拼接起来,中间用“-”隔开
得到最终结果:vj26-97378v201-1607
连注册机都懒得写了,直接用个计算器就行了。注册信息保存在注册表“HKEY_LOCAL_MACHINE\SOFTWARE\VJiner\Joiner”


3、继续研究
本来以为连算法都解决了,这样就已经完美了,没想到没这么简单。
输入刚才的注册码,显示注册成功,是的,仅仅是显示注册成功而已!


重启软件,也没有出现注册窗口了,然后我试了一下转个视频,选择转mp4,其他设置没变,然后直接就不行

点击关于,是demo,就是这只是演示版
http://attach.52pojie.cn/album/201511/24/171059fmmrhs8nonhhxhzn.jpg
转一个wmv格式的,转成功了,但是有水印

http://attach.52pojie.cn/album/201511/24/171057wjj1oson11y4w1z4.jpg

种种迹象表明,要么这个注册码不对,要么就是其他地方还有验证,要么这个程序本身就只是个demo版本
然后我试了下OD中搜索字符串“demo”,居然给我找到了
中文搜索引擎, 条目 4749
地址=0057F19A
反汇编=mov edx,VideoJoi.0057F230
文本字符串=Demo

然后很容易到了这里:
0057F158|.A1 A8C65900         mov eax,dword ptr ds:
0057F15D|.8B00                mov eax,dword ptr ds:
0057F15F|.80B8 70040000 00    cmp byte ptr ds:,0x0
0057F166|.75 22               jnz short VideoJoi.0057F18A            ;这个跳不能跳
0057F168|.BA 0000FF00         mov edx,0xFF0000
0057F16D|.8B83 1C030000       mov eax,dword ptr ds:
0057F173|.E8 8CC1EEFF         call VideoJoi.0046B304
0057F178|.BA 20F25700         mov edx,VideoJoi.0057F220                ;正式
0057F17D|.8B83 1C030000       mov eax,dword ptr ds:
0057F183|.E8 0CC0EEFF         call VideoJoi.0046B194
0057F188|.EB 20               jmp short VideoJoi.0057F1AA
0057F18A|>BA FF000000         mov edx,0xFF
0057F18F|.8B83 1C030000       mov eax,dword ptr ds:
0057F195|.E8 6AC1EEFF         call VideoJoi.0046B304
0057F19A|.BA 30F25700         mov edx,VideoJoi.0057F230                ;Demo
0057F19F|.8B83 1C030000       mov eax,dword ptr ds:


把这个0057F166的jnz跳转改了一下,呵呵,变成正式版了

http://attach.52pojie.cn/album/201511/24/171101k54lzpcq769ifg35.jpg

测试一下,转个视频,结果如下:


没有水印了,看来是真的破解

至于能直接注册成功,并且是正式版的序列号,我现在还没有找到,不过爆破已经能够成功了。

我爆破选择的爆破点有两个:004E0EC8和0057FE85
1:004E0EC8jne 004E0ECEh ------->004E0ECAh;////注册成功的爆破
2:0057FE85mov byte ptr , 01h ------>mov byte ptr , 00h   /////爆破成正式版
0057FE85这处是对“正式版”的标志初始赋值的地方,单步+内存访问断点找到的
当然也可以改跳转的,对这个的验证有几处,改那几处的跳就行了

基本同样的方法可以爆破这一系列的软件。

2015.11.19
注册机及源码在 楼下、20楼
http://www.52pojie.cn/forum.php? ... 435553&pid=10776249


成品:http://pan.baidu.com/s/1c0kF5uS 密码:68p2



2015.11.24
之前图片不见了,重新上传了图片
算法部分的补充:
当用户名小于4位(中文2位)时,注册码也可以计算,相当于就是在倒序后取用户名的长度*4(中文是*8)的值来算的,同样位数的算出来的码差不太多
把注册机的21行:
b = Right(b, 8)                                 '这样做是为了中文字符
改成
If Len(b) >= 8 Then
    b = Right(b, 8)                                 '这样做是为了中文字符
ElseIf Len(b) = 6 Then
    b = "C8" & b
ElseIf Len(b) = 4 Then
    b = "C840" & b
Else
    b = "C840C8" & b
End If

就可以了
另外,"超级iphone视频转换器"的字符串是"iphone848v2013","超级屏幕录像专家"的字符串是"PictureRecording86v2013",很简单就可以得到,把源码中的字符串换成这些就可以变成另外的注册机了。


expasy 发表于 2015-11-19 14:22

本帖最后由 expasy 于 2015-11-19 14:36 编辑

算法注册机?:,密码:52pojie
使用的吾爱破解注册机生成器编写的注册机,
源码:

Function GetMC(X)
GetMC=X
MC=GetMC
End Function

Function GetName(X)
GetName=x
Name=GetName
End Function

Function GetSN()
Dim a, b, username(4), sn(19), i, j, expasy '数组不喜欢用第一位
a = Name
if len(a)>3 then
a = Right(a, 4)
For i = 1 To 4                                  '转16进制
username(i) = Hex(Asc(Mid(a, i, 1)))
username(i) = username(i) & ""
b = b + username(i)
Next
b = Right(b, 8)                                 '这样做是为了中文字符

Dim invertname(8), c                            '反序
For i = 1 To 8
invertname(i) = Mid(b, (9 - i), 1)
c = c & invertname(i) & ""
Next

Dim str
str = "vj268v2013"
For i = 1 To 4                                  '开始生成注册码了,其实可以精简下代码
sn(i) = Mid(str, i, 1)
sn(i + 5) = invertname(i)
sn(i + 9) = Mid(str, (i + 4), 1)
sn(i + 15) = invertname(i + 4)
Next
sn(14) = Mid(str, 9, 1)
sn(5) = "-"
sn(15) = "-"

For i = 1 To 19
expasy = expasy & sn(i)
Next

else
expasy = "用户名4位(或汉字2位)及以上。"
end if

GetSN = expasy
End Function

青年的故事 发表于 2015-12-7 23:29

expasy 发表于 2015-11-19 14:22
算法注册机?:,密码:52pojie
使用的吾爱破解注册机生成器编写的注册机,
源码:


兄弟你那个“把这个0057F166的jnz跳转改了一下,呵呵,变成正式版了”怎么改?改成什么了?能给大家说下吗

chinaldc 发表于 2015-11-19 02:42

没了啊?就这样了吗。。

baowujin 发表于 2015-11-19 05:59

没了啊?就这样了吗。

付景帆 发表于 2015-11-19 06:51

没了啊?就这样了吗{:1_926:}{:1_926:}

1485573943 发表于 2015-11-19 07:36

我需要多多学习了!基础查!分析注册过程有待进一步提高

aikuimail 发表于 2015-11-19 08:00

图片要重新弄一个,显示不出来。

aikuimail 发表于 2015-11-19 08:02

楼主能不能顺便把软件官网贴一下,我找不到

mylin2008 发表于 2015-11-19 08:06

weizhuqiang 发表于 2015-11-19 08:08

需要多多学习了!基础查!分析注册过程有待进一步提高

JuN...TMTT 发表于 2015-11-19 08:17

厉害啊,学习学习{:301_978:}
页: [1] 2 3 4 5 6 7 8
查看完整版本: xx视频合并软件V2.20及同作者软件的破解、算法分析、算法注册机?