菜鸟学分析
破解作者】 一面湖水【使用工具】 od、peid
【破解平台】 WinXP
【软件名称】 电子朗读王 2007
【下载地址】http://cndns.onlinedown.net/down/voiceking_50609.zip
【软件简介】 一款电脑语音朗读软件,利用TTS语音引擎,它可以朗读中文、英文、中英混合的文字内容,还可以将其导出保存为音频文件。利用"朗读剪切"板功能,你便可以在浏览网页、阅读文档时将文本复制到系统剪切板中让其自动读给你听,还可以给你当校对,有声的世界更精彩。更有"鼠标选读"、"录入朗读"更多超酷功能等待着您的使用。电子朗读王,读出你的精彩和快乐!欢迎您选择使用。
【加壳方式】 无壳
【破解声明】 学习破解,请勿用于商业目的:)
--------------------------------------------------------------------------------
【破解内容】
运行软件,先注册一下,输入123456789,点注册,提示:您好,注册码错误,注册失败------想获取正确注册码,请点[到网站注册]。
peid查壳,无壳,Borland Delphi 6.0 - 7.0.
OD载入,查找字符串, “您好,注册码错误,注册失败------想获取正确注册码,请点[到网站注册]。” 找到后双击来到:
004F8AC8 6A 40 push 40
004F8ACA B9 B48B4F00 mov ecx,VoiceKin.004F8BB4 ; 提示
004F8ACF BA BC8B4F00 mov edx,VoiceKin.004F8BBC ; 恭喜您,注册成功!
004F8AD4 A1 50B45000 mov eax,dword ptr ds:
004F8AD9 8B00 mov eax,dword ptr ds:
004F8ADB E8 0C0EF7FF call VoiceKin.004698EC
004F8AE0 8BC6 mov eax,esi
004F8AE2 E8 91D5F6FF call VoiceKin.00466078
004F8AE7 EB 41 jmp short VoiceKin.004F8B2A
004F8AE9 6A 10 push 10
004F8AEB B9 B48B4F00 mov ecx,VoiceKin.004F8BB4 ; 提示
004F8AF0 BA D08B4F00 mov edx,VoiceKin.004F8BD0 ; 您好,注册码错误,注册失败!\n\n----------------------------------\n\n想获取正确注册码,请点[到网站注册]。
004F8AF5 A1 50B45000 mov eax,dword ptr ds:
004F8AFA 8B00 mov eax,dword ptr ds:
向上翻一下,在004F89B1 处F2下断,F9运行,然后注册,输入123456789,点注册,程序断在004F89B1处:
004F89B1 55 push ebp
004F89B2 68 7A8B4F00 push VoiceKin.004F8B7A
004F89B7 64:FF30 push dword ptr fs:
004F89BA 64:8920 mov dword ptr fs:,es>
004F89BD 8D55 F4 lea edx,dword ptr ss:[ebp>
004F89C0 8B86 F8020000 mov eax,dword ptr ds:[esi>
004F89C6 E8 91FCF4FF call VoiceKin.0044865C
004F89CB 8B45 F4 mov eax,dword ptr ss:[ebp>; 假码出现
004F89CE 8D55 F8 lea edx,dword ptr ss:[ebp>
004F89D1 E8 DE02F1FF call VoiceKin.00408CB4
004F89D6 8B45 F8 mov eax,dword ptr ss:[ebp>
004F89D9 50 push eax
004F89DA 8D55 EC lea edx,dword ptr ss:[ebp>
004F89DD 8B86 04030000 mov eax,dword ptr ds:[esi>
004F89E3 E8 74FCF4FF call VoiceKin.0044865C
004F89E8 8B45 EC mov eax,dword ptr ss:[ebp>; 机器码放入EAX
004F89EB 8D4D F0 lea ecx,dword ptr ss:[ebp>
004F89EE BA 908B4F00 mov edx,VoiceKin.004F8B90 ; 6s2i4kj 6s2i4kj放入EDX
004F89F3 E8 ACFAFFFF call VoiceKin.004F84A4 ; 算法,用机器码和6s2i4kj算出注册码, F7进入
004F89F8 8B55 F0 mov edx,dword ptr ss:[ebp>; 真码放入EDX
004F89FB 58 pop eax ; 00F380BC 假码
004F89FC E8 3FBFF0FF call VoiceKin.00404940 ; 真假码比较
004F8A01 0F85 E2000000 jnz VoiceKin.004F8AE9 ; 不相等就跳,爆破点
F7进入来到:
004F84CC 55 push ebp
004F84CD 68 A6864F00 push VoiceKin.004F86A6
004F84D2 64:FF30 push dword ptr fs:
004F84D5 64:8920 mov dword ptr fs:,es>
004F84D8 8D55 F4 lea edx,dword ptr ss:[ebp>
004F84DB 8BC3 mov eax,ebx
004F84DD E8 26FFFFFF call VoiceKin.004F8408 ; 算法,逐个算出机器码,所对应的ASCII
004F84E2 8D55 F0 lea edx,dword ptr ss:[ebp>
004F84E5 8B45 FC mov eax,dword ptr ss:[ebp>
004F84E8 E8 1BFFFFFF call VoiceKin.004F8408 ; 算法,逐个算出6s2i4kj所对应的ASCII
004F84ED 8D45 EC lea eax,dword ptr ss:[ebp>
中间省略。。。。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
004F854D BA B4864F00 mov edx,VoiceKin.004F86B4
004F8552 8D45 D8 lea eax,dword ptr ss:[ebp>
004F8555 E8 AEA9F0FF call VoiceKin.00402F08
004F855A 8D45 D4 lea eax,dword ptr ss:[ebp>
004F855D 8BD3 mov edx,ebx
004F855F 03D2 add edx,edx
004F8561 8B4D EC mov ecx,dword ptr ss:[ebp>
004F8564 8A5411 FE mov dl,byte ptr ds:[ecx+e>
004F8568 8850 01 mov byte ptr ds:,d>
004F856B C600 01 mov byte ptr ds:,1
004F856E 8D55 D4 lea edx,dword ptr ss:[ebp>
004F8571 8D45 D8 lea eax,dword ptr ss:[ebp>
004F8574 B1 02 mov cl,2
004F8576 E8 5DA9F0FF call VoiceKin.00402ED8
004F857B 8D55 D8 lea edx,dword ptr ss:[ebp>
004F857E 8D45 D0 lea eax,dword ptr ss:[ebp>
004F8581 E8 82A9F0FF call VoiceKin.00402F08
004F8586 8D45 D4 lea eax,dword ptr ss:[ebp>
004F8589 8BD3 mov edx,ebx
004F858B 03D2 add edx,edx
004F858D 8B4D EC mov ecx,dword ptr ss:[ebp>
004F8590 8A5411 FF mov dl,byte ptr ds:[ecx+e>
004F8594 8850 01 mov byte ptr ds:,d>
004F8597 C600 01 mov byte ptr ds:,1
004F859A 8D55 D4 lea edx,dword ptr ss:[ebp>
004F859D 8D45 D0 lea eax,dword ptr ss:[ebp>
004F85A0 B1 03 mov cl,3
004F85A2 E8 31A9F0FF call VoiceKin.00402ED8
004F85A7 8D55 D0 lea edx,dword ptr ss:[ebp>
004F85AA 8D45 DC lea eax,dword ptr ss:[ebp>
004F85AD E8 EEC1F0FF call VoiceKin.004047A0
004F85B2 8B45 DC mov eax,dword ptr ss:[ebp>
004F85B5 E8 060AF1FF call VoiceKin.00408FC0
004F85BA 8845 E7 mov byte ptr ss:,>
004F85BD BA B4864F00 mov edx,VoiceKin.004F86B4
004F85C2 8D45 D8 lea eax,dword ptr ss:[ebp>
004F85C5 E8 3EA9F0FF call VoiceKin.00402F08
004F85CA 8D45 D4 lea eax,dword ptr ss:[ebp>
004F85CD 8BD6 mov edx,esi
004F85CF 03D2 add edx,edx
004F85D1 8B4D F0 mov ecx,dword ptr ss:[ebp>
004F85D4 8A5411 FE mov dl,byte ptr ds:[ecx+e>
004F85D8 8850 01 mov byte ptr ds:,d>
004F85DB C600 01 mov byte ptr ds:,1
004F85DE 8D55 D4 lea edx,dword ptr ss:[ebp>
004F85E1 8D45 D8 lea eax,dword ptr ss:[ebp>
004F85E4 B1 02 mov cl,2
004F85E6 E8 EDA8F0FF call VoiceKin.00402ED8
004F85EB 8D55 D8 lea edx,dword ptr ss:[ebp>
004F85EE 8D45 D0 lea eax,dword ptr ss:[ebp>
004F85F1 E8 12A9F0FF call VoiceKin.00402F08
004F85F6 8D45 D4 lea eax,dword ptr ss:[ebp>
004F85F9 8BD6 mov edx,esi
004F85FB 03D2 add edx,edx
004F85FD 8B4D F0 mov ecx,dword ptr ss:[ebp>
004F8600 8A5411 FF mov dl,byte ptr ds:[ecx+e>
004F8604 8850 01 mov byte ptr ds:,d>
004F8607 C600 01 mov byte ptr ds:,1
004F860A 8D55 D4 lea edx,dword ptr ss:[ebp>
004F860D 8D45 D0 lea eax,dword ptr ss:[ebp>
004F8610 B1 03 mov cl,3
004F8612 E8 C1A8F0FF call VoiceKin.00402ED8
004F8617 8D55 D0 lea edx,dword ptr ss:[ebp>
004F861A 8D45 CC lea eax,dword ptr ss:[ebp>
004F861D E8 7EC1F0FF call VoiceKin.004047A0
004F8622 8B45 CC mov eax,dword ptr ss:[ebp>
004F8625 E8 9609F1FF call VoiceKin.00408FC0
004F862A 3245 E7 xor al,byte ptr ss:[ebp-1>
004F862D 8845 E6 mov byte ptr ss:,>
004F8630 8D45 C4 lea eax,dword ptr ss:[ebp>
004F8633 8A55 E6 mov dl,byte ptr ss:[ebp-1>
004F8636 E8 E9C0F0FF call VoiceKin.00404724
004F863B 8B45 C4 mov eax,dword ptr ss:[ebp>
004F863E 8D55 C8 lea edx,dword ptr ss:[ebp>
004F8641 E8 C2FDFFFF call VoiceKin.004F8408
004F8646 8B55 C8 mov edx,dword ptr ss:[ebp>
004F8649 8D45 E8 lea eax,dword ptr ss:[ebp>
004F864C E8 B3C1F0FF call VoiceKin.00404804
004F8651 43 inc ebx
004F8652 4F dec edi
004F8653^ 0F85 F4FEFFFF jnz VoiceKin.004F854D
004F8659 46 inc esi
004F865A FF4D E0 dec dword ptr ss:
004F865D^ 0F85 B4FEFFFF jnz VoiceKin.004F8517 ; 循环,用机器码所对应的的ASCII和6s2i4kj所对应的的ASCII作运算,算出注册码。
004F8663 8B45 F8 mov eax,dword ptr ss:[ebp>
------------------------------------------------------------------------------------------------------------------------
我的机器码:“BFED575D0013D41396BD”
假码: “123456789”
真码: “696D6E6F1E1C1E6F1B1B1A186F1F1A18121D696F”
好,关掉OD试试,打开软件,输入“696D6E6F1E1C1E6F1B1B1A186F1F1A18121D696F”,点注册,显示:恭喜你,注册成功!
总结:软件是利用机器码与6s2i4kj经过算所得出,输入的假注册码没有参与运算,由于本人的知识与经验都比较差,只能写出这样简单的分析,有错误的地方最好给我指出,以便像我等菜鸟更快的入门,谢谢大家能看完。 鼓励一下,可以试着做一下内存注册机 谢谢了可是有的地方看不懂......
004F89F3 E8 ACFAFFFF call VoiceKin.004F84A4 ; 算法,用机器码和6s2i4kj算出注册码, F7进入
004F89F8 8B55 F0 mov edx,dword ptr ss:[ebp>; 真码放入EDX
004F89FB 58 pop eax ; 00F380BC 假码
004F89FC E8 3FBFF0FF call VoiceKin.00404940 ; 真假码比较
004F8A01 0F85 E2000000 jnz VoiceKin.004F8AE9 ; 不相等就跳,爆破点
F7进入来到:
F7是什么意思啊 原帖由 6319557 于 2007-9-2 21:57 发表 https://www.chinapyg.com/images/common/back.gif
谢谢了可是有的地方看不懂......
004F89F3 E8 ACFAFFFF call VoiceKin.004F84A4 ; 算法,用机器码和6s2i4kj算出注册码, F7进入
004F89F8 8B55 F0 mov edx,dword ptr ss:
看键盘/:L 谢谢分享,学习学习 谢谢鼓励,刚学算法分析还在看冷血书生的算法教程,今后一定努力. 不错,下载学习学习 谢谢分享,学习了!! 跟了下算法,很简单
机器码每位的ASCII码的十六进制与"6s2i4kj"的ASCII码的十六进制循环异或,相连
[ 本帖最后由 tianxj 于 2007-9-3 23:56 编辑 ] 厉害
向楼主学习
页:
[1]
2