老文章档案 · 2003 年

Mooovie! 在线影院 v1.2破解心得

破解教程 · 算法分析 · 2003-08-13 · 作者:人气: · 出处:赢政天下整理收藏)

软件简介

———————————————————————————————

Mooovie! 是全球首创的观看在线电影的播放软件。她能直接从因特网播放成百上千部电影。到目前为止,她已经拥有包括动作片、卡通片、喜剧片、戏剧片、恐怖片、爱情片、科幻片、电视连续剧和战争片几个大。

Mooovie! 免费版可供您免费使用、观看在线电影,但是会在播放器的上方显示一个 234x30 大小的广告条,并且禁止了一些高级功能的使用:Mooovie! 免费版不能切换到全屏幕播放,不能获取电影的源地址。而 Mooovie! 黄金版则不会显示广告,从而节省了 60% 的系统资源,并可以全部使用免费版中所禁止的功能。

........

授权方式: 共享

下载地址:http://www.iredbag.com/cn/mooovie/download.htm

———————————————————————————————

破解者:北极熊[DFCG]

破解目的:获得注册码,做出注册机。

破解工具:trw2000

破解过程:

1。用FI2.5检查程序的壳,是upx0.89-6-1.21

2.先熟悉一下程序,调出注册界面,用户名输入jxtour,注册号输入78787878,点注册,让重新启动程序,

可以看出要验证注册码。

3.调出regmon,再次启动在线影院,查出在线影院要调用

HKEY_CURRENT_USER\Software\iRedBag\Mooovie!\1.2\RegCode

4.CTRL+N调出trw,下断点bpx regqueryvalueexa do "d (esp+14)"

启动在线影院中断,按n次F5,当内存数据区显示jxtour时,BC * , PMODULE,继续按F10

会来到这里。

0167:004A03A2 E8F972F6FF CALL `USER32!SetWindowPos`

0167:004A03A7 8B8654030000 MOV EAX,[ESI+0354]

0167:004A03AD 33D2 XOR EDX,EDX

0167:004A03AF E8A83BFBFF CALL 00453F5C

0167:004A03B4 8D4DFC LEA ECX,[EBP-04]

0167:004A03B7 BA30084A00 MOV EDX,004A0830 ASCII "RegName"

0167:004A03BC 8BC3 MOV EAX,EBX

0167:004A03BE E8A5C9FCFF CALL 0046CD68

0167:004A03C3 8D4DEC LEA ECX,[EBP-14]

0167:004A03C6 BA40084A00 MOV EDX,004A0840 ASCII "RegCode"

0167:004A03CB 8BC3 MOV EAX,EBX

0167:004A03CD E896C9FCFF CALL 0046CD68

0167:004A03D2 8B55EC MOV EDX,[EBP-14]

0167:004A03D5 8B45FC MOV EAX,[EBP-04]

0167:004A03D8 E86FECFFFF CALL 0049F04C 关键call,跟进去

0167:004A03DD 84C0 TEST AL,AL

0167:004A03DF 756D JNZ 004A044E

0167:004A03E1 C686AC03000000 MOV BYTE [ESI+03AC],00

0167:004A03E8 C605386F4A0001 MOV BYTE [004A6F38],01

好,关键call找到了,我们根进去

0167:0049F04C 55 PUSH EBP

0167:0049F04D 8BEC MOV EBP,ESP

0167:0049F04F B90D000000 MOV ECX,0D

0167:0049F054 6A00 PUSH BYTE +00

0167:0049F056 6A00 PUSH BYTE +00

0167:0049F058 49 DEC ECX

0167:0049F059 75F9 JNZ 0049F054

0167:0049F05B 53 PUSH EBX

0167:0049F05C 8955F8 MOV [EBP-08],EDX

0167:0049F05F 8945FC MOV [EBP-04],EAX

0167:0049F062 8B45FC MOV EAX,[EBP-04]

0167:0049F065 E80E5AF6FF CALL 00404A78

0167:0049F06A 8B45F8 MOV EAX,[EBP-08]

0167:0049F06D E8065AF6FF CALL 00404A78

0167:0049F072 33C0 XOR EAX,EAX

0167:0049F074 55 PUSH EBP

0167:0049F075 688AF34900 PUSH DWORD 0049F38A

0167:0049F07A 64FF30 PUSH DWORD [FS:EAX]

0167:0049F07D 648920 MOV [FS:EAX],ESP

0167:0049F080 8B45FC MOV EAX,[EBP-04]

0167:0049F083 E80858F6FF CALL 00404890

0167:0049F088 83F803 CMP EAX,BYTE +03 比较用户名是否小于3

0167:0049F08B 7D07 JNL 0049F094

0167:0049F08D 33DB XOR EBX,EBX

0167:0049F08F E9DB020000 JMP 0049F36F

0167:0049F094 8B45F8 MOV EAX,[EBP-08]

0167:0049F097 E8F457F6FF CALL 00404890

0167:0049F09C 83F80F CMP EAX,BYTE +0F 比较注册码是不是15位

0167:0049F09F 7407 JZ 0049F0A8

0167:0049F0A1 33DB XOR EBX,EBX

0167:0049F0A3 E9C7020000 JMP 0049F36F

0167:0049F0A8 8D45E4 LEA EAX,[EBP-1C] 传送地址参数给eax

0167:0049F0AB 50 PUSH EAX 保存eax

0167:0049F0AC B905000000 MOV ECX,05 ecx=$5

0167:0049F0B1 BA01000000 MOV EDX,01 edx=$1

0167:0049F0B6 8B45F8 MOV EAX,[EBP-08] 注册码付值给eax

0167:0049F0B9 E82A5AF6FF CALL 00404AE8 取注册码的前5位到eax

0167:0049F0BE 8B45E4 MOV EAX,[EBP-1C]

0167:0049F0C1 BAA0F34900 MOV EDX,0049F3A0 "RBMOV"字符串送edx

0167:0049F0C6 E80959F6FF CALL 004049D4 比较

0167:0049F0CB 7407 JZ 0049F0D4 前5位注册码不等于"RBMOV"就死

0167:0049F0CD 33DB XOR EBX,EBX

0167:0049F0CF E99B020000 JMP 0049F36F

0167:0049F0D4 8D45DC LEA EAX,[EBP-24]

0167:0049F0D7 50 PUSH EAX

0167:0049F0D8 B902000000 MOV ECX,02 ecx=$2

0167:0049F0DD BA0D000000 MOV EDX,0D edx=$D

0167:0049F0E2 8B45F8 MOV EAX,[EBP-08] 注册码付值给eax

0167:0049F0E5 E8FE59F6FF CALL 00404AE8 取注册码的13.14位

0167:0049F0EA 8B4DDC MOV ECX,[EBP-24] 将取出来的字符串送到ecx

0167:0049F0ED 8D45E0 LEA EAX,[EBP-20]

0167:0049F0F0 BAB0F34900 MOV EDX,0049F3B0

0167:0049F0F5 E8E257F6FF CALL 004048DC 转换成16进制

0167:0049F0FA 8B45E0 MOV EAX,[EBP-20]

0167:0049F0FD E8529CF6FF CALL 00408D54

0167:0049F102 8BD8 MOV EBX,EAX

0167:0049F104 8B45FC MOV EAX,[EBP-04]

0167:0049F107 E88457F6FF CALL 00404890 取得用户名的长度

0167:0049F10C 3BD8 CMP EBX,EAX 注册码的13.14位必须等于注册名的长度的16进制

0167:0049F10E 7407 JZ 0049F117

0167:0049F110 33DB XOR EBX,EBX

0167:0049F112 E958020000 JMP 0049F36F

0167:0049F117 68B0F34900 PUSH DWORD 0049F3B0

0167:0049F11C 8D45D4 LEA EAX,[EBP-2C]

0167:0049F11F 50 PUSH EAX

0167:0049F120 B901000000 MOV ECX,01

0167:0049F125 BA0A000000 MOV EDX,0A

0167:0049F12A 8B45F8 MOV EAX,[EBP-08]

0167:0049F12D E8B659F6FF CALL 00404AE8 取注册码的第10位

0167:0049F132 FF75D4 PUSH DWORD [EBP-2C]

0167:0049F135 8D45D0 LEA EAX,[EBP-30]

0167:0049F138 50 PUSH EAX

0167:0049F139 B901000000 MOV ECX,01

0167:0049F13E BA0C000000 MOV EDX,0C

0167:0049F143 8B45F8 MOV EAX,[EBP-08]

0167:0049F146 E89D59F6FF CALL 00404AE8 取注册码的第12位

0167:0049F14B FF75D0 PUSH DWORD [EBP-30]

0167:0049F14E 8D45D8 LEA EAX,[EBP-28]

0167:0049F151 BA03000000 MOV EDX,03

0167:0049F156 E8F557F6FF CALL 00404950

0167:0049F15B 8B45D8 MOV EAX,[EBP-28]

0167:0049F15E E8F19BF6FF CALL 00408D54 两个字符串起来再转换成16进制

0167:0049F163 8BD0 MOV EDX,EAX

0167:0049F165 8D45F4 LEA EAX,[EBP-0C]

0167:0049F168 E84B56F6FF CALL 004047B8

0167:0049F16D 8D45CC LEA EAX,[EBP-34]

0167:0049F170 50 PUSH EAX

0167:0049F171 B901000000 MOV ECX,01

0167:0049F176 BA01000000 MOV EDX,01

0167:0049F17B 8B45FC MOV EAX,[EBP-04]

0167:0049F17E E86559F6FF CALL 00404AE8 取用户名的第1位ASCII

0167:0049F183 8B55CC MOV EDX,[EBP-34]

0167:0049F186 8B45F4 MOV EAX,[EBP-0C]

0167:0049F189 E84658F6FF CALL 004049D4 比较上面得到的16进制值是否和用户名的第1位ASCII相等

0167:0049F18E 740F JZ 0049F19F

0167:0049F190 33DB XOR EBX,EBX

0167:0049F192 8D45F4 LEA EAX,[EBP-0C]

0167:0049F195 E83E54F6FF CALL 004045D8

0167:0049F19A E9D0010000 JMP 0049F36F

0167:0049F19F 8D45F4 LEA EAX,[EBP-0C]

0167:0049F1A2 E83154F6FF CALL 004045D8

0167:0049F1A7 68B0F34900 PUSH DWORD 0049F3B0

0167:0049F1AC 8D45C4 LEA EAX,[EBP-3C]

0167:0049F1AF 50 PUSH EAX

0167:0049F1B0 B901000000 MOV ECX,01

0167:0049F1B5 BA08000000 MOV EDX,08 EDX=&8

0167:0049F1BA 8B45F8 MOV EAX,[EBP-08]

0167:0049F1BD E82659F6FF CALL 00404AE8 取注册码第8位

0167:0049F1C2 FF75C4 PUSH DWORD [EBP-3C]

0167:0049F1C5 8D45C0 LEA EAX,[EBP-40]

0167:0049F1C8 50 PUSH EAX

0167:0049F1C9 B901000000 MOV ECX,01

0167:0049F1CE BA0B000000 MOV EDX,0B EDX=$B(11)

0167:0049F1D3 8B45F8 MOV EAX,[EBP-08]

0167:0049F1D6 E80D59F6FF CALL 00404AE8 取注册码第11位

0167:0049F1DB FF75C0 PUSH DWORD [EBP-40]

0167:0049F1DE 8D45C8 LEA EAX,[EBP-38]

0167:0049F1E1 BA03000000 MOV EDX,03

0167:0049F1E6 E86557F6FF CALL 00404950

0167:0049F1EB 8B45C8 MOV EAX,[EBP-38]

0167:0049F1EE E8619BF6FF CALL 00408D54 两个字符串起来再转换成16进制

0167:0049F1F3 8BD0 MOV EDX,EAX

0167:0049F1F5 8D45F0 LEA EAX,[EBP-10]

0167:0049F1F8 E8BB55F6FF CALL 004047B8 保存

0167:0049F1FD 8D45B8 LEA EAX,[EBP-48]

0167:0049F200 50 PUSH EAX

0167:0049F201 B901000000 MOV ECX,01

0167:0049F206 BA07000000 MOV EDX,07 edx=$7

0167:0049F20B 8B45F8 MOV EAX,[EBP-08]

0167:0049F20E E8D558F6FF CALL 00404AE8 取注册码的第7位

0167:0049F213 8B45B8 MOV EAX,[EBP-48]

0167:0049F216 8D55BC LEA EDX,[EBP-44]

0167:0049F219 E86697F6FF CALL 00408984

0167:0049F21E 8B45BC MOV EAX,[EBP-44]

0167:0049F221 50 PUSH EAX

0167:0049F222 8D55B4 LEA EDX,[EBP-4C]

0167:0049F225 8B45F0 MOV EAX,[EBP-10]

0167:0049F228 E85797F6FF CALL 00408984

0167:0049F22D 8B55B4 MOV EDX,[EBP-4C]

0167:0049F230 58 POP EAX

0167:0049F231 E89E57F6FF CALL 004049D4 和用户名到数第二位转成大写比是否相等

0167:0049F236 740F JZ 0049F247

0167:0049F238 8D45F0 LEA EAX,[EBP-10]

0167:0049F23B E89853F6FF CALL 004045D8

0167:0049F240 33DB XOR EBX,EBX

0167:0049F242 E928010000 JMP 0049F36F

0167:0049F247 8D45B0 LEA EAX,[EBP-50]

0167:0049F24A 50 PUSH EAX

0167:0049F24B 8B45FC MOV EAX,[EBP-04]

0167:0049F24E E83D56F6FF CALL 00404890

0167:0049F253 8BD0 MOV EDX,EAX

0167:0049F255 4A DEC EDX

0167:0049F256 B901000000 MOV ECX,01

0167:0049F25B 8B45FC MOV EAX,[EBP-04]

0167:0049F25E E88558F6FF CALL 00404AE8 取得用户名到数二位字符ASCII

0167:0049F263 8B55B0 MOV EDX,[EBP-50]

0167:0049F266 8B45F0 MOV EAX,[EBP-10]

0167:0049F269 E86657F6FF CALL 004049D4

0167:0049F26E 740F JZ 0049F27F

0167:0049F270 8D45F0 LEA EAX,[EBP-10]

0167:0049F273 E86053F6FF CALL 004045D8

0167:0049F278 33DB XOR EBX,EBX

0167:0049F27A E9F0000000 JMP 0049F36F

0167:0049F27F 8D45E8 LEA EAX,[EBP-18]

0167:0049F282 8B55F8 MOV EDX,[EBP-08]

0167:0049F285 0FB6520E MOVZX EDX,BYTE [EDX+0E] 注册码的最后一位送edx

0167:0049F289 4A DEC EDX

0167:0049F28A E82955F6FF CALL 004047B8

0167:0049F28F 8D55AC LEA EDX,[EBP-54]

0167:0049F292 8B45E8 MOV EAX,[EBP-18]

0167:0049F295 E8EA96F6FF CALL 00408984

0167:0049F29A 8B45AC MOV EAX,[EBP-54]

0167:0049F29D 50 PUSH EAX

0167:0049F29E 8D55A8 LEA EDX,[EBP-58]

0167:0049F2A1 8B45F0 MOV EAX,[EBP-10]

0167:0049F2A4 E8DB96F6FF CALL 00408984

0167:0049F2A9 8B55A8 MOV EDX,[EBP-58]

0167:0049F2AC 58 POP EAX

0167:0049F2AD E82257F6FF CALL 004049D4 比较是否相等

0167:0049F2B2 7417 JZ 0049F2CB

0167:0049F2B4 8D45F0 LEA EAX,[EBP-10]

0167:0049F2B7 E81C53F6FF CALL 004045D8

0167:0049F2BC 8D45E8 LEA EAX,[EBP-18]

0167:0049F2BF E81453F6FF CALL 004045D8

0167:0049F2C4 33DB XOR EBX,EBX

0167:0049F2C6 E9A4000000 JMP 0049F36F

0167:0049F2CB 8D45F0 LEA EAX,[EBP-10]

0167:0049F2CE E80553F6FF CALL 004045D8

0167:0049F2D3 8D45E8 LEA EAX,[EBP-18]

0167:0049F2D6 E8FD52F6FF CALL 004045D8

0167:0049F2DB 68B0F34900 PUSH DWORD 0049F3B0

0167:0049F2E0 8D45A0 LEA EAX,[EBP-60]

0167:0049F2E3 50 PUSH EAX

0167:0049F2E4 B901000000 MOV ECX,01

0167:0049F2E9 BA06000000 MOV EDX,06

0167:0049F2EE 8B45F8 MOV EAX,[EBP-08]

0167:0049F2F1 E8F257F6FF CALL 00404AE8 取注册码第6位

0167:0049F2F6 FF75A0 PUSH DWORD [EBP-60]

0167:0049F2F9 8D459C LEA EAX,[EBP-64]

0167:0049F2FC 50 PUSH EAX

0167:0049F2FD B901000000 MOV ECX,01

0167:0049F302 BA09000000 MOV EDX,09

0167:0049F307 8B45F8 MOV EAX,[EBP-08]

0167:0049F30A E8D957F6FF CALL 00404AE8 取注册码第9位

0167:0049F30F FF759C PUSH DWORD [EBP-64]

0167:0049F312 8D45A4 LEA EAX,[EBP-5C]

0167:0049F315 BA03000000 MOV EDX,03

0167:0049F31A E83156F6FF CALL 00404950

0167:0049F31F 8B45A4 MOV EAX,[EBP-5C] 两个字符串起来再转换成16进制

0167:0049F322 E82D9AF6FF CALL 00408D54

0167:0049F327 8BD0 MOV EDX,EAX

0167:0049F329 8D45EC LEA EAX,[EBP-14]

0167:0049F32C E88754F6FF CALL 004047B8

0167:0049F331 8D4598 LEA EAX,[EBP-68]

0167:0049F334 50 PUSH EAX

0167:0049F335 8B45FC MOV EAX,[EBP-04]

0167:0049F338 E85355F6FF CALL 00404890

0167:0049F33D 8BD0 MOV EDX,EAX

0167:0049F33F B901000000 MOV ECX,01

0167:0049F344 8B45FC MOV EAX,[EBP-04]

0167:0049F347 E89C57F6FF CALL 00404AE8 取用户名最后一位

0167:0049F34C 8B5598 MOV EDX,[EBP-68]

0167:0049F34F 8B45EC MOV EAX,[EBP-14]

0167:0049F352 E87D56F6FF CALL 004049D4 比较用户名最后一个字符的ascii值是否和上面得到的16进制值相等

0167:0049F357 740C JZ 0049F365

0167:0049F359 8D45EC LEA EAX,[EBP-14]

0167:0049F35C E87752F6FF CALL 004045D8

0167:0049F361 33DB XOR EBX,EBX

0167:0049F363 EB0A JMP SHORT 0049F36F

0167:0049F365 8D45EC LEA EAX,[EBP-14]

0167:0049F368 E86B52F6FF CALL 004045D8

0167:0049F36D B301 MOV BL,01

0167:0049F36F 33C0 XOR EAX,EAX

0167:0049F371 5A POP EDX

0167:0049F372 59 POP ECX

0167:0049F373 59 POP ECX

0167:0049F374 648910 MOV [FS:EAX],EDX

0167:0049F377 6891F34900 PUSH DWORD 0049F391

0167:0049F37C 8D4598 LEA EAX,[EBP-68]

0167:0049F37F BA1A000000 MOV EDX,1A

0167:0049F384 E87352F6FF CALL 004045FC

5.算法总结

(1)前五位是固定的,为RBMOV

(2)第6、第9位组合成用户名最后一个字符的ASCII码

(3)第7位是用户名倒数第2个字符转大写!

(4)第8位、11位是用户倒数第2个字符的ASCII码

(5)第10位、12位是用户名的第1个字符的ASCII码

(6)第13、14位是用户名长度(以十六进制表示的)

(7)最后一位是用户名倒数第2位字母加1

(出处:赢政天下整理收藏)

相关文章:

·语音界面2.0算法分析及注册机源码!

·侠客系统修改器1.21破解手记--算法分析

·中文拨号上网计时计费器 V4.12注册算法分析

·ClockWise 3.22e注册码算法分析

·CoolClock V1.02注册算法分析

·Directory Scanner v1.5 注册算法分析

·Disk Chief 1.2 简单注册算法分析

·EffeTech HTTP Sniffer 3.2注册算法分析

·eLib2.01算法分析

·EZ MP3 Recorder 1.15 注册算法分析

相关软件:

→ 特别推荐

→ 热点TOP10

我为人人《《==》》人人为我

关于我们 |

帮助(?)

| 广告服务 |

版权声明 |

商业合作 |

发展历程 |

加盟我们 |

联系我们

Copyright © 1999-2003

winzheng.com All Rights Reserved.

繁体版:由华琦数码技术提供

Powered

by:MeSky.Net

2003-2004 年,宽带刚刚普及,下载站的文章区是许多人学电脑的第一课堂。
🕰 → 🤖 从那时到现在

当年一篇教程能让一台电脑焕然一新;今天的效率工具换成了 AI。 想知道当下最可靠的 AI 模型怎么选?看 赢政指数——我们用了 28 年的选软件严谨,现在用来评测大模型。

档案性质声明:本页为赢政天下(1998-2011)老文章的历史档案复原, 内容反映当年发表时的原貌——包括当年的技术表述、软件版本与观点,部分方法在今天已不适用或不合规,仅作互联网历史记录与研究用途, 不提供任何形式的下载。原始数据经由公共网络存档(Internet Archive)复原。发现问题请联系我们
← 返回老文章档案 · 软件史档案馆 · 赢政天下站史