飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 6263|回复: 3

[原创] Open Video Converter 3.0.1.310算法分析+注册机

[复制链接]

该用户从未签到

发表于 2006-11-15 16:58:41 | 显示全部楼层 |阅读模式
【破文标题】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!”,看下面代码

  1. 00424980  /.  5>push ebp
  2. 00424981  |.  8>mov ebp,esp
  3. 00424983  |.  8>sub esp,20
  4. 00424986  |.  8>mov [local.8],ecx
  5. 00424989  |.  6>push 1
  6. 0042498B  |.  8>mov ecx,[local.8]
  7. 0042498E  |.  E>call 00446D5D                        ;  VideoCon.00446D5D
  8. 00424993  |.  8>mov ecx,[local.8]
  9. 00424996  |.  8>add ecx,70
  10. 00424999  |.  E>call 0040BA50                        ;  VideoCon.0040BA50
  11. 0042499E  |.  8>cmp eax,2                            ;  比较注册名长度是否大于等于2
  12. 004249A1  |.  7>jge short 004249B6                   ;  VideoCon.004249B6
  13. 004249A3  |.  6>push 0
  14. 004249A5  |.  6>push 0
  15. 004249A7  |.  6>push 46032C                          ;  please input correct user name!
  16. 004249AC  |.  E>call 00450B6F                        ;  VideoCon.00450B6F
  17. 004249B1  |.  E>jmp 00424C5F                         ;  VideoCon.00424C5F
  18. 004249B6  |>  8>mov ecx,[local.8]
  19. 004249B9  |.  8>add ecx,74
  20. 004249BC  |.  E>call 0040BA50                        ;  VideoCon.0040BA50
  21. 004249C1  |.  8>cmp eax,8                            ;  比较注册码长度是否大于等于8
  22. 004249C4  |.  7>jge short 004249D9                   ;  VideoCon.004249D9
  23. 004249C6  |.  6>push 0
  24. 004249C8  |.  6>push 0
  25. 004249CA  |.  6>push 46034C                          ;  please input correct registration code!
  26. 004249CF  |.  E>call 00450B6F                        ;  VideoCon.00450B6F
  27. 004249D4  |.  E>jmp 00424C5F                         ;  VideoCon.00424C5F
  28. 004249D9  |>  6>push 0                               ; /Arg1 = 00000000
  29. 004249DB  |.  8>mov ecx,[local.8]                    ; |
  30. 004249DE  |.  8>add ecx,70                           ; |
  31. 004249E1  |.  E>call 00423F90                        ; \VideoCon.00423F90
  32. 004249E6  |.  8>mov byte ptr ss:[ebp-11],al
  33. 004249E9  |.  6>push 1                               ; /Arg1 = 00000001
  34. 004249EB  |.  8>mov ecx,[local.8]                    ; |
  35. 004249EE  |.  8>add ecx,70                           ; |
  36. 004249F1  |.  E>call 00423F90                        ; \VideoCon.00423F90
  37. 004249F6  |.  8>mov byte ptr ss:[ebp-8],al
  38. 004249F9  |.  6>push 0                               ; /Arg1 = 00000000
  39. 004249FB  |.  8>mov ecx,[local.8]                    ; |
  40. 004249FE  |.  8>add ecx,70                           ; |
  41. 00424A01  |.  E>call 00423F90                        ; \VideoCon.00423F90
  42. 00424A06  |.  8>mov byte ptr ss:[ebp-1],al
  43. 00424A09  |.  6>push 1                               ; /Arg1 = 00000001
  44. 00424A0B  |.  8>mov ecx,[local.8]                    ; |
  45. 00424A0E  |.  8>add ecx,70                           ; |
  46. 00424A11  |.  E>call 00423F90                        ; \VideoCon.00423F90
  47. 00424A16  |.  8>mov byte ptr ss:[ebp-6],al
  48. 00424A19  |.  0>movzx eax,byte ptr ss:[ebp-11]
  49. 00424A1D  |.  8>or eax,41                            ;  注册名第一位字符ASCCI码值和0x41或运算
  50. 00424A20  |.  8>mov byte ptr ss:[ebp-11],al
  51. 00424A23  |.  0>movzx ecx,byte ptr ss:[ebp-8]
  52. 00424A27  |.  8>or ecx,56                            ;  注册名第二位字符ASCCI码值和0x56或运算
  53. 00424A2A  |.  8>mov byte ptr ss:[ebp-8],cl
  54. 00424A2D  |.  0>movzx edx,byte ptr ss:[ebp-1]
  55. 00424A31  |.  8>or edx,49                            ;  注册名第一位字符ASCCI码值和0x49或运算
  56. 00424A34  |.  8>mov byte ptr ss:[ebp-1],dl
  57. 00424A37  |.  0>movzx eax,byte ptr ss:[ebp-6]
  58. 00424A3B  |.  8>or eax,43                            ;  注册名第二位字符ASCCI码值和0x43或运算
  59. 00424A3E  |.  8>mov byte ptr ss:[ebp-6],al
  60. 00424A41  |.  0>movzx eax,byte ptr ss:[ebp-11]
  61. 00424A45  |.  9>cdq
  62. 00424A46  |.  B>mov ecx,0A
  63. 00424A4B  |.  F>idiv ecx                             ;  注册名第一位字符第一次或运算结果除以0x0A
  64. 00424A4D  |.  8>mov byte ptr ss:[ebp-11],dl          ;  保存余数①
  65. 00424A50  |.  0>movzx eax,byte ptr ss:[ebp-8]
  66. 00424A54  |.  9>cdq
  67. 00424A55  |.  B>mov ecx,0A
  68. 00424A5A  |.  F>idiv ecx                             ;  注册名第二位字符第一次或运算结果除以0x0A
  69. 00424A5C  |.  8>mov byte ptr ss:[ebp-8],dl           ;  保存余数②
  70. 00424A5F  |.  0>movzx eax,byte ptr ss:[ebp-1]
  71. 00424A63  |.  9>cdq
  72. 00424A64  |.  B>mov ecx,0A
  73. 00424A69  |.  F>idiv ecx                             ;  注册名第一位字符第二次或运算结果除以0x0A
  74. 00424A6B  |.  8>mov byte ptr ss:[ebp-1],dl           ;  保存余数③
  75. 00424A6E  |.  0>movzx eax,byte ptr ss:[ebp-6]
  76. 00424A72  |.  9>cdq
  77. 00424A73  |.  B>mov ecx,0A
  78. 00424A78  |.  F>idiv ecx                             ;  注册名第二位字符第二次或运算结果除以0x0A
  79. 00424A7A  |.  8>mov byte ptr ss:[ebp-6],dl           ;  保存余数④
  80. 00424A7D  |.  C>mov [local.4],0
  81. 00424A84  |.  C>mov [local.6],0
  82. 00424A8B  |.  E>jmp short 00424A96                   ;  VideoCon.00424A96
  83. 00424A8D  |>  8>/mov edx,[local.6]
  84. 00424A90  |.  8>|add edx,1
  85. 00424A93  |.  8>|mov [local.6],edx
  86. 00424A96  |>  8> mov ecx,[local.8]
  87. 00424A99  |.  8>|add ecx,70
  88. 00424A9C  |.  E>|call 0040BA50                       ;  VideoCon.0040BA50
  89. 00424AA1  |.  3>|cmp [local.6],eax
  90. 00424AA4  |.  7>|jge short 00424AC4                  ;  VideoCon.00424AC4
  91. 00424AA6  |.  8>|mov eax,[local.6]
  92. 00424AA9  |.  5>|push eax                            ; /Arg1
  93. 00424AAA  |.  8>|mov ecx,[local.8]                   ; |
  94. 00424AAD  |.  8>|add ecx,70                          ; |
  95. 00424AB0  |.  E>|call 00423F90                       ; \VideoCon.00423F90
  96. 00424AB5  |.  8>|mov byte ptr ss:[ebp-19],al
  97. 00424AB8  |.  0>|movzx ecx,byte ptr ss:[ebp-19]
  98. 00424ABC  |.  0>|add ecx,[local.4]
  99. 00424ABF  |.  8>|mov [local.4],ecx
  100. 00424AC2  |.^ E>\jmp short 00424A8D                  ;  VideoCon.00424A8D
  101. 00424AC4  |>  8>mov eax,[local.4]                    ;  注册名ASCCI码值和
  102. 00424AC7  |.  9>cdq
  103. 00424AC8  |.  B>mov ecx,0A
  104. 00424ACD  |.  F>idiv ecx
  105. 00424ACF  |.  8>mov byte ptr ss:[ebp-C],dl             注册名ASCCI码值之和除以0x0A,  保存余数⑤
  106. 00424AD2  |.  6>push 0                               ; /Arg1 = 00000000
  107. 00424AD4  |.  8>mov ecx,[local.8]                    ; |
  108. 00424AD7  |.  8>add ecx,74                           ; |
  109. 00424ADA  |.  E>call 00423F90                        ; \VideoCon.00423F90
  110. 00424ADF  |.  8>mov byte ptr ss:[ebp-4],al
  111. 00424AE2  |.  6>push 1                               ; /Arg1 = 00000001
  112. 00424AE4  |.  8>mov ecx,[local.8]                    ; |
  113. 00424AE7  |.  8>add ecx,74                           ; |
  114. 00424AEA  |.  E>call 00423F90                        ; \VideoCon.00423F90
  115. 00424AEF  |.  8>mov byte ptr ss:[ebp-3],al
  116. 00424AF2  |.  6>push 2                               ; /Arg1 = 00000002
  117. 00424AF4  |.  8>mov ecx,[local.8]                    ; |
  118. 00424AF7  |.  8>add ecx,74                           ; |
  119. 00424AFA  |.  E>call 00423F90                        ; \VideoCon.00423F90
  120. 00424AFF  |.  8>mov byte ptr ss:[ebp-A],al
  121. 00424B02  |.  6>push 3                               ; /Arg1 = 00000003
  122. 00424B04  |.  8>mov ecx,[local.8]                    ; |
  123. 00424B07  |.  8>add ecx,74                           ; |
  124. 00424B0A  |.  E>call 00423F90                        ; \VideoCon.00423F90
  125. 00424B0F  |.  8>mov byte ptr ss:[ebp-B],al
  126. 00424B12  |.  6>push 4                               ; /Arg1 = 00000004
  127. 00424B14  |.  8>mov ecx,[local.8]                    ; |
  128. 00424B17  |.  8>add ecx,74                           ; |
  129. 00424B1A  |.  E>call 00423F90                        ; \VideoCon.00423F90
  130. 00424B1F  |.  8>mov byte ptr ss:[ebp-7],al
  131. 00424B22  |.  6>push 5                               ; /Arg1 = 00000005
  132. 00424B24  |.  8>mov ecx,[local.8]                    ; |
  133. 00424B27  |.  8>add ecx,74                           ; |
  134. 00424B2A  |.  E>call 00423F90                        ; \VideoCon.00423F90
  135. 00424B2F  |.  8>mov byte ptr ss:[ebp-9],al
  136. 00424B32  |.  6>push 6                               ; /Arg1 = 00000006
  137. 00424B34  |.  8>mov ecx,[local.8]                    ; |
  138. 00424B37  |.  8>add ecx,74                           ; |
  139. 00424B3A  |.  E>call 00423F90                        ; \VideoCon.00423F90
  140. 00424B3F  |.  8>mov byte ptr ss:[ebp-2],al
  141. 00424B42  |.  6>push 7                               ; /Arg1 = 00000007
  142. 00424B44  |.  8>mov ecx,[local.8]                    ; |
  143. 00424B47  |.  8>add ecx,74                           ; |
  144. 00424B4A  |.  E>call 00423F90                        ; \VideoCon.00423F90
  145. 00424B4F  |.  8>mov byte ptr ss:[ebp-5],al
  146. 00424B52  |.  0>movzx edx,byte ptr ss:[ebp-11]       ;  余数①
  147. 00424B56  |.  0>movzx eax,byte ptr ss:[ebp-4]    ;  注册码第一位ASCCI码值
  148. 00424B5A  |.  8>sub eax,30                       ;  注册码第一位ASCCI码值减0x30
  149. 00424B5D  |.  3>cmp edx,eax
  150. 00424B5F  |.  7>jnz short 00424B9D                   ;  不等,跳
  151. 00424B61  |.  0>movzx ecx,byte ptr ss:[ebp-8]        ;  余数②
  152. 00424B65  |.  0>movzx edx,byte ptr ss:[ebp-3]    ;  注册码第二位ASCCI码值
  153. 00424B69  |.  8>sub edx,30                       ;  注册码第二位ASCCI码值减0x30
  154. 00424B6C  |.  3>cmp ecx,edx
  155. 00424B6E  |.  7>jnz short 00424B9D                   ;  不等,跳
  156. 00424B70  |.  0>movzx eax,byte ptr ss:[ebp-1]        ;  余数③
  157. 00424B74  |.  0>movzx ecx,byte ptr ss:[ebp-A]    ;  注册码第三位ASCCI码值
  158. 00424B78  |.  8>sub ecx,30                       ;  注册码第三位ASCCI码值减0x30
  159. 00424B7B  |.  3>cmp eax,ecx
  160. 00424B7D  |.  7>jnz short 00424B9D                   ;  不等,跳
  161. 00424B7F  |.  0>movzx edx,byte ptr ss:[ebp-6]        ;  余数④
  162. 00424B83  |.  0>movzx eax,byte ptr ss:[ebp-B]    ;  注册码第四位ASCCI码值
  163. 00424B87  |.  8>sub eax,30                       ;  注册码第四位ASCCI码值减0x30
  164. 00424B8A  |.  3>cmp edx,eax
  165. 00424B8C  |.  7>jnz short 00424B9D                   ;  不等,跳
  166. 00424B8E  |.  0>movzx ecx,byte ptr ss:[ebp-C]        ;  余数⑤
  167. 00424B92  |.  0>movzx edx,byte ptr ss:[ebp-7]    ;  注册码第五位ASCCI码值
  168. 00424B96  |.  8>sub edx,30                       ;  注册码第五位ASCCI码值减0x30
  169. 00424B99  |.  3>cmp ecx,edx
  170. 00424B9B  |.  7>je short 00424BF5                    ;  相等,跳(注册成功)
  171. 00424B9D  |>  0>movzx eax,byte ptr ss:[ebp-4]
  172. 00424BA1  |.  8>cmp eax,35                           ;  5 (通用注册码 51897629)
  173. 00424BA4  |.  0>jnz 00424C51                         ;  不等,跳(注册失败)
  174. 00424BAA  |.  0>movzx ecx,byte ptr ss:[ebp-3]
  175. 00424BAE  |.  8>cmp ecx,31                           ;  1
  176. 00424BB1  |.  0>jnz 00424C51                         ;  不等,跳
  177. 00424BB7  |.  0>movzx edx,byte ptr ss:[ebp-A]
  178. 00424BBB  |.  8>cmp edx,38                           ;  8
  179. 00424BBE  |.  0>jnz 00424C51                         ;  不等,跳
  180. 00424BC4  |.  0>movzx eax,byte ptr ss:[ebp-B]
  181. 00424BC8  |.  8>cmp eax,39                           ;  9
  182. 00424BCB  |.  0>jnz 00424C51                         ;  不等,跳
  183. 00424BD1  |.  0>movzx ecx,byte ptr ss:[ebp-7]
  184. 00424BD5  |.  8>cmp ecx,37                           ;  7
  185. 00424BD8  |.  7>jnz short 00424C51                   ;  不等,跳
  186. 00424BDA  |.  0>movzx edx,byte ptr ss:[ebp-9]
  187. 00424BDE  |.  8>cmp edx,36                           ;  6
  188. 00424BE1  |.  7>jnz short 00424C51                   ;  不等,跳
  189. 00424BE3  |.  0>movzx eax,byte ptr ss:[ebp-2]
  190. 00424BE7  |.  8>cmp eax,32                           ;  2
  191. 00424BEA  |.  7>jnz short 00424C51                   ;  不等,跳
  192. 00424BEC  |.  0>movzx ecx,byte ptr ss:[ebp-5]
  193. 00424BF0  |.  8>cmp ecx,39                           ;  9
  194. 00424BF3  |.  7>jnz short 00424C51                   ;  不等,跳
  195. 00424BF5  |>  6>push 0
  196. 00424BF7  |.  6>push 0
  197. 00424BF9  |.  6>push 460374                          ;  registration has succeeded!
  198. 00424BFE  |.  E>call 00450B6F                        ;  VideoCon.00450B6F
  199. 00424C03  |.  8>mov ecx,[local.8]
  200. 00424C06  |.  8>add ecx,70
  201. 00424C09  |.  E>call 00424070                        ;  VideoCon.00424070
  202. 00424C0E  |.  5>push eax
  203. 00424C0F  |.  6>push 460390                          ;  username
  204. 00424C14  |.  6>push 46039C                          ;  option
  205. 00424C19  |.  E>call 0040E1C0                        ;  VideoCon.0040E1C0
  206. 00424C1E  |.  8>mov ecx,eax                          ; |
  207. 00424C20  |.  E>call 004508CF                        ; \VideoCon.004508CF
  208. 00424C25  |.  8>mov ecx,[local.8]
  209. 00424C28  |.  8>add ecx,74
  210. 00424C2B  |.  E>call 00424070                        ;  VideoCon.00424070
  211. 00424C30  |.  5>push eax
  212. 00424C31  |.  6>push 4603A4                          ;  registration_code
  213. 00424C36  |.  6>push 4603B8                          ;  option
  214. 00424C3B  |.  E>call 0040E1C0                        ;  VideoCon.0040E1C0
  215. 00424C40  |.  8>mov ecx,eax                          ; |
  216. 00424C42  |.  E>call 004508CF                        ; \VideoCon.004508CF
  217. 00424C47  |.  8>mov ecx,[local.8]
  218. 00424C4A  |.  E>call 0044AED6                        ;  VideoCon.0044AED6
  219. 00424C4F  |.  E>jmp short 00424C5F                   ;  VideoCon.00424C5F
  220. 00424C51  |>  6>push 0
  221. 00424C53  |.  6>push 0
  222. 00424C55  |.  6>push 4603C0                          ;  registration failed!
  223. 00424C5A  |.  E>call 00450B6F                        ;  VideoCon.00450B6F
  224. 00424C5F  |>  8>mov esp,ebp
  225. 00424C61  |.  5>pop ebp
  226. 00424C62  \.  C>retn
复制代码

------------------------------------------------------------------------
【破解总结】做注册机,易语言源码

  1. .版本 2

  2. .局部变量 name, 文本型
  3. .局部变量 i, 整数型
  4. .局部变量 lenn, 整数型
  5. .局部变量 code1, 字节型
  6. .局部变量 code4, 整数型
  7. .局部变量 code3, 文本型
  8. .局部变量 code2, 字节型

  9. name = 编辑框1.内容
  10. lenn = 取文本长度 (name)
  11. .判断开始 (lenn < 2)  ' lenn=0 或 lenm=0
  12.     编辑框3.内容 = “★注册名必须2位以上★”
  13. .默认
  14.     .计次循环首 (lenn, i)
  15.         code1 = 取代码 (name, i)
  16.         code4 = code1 + code4
  17.     .计次循环尾 ()
  18.     code1 = 取代码 (name, 1)
  19.     code2 = 取代码 (name, 2)
  20.     code3 = code3 + 到文本 (位或 (code1, 65) % 10) + 到文本 (位或 (code2, 86) % 10) + 到文本 (位或 (code1, 73) % 10) + 到文本 (位或 (code2, 67) % 10)
  21.     置随机数种子 ()
  22.     编辑框3.内容 = code3 + 到文本 (code4 % 10) + 到文本 (取随机数 (100, 999))
  23. .判断结束

复制代码

------------------------------------------------------------------------
【版权声明】本文由 ZHOU2X 原创, 转载请注明作者并保持文章的完整, 谢谢!

VideoConverterKey.part1.rar

292.97 KB, 下载次数: 10, 下载积分: 飘云币 -2 枚

VideoConverterKey.part2.rar

102.07 KB, 下载次数: 11, 下载积分: 飘云币 -2 枚

PYG19周年生日快乐!

该用户从未签到

发表于 2006-11-20 19:26:20 | 显示全部楼层
好强,学习收藏了!!
PYG19周年生日快乐!

该用户从未签到

发表于 2007-2-24 18:23:21 | 显示全部楼层
今天看见老大的分析总算是搞明白那个码是怎么算出来的了!
强!
PYG19周年生日快乐!

该用户从未签到

发表于 2007-8-6 22:10:10 | 显示全部楼层
易语言就是好用,不过算法分析看起来还是有点困难
PYG19周年生日快乐!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表