Open Video Converter 3.0.1.310算法分析+注册机
【破文标题】Open Video Converter 3.0.1.310算法分析+注册机【破文作者】ZHOU2X
【破解工具】PEID,W32Dasm,Ollydbg
【破解平台】WinXP
【软件名称】Open Video Converter 3.0.1.310
【软件大小】541KB
【原版下载】http://hn.onlinedown.net/soft/27574.htm
【保护方式】注册码
【软件简介】Open Video Converter 是一款易于使用的视频转换,分割和编辑工具.它能转换多个视频格式如MPG, AVI, ASF, WMV到AVI 文件. 它能改变帧尺寸,帧频,视频和音频压缩编码.
主要功能有: -转换MPEG,WMV,ASF,MPG,VCD,OGM,DAT,SVCD为AVI. 支持DIVX,XVID编码. -分割视频文件 -改变帧尺寸,调整视频屏幕高宽比. -通过选择不同编码率改变视频文件大小 -改变
AVI文件的视频和音频压缩编码.
【破解声明】只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
------------------------------------------------------------------------
【破解过程】无壳,有提示,OD载入,寻找“registration failed!”,看下面代码
00424980/.5>push ebp
00424981|.8>mov ebp,esp
00424983|.8>sub esp,20
00424986|.8>mov ,ecx
00424989|.6>push 1
0042498B|.8>mov ecx,
0042498E|.E>call 00446D5D ;VideoCon.00446D5D
00424993|.8>mov ecx,
00424996|.8>add ecx,70
00424999|.E>call 0040BA50 ;VideoCon.0040BA50
0042499E|.8>cmp eax,2 ;比较注册名长度是否大于等于2
004249A1|.7>jge short 004249B6 ;VideoCon.004249B6
004249A3|.6>push 0
004249A5|.6>push 0
004249A7|.6>push 46032C ;please input correct user name!
004249AC|.E>call 00450B6F ;VideoCon.00450B6F
004249B1|.E>jmp 00424C5F ;VideoCon.00424C5F
004249B6|>8>mov ecx,
004249B9|.8>add ecx,74
004249BC|.E>call 0040BA50 ;VideoCon.0040BA50
004249C1|.8>cmp eax,8 ;比较注册码长度是否大于等于8
004249C4|.7>jge short 004249D9 ;VideoCon.004249D9
004249C6|.6>push 0
004249C8|.6>push 0
004249CA|.6>push 46034C ;please input correct registration code!
004249CF|.E>call 00450B6F ;VideoCon.00450B6F
004249D4|.E>jmp 00424C5F ;VideoCon.00424C5F
004249D9|>6>push 0 ; /Arg1 = 00000000
004249DB|.8>mov ecx, ; |
004249DE|.8>add ecx,70 ; |
004249E1|.E>call 00423F90 ; \VideoCon.00423F90
004249E6|.8>mov byte ptr ss:,al
004249E9|.6>push 1 ; /Arg1 = 00000001
004249EB|.8>mov ecx, ; |
004249EE|.8>add ecx,70 ; |
004249F1|.E>call 00423F90 ; \VideoCon.00423F90
004249F6|.8>mov byte ptr ss:,al
004249F9|.6>push 0 ; /Arg1 = 00000000
004249FB|.8>mov ecx, ; |
004249FE|.8>add ecx,70 ; |
00424A01|.E>call 00423F90 ; \VideoCon.00423F90
00424A06|.8>mov byte ptr ss:,al
00424A09|.6>push 1 ; /Arg1 = 00000001
00424A0B|.8>mov ecx, ; |
00424A0E|.8>add ecx,70 ; |
00424A11|.E>call 00423F90 ; \VideoCon.00423F90
00424A16|.8>mov byte ptr ss:,al
00424A19|.0>movzx eax,byte ptr ss:
00424A1D|.8>or eax,41 ;注册名第一位字符ASCCI码值和0x41或运算
00424A20|.8>mov byte ptr ss:,al
00424A23|.0>movzx ecx,byte ptr ss:
00424A27|.8>or ecx,56 ;注册名第二位字符ASCCI码值和0x56或运算
00424A2A|.8>mov byte ptr ss:,cl
00424A2D|.0>movzx edx,byte ptr ss:
00424A31|.8>or edx,49 ;注册名第一位字符ASCCI码值和0x49或运算
00424A34|.8>mov byte ptr ss:,dl
00424A37|.0>movzx eax,byte ptr ss:
00424A3B|.8>or eax,43 ;注册名第二位字符ASCCI码值和0x43或运算
00424A3E|.8>mov byte ptr ss:,al
00424A41|.0>movzx eax,byte ptr ss:
00424A45|.9>cdq
00424A46|.B>mov ecx,0A
00424A4B|.F>idiv ecx ;注册名第一位字符第一次或运算结果除以0x0A
00424A4D|.8>mov byte ptr ss:,dl ;保存余数①
00424A50|.0>movzx eax,byte ptr ss:
00424A54|.9>cdq
00424A55|.B>mov ecx,0A
00424A5A|.F>idiv ecx ;注册名第二位字符第一次或运算结果除以0x0A
00424A5C|.8>mov byte ptr ss:,dl ;保存余数②
00424A5F|.0>movzx eax,byte ptr ss:
00424A63|.9>cdq
00424A64|.B>mov ecx,0A
00424A69|.F>idiv ecx ;注册名第一位字符第二次或运算结果除以0x0A
00424A6B|.8>mov byte ptr ss:,dl ;保存余数③
00424A6E|.0>movzx eax,byte ptr ss:
00424A72|.9>cdq
00424A73|.B>mov ecx,0A
00424A78|.F>idiv ecx ;注册名第二位字符第二次或运算结果除以0x0A
00424A7A|.8>mov byte ptr ss:,dl ;保存余数④
00424A7D|.C>mov ,0
00424A84|.C>mov ,0
00424A8B|.E>jmp short 00424A96 ;VideoCon.00424A96
00424A8D|>8>/mov edx,
00424A90|.8>|add edx,1
00424A93|.8>|mov ,edx
00424A96|>8> mov ecx,
00424A99|.8>|add ecx,70
00424A9C|.E>|call 0040BA50 ;VideoCon.0040BA50
00424AA1|.3>|cmp ,eax
00424AA4|.7>|jge short 00424AC4 ;VideoCon.00424AC4
00424AA6|.8>|mov eax,
00424AA9|.5>|push eax ; /Arg1
00424AAA|.8>|mov ecx, ; |
00424AAD|.8>|add ecx,70 ; |
00424AB0|.E>|call 00423F90 ; \VideoCon.00423F90
00424AB5|.8>|mov byte ptr ss:,al
00424AB8|.0>|movzx ecx,byte ptr ss:
00424ABC|.0>|add ecx,
00424ABF|.8>|mov ,ecx
00424AC2|.^ E>\jmp short 00424A8D ;VideoCon.00424A8D
00424AC4|>8>mov eax, ;注册名ASCCI码值和
00424AC7|.9>cdq
00424AC8|.B>mov ecx,0A
00424ACD|.F>idiv ecx
00424ACF|.8>mov byte ptr ss:,dl 注册名ASCCI码值之和除以0x0A,保存余数⑤
00424AD2|.6>push 0 ; /Arg1 = 00000000
00424AD4|.8>mov ecx, ; |
00424AD7|.8>add ecx,74 ; |
00424ADA|.E>call 00423F90 ; \VideoCon.00423F90
00424ADF|.8>mov byte ptr ss:,al
00424AE2|.6>push 1 ; /Arg1 = 00000001
00424AE4|.8>mov ecx, ; |
00424AE7|.8>add ecx,74 ; |
00424AEA|.E>call 00423F90 ; \VideoCon.00423F90
00424AEF|.8>mov byte ptr ss:,al
00424AF2|.6>push 2 ; /Arg1 = 00000002
00424AF4|.8>mov ecx, ; |
00424AF7|.8>add ecx,74 ; |
00424AFA|.E>call 00423F90 ; \VideoCon.00423F90
00424AFF|.8>mov byte ptr ss:,al
00424B02|.6>push 3 ; /Arg1 = 00000003
00424B04|.8>mov ecx, ; |
00424B07|.8>add ecx,74 ; |
00424B0A|.E>call 00423F90 ; \VideoCon.00423F90
00424B0F|.8>mov byte ptr ss:,al
00424B12|.6>push 4 ; /Arg1 = 00000004
00424B14|.8>mov ecx, ; |
00424B17|.8>add ecx,74 ; |
00424B1A|.E>call 00423F90 ; \VideoCon.00423F90
00424B1F|.8>mov byte ptr ss:,al
00424B22|.6>push 5 ; /Arg1 = 00000005
00424B24|.8>mov ecx, ; |
00424B27|.8>add ecx,74 ; |
00424B2A|.E>call 00423F90 ; \VideoCon.00423F90
00424B2F|.8>mov byte ptr ss:,al
00424B32|.6>push 6 ; /Arg1 = 00000006
00424B34|.8>mov ecx, ; |
00424B37|.8>add ecx,74 ; |
00424B3A|.E>call 00423F90 ; \VideoCon.00423F90
00424B3F|.8>mov byte ptr ss:,al
00424B42|.6>push 7 ; /Arg1 = 00000007
00424B44|.8>mov ecx, ; |
00424B47|.8>add ecx,74 ; |
00424B4A|.E>call 00423F90 ; \VideoCon.00423F90
00424B4F|.8>mov byte ptr ss:,al
00424B52|.0>movzx edx,byte ptr ss: ;余数①
00424B56|.0>movzx eax,byte ptr ss: ;注册码第一位ASCCI码值
00424B5A|.8>sub eax,30 ;注册码第一位ASCCI码值减0x30
00424B5D|.3>cmp edx,eax
00424B5F|.7>jnz short 00424B9D ;不等,跳
00424B61|.0>movzx ecx,byte ptr ss: ;余数②
00424B65|.0>movzx edx,byte ptr ss: ;注册码第二位ASCCI码值
00424B69|.8>sub edx,30 ;注册码第二位ASCCI码值减0x30
00424B6C|.3>cmp ecx,edx
00424B6E|.7>jnz short 00424B9D ;不等,跳
00424B70|.0>movzx eax,byte ptr ss: ;余数③
00424B74|.0>movzx ecx,byte ptr ss: ;注册码第三位ASCCI码值
00424B78|.8>sub ecx,30 ;注册码第三位ASCCI码值减0x30
00424B7B|.3>cmp eax,ecx
00424B7D|.7>jnz short 00424B9D ;不等,跳
00424B7F|.0>movzx edx,byte ptr ss: ;余数④
00424B83|.0>movzx eax,byte ptr ss: ;注册码第四位ASCCI码值
00424B87|.8>sub eax,30 ;注册码第四位ASCCI码值减0x30
00424B8A|.3>cmp edx,eax
00424B8C|.7>jnz short 00424B9D ;不等,跳
00424B8E|.0>movzx ecx,byte ptr ss: ;余数⑤
00424B92|.0>movzx edx,byte ptr ss: ;注册码第五位ASCCI码值
00424B96|.8>sub edx,30 ;注册码第五位ASCCI码值减0x30
00424B99|.3>cmp ecx,edx
00424B9B|.7>je short 00424BF5 ;相等,跳(注册成功)
00424B9D|>0>movzx eax,byte ptr ss:
00424BA1|.8>cmp eax,35 ;5 (通用注册码 51897629)
00424BA4|.0>jnz 00424C51 ;不等,跳(注册失败)
00424BAA|.0>movzx ecx,byte ptr ss:
00424BAE|.8>cmp ecx,31 ;1
00424BB1|.0>jnz 00424C51 ;不等,跳
00424BB7|.0>movzx edx,byte ptr ss:
00424BBB|.8>cmp edx,38 ;8
00424BBE|.0>jnz 00424C51 ;不等,跳
00424BC4|.0>movzx eax,byte ptr ss:
00424BC8|.8>cmp eax,39 ;9
00424BCB|.0>jnz 00424C51 ;不等,跳
00424BD1|.0>movzx ecx,byte ptr ss:
00424BD5|.8>cmp ecx,37 ;7
00424BD8|.7>jnz short 00424C51 ;不等,跳
00424BDA|.0>movzx edx,byte ptr ss:
00424BDE|.8>cmp edx,36 ;6
00424BE1|.7>jnz short 00424C51 ;不等,跳
00424BE3|.0>movzx eax,byte ptr ss:
00424BE7|.8>cmp eax,32 ;2
00424BEA|.7>jnz short 00424C51 ;不等,跳
00424BEC|.0>movzx ecx,byte ptr ss:
00424BF0|.8>cmp ecx,39 ;9
00424BF3|.7>jnz short 00424C51 ;不等,跳
00424BF5|>6>push 0
00424BF7|.6>push 0
00424BF9|.6>push 460374 ;registration has succeeded!
00424BFE|.E>call 00450B6F ;VideoCon.00450B6F
00424C03|.8>mov ecx,
00424C06|.8>add ecx,70
00424C09|.E>call 00424070 ;VideoCon.00424070
00424C0E|.5>push eax
00424C0F|.6>push 460390 ;username
00424C14|.6>push 46039C ;option
00424C19|.E>call 0040E1C0 ;VideoCon.0040E1C0
00424C1E|.8>mov ecx,eax ; |
00424C20|.E>call 004508CF ; \VideoCon.004508CF
00424C25|.8>mov ecx,
00424C28|.8>add ecx,74
00424C2B|.E>call 00424070 ;VideoCon.00424070
00424C30|.5>push eax
00424C31|.6>push 4603A4 ;registration_code
00424C36|.6>push 4603B8 ;option
00424C3B|.E>call 0040E1C0 ;VideoCon.0040E1C0
00424C40|.8>mov ecx,eax ; |
00424C42|.E>call 004508CF ; \VideoCon.004508CF
00424C47|.8>mov ecx,
00424C4A|.E>call 0044AED6 ;VideoCon.0044AED6
00424C4F|.E>jmp short 00424C5F ;VideoCon.00424C5F
00424C51|>6>push 0
00424C53|.6>push 0
00424C55|.6>push 4603C0 ;registration failed!
00424C5A|.E>call 00450B6F ;VideoCon.00450B6F
00424C5F|>8>mov esp,ebp
00424C61|.5>pop ebp
00424C62\.C>retn
------------------------------------------------------------------------
【破解总结】做注册机,易语言源码
.版本 2
.局部变量 name, 文本型
.局部变量 i, 整数型
.局部变量 lenn, 整数型
.局部变量 code1, 字节型
.局部变量 code4, 整数型
.局部变量 code3, 文本型
.局部变量 code2, 字节型
name = 编辑框1.内容
lenn = 取文本长度 (name)
.判断开始 (lenn < 2)' lenn=0 或 lenm=0
编辑框3.内容 = “★注册名必须2位以上★”
.默认
.计次循环首 (lenn, i)
code1 = 取代码 (name, i)
code4 = code1 + code4
.计次循环尾 ()
code1 = 取代码 (name, 1)
code2 = 取代码 (name, 2)
code3 = code3 + 到文本 (位或 (code1, 65) % 10) + 到文本 (位或 (code2, 86) % 10) + 到文本 (位或 (code1, 73) % 10) + 到文本 (位或 (code2, 67) % 10)
置随机数种子 ()
编辑框3.内容 = code3 + 到文本 (code4 % 10) + 到文本 (取随机数 (100, 999))
.判断结束
------------------------------------------------------------------------
【版权声明】本文由 ZHOU2X 原创, 转载请注明作者并保持文章的完整, 谢谢! 好强,学习收藏了!! 今天看见老大的分析总算是搞明白那个码是怎么算出来的了!
强! 易语言就是好用,不过算法分析看起来还是有点困难
页:
[1]