飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 6865|回复: 18

[原创] 菜鸟学分析

[复制链接]

该用户从未签到

发表于 2007-9-2 20:23:51 | 显示全部楼层 |阅读模式
破解作者】 一面湖水
【使用工具】 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:[50B450]
004F8AD9    8B00              mov eax,dword ptr ds:[eax]
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:[50B450]
004F8AFA    8B00              mov eax,dword ptr ds:[eax]

  向上翻一下,在004F89B1 处F2下断,F9运行,然后注册,输入123456789,点注册,程序断在004F89B1处:
004F89B1    55                push ebp
004F89B2    68 7A8B4F00       push VoiceKin.004F8B7A
004F89B7    64:FF30           push dword ptr fs:[eax]
004F89BA    64:8920           mov dword ptr fs:[eax],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:[eax]
004F84D5    64:8920           mov dword ptr fs:[eax],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:[eax+1],d>
004F856B    C600 01           mov byte ptr ds:[eax],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:[eax+1],d>
004F8597    C600 01           mov byte ptr ds:[eax],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:[ebp-19],>
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:[eax+1],d>
004F85DB    C600 01           mov byte ptr ds:[eax],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:[eax+1],d>
004F8607    C600 01           mov byte ptr ds:[eax],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:[ebp-1A],>
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:[ebp-20]
004F865D  ^ 0F85 B4FEFFFF     jnz VoiceKin.004F8517     ; 循环,用机器码所对应的的ASCII和6s2i4kj所对应的的ASCII作运算,算出注册码。
004F8663    8B45 F8           mov eax,dword ptr ss:[ebp>
------------------------------------------------------------------------------------------------------------------------

  我的机器码:“BFED575D0013D41396BD”
  假码:      “123456789”
  真码:      “696D6E6F1E1C1E6F1B1B1A186F1F1A18121D696F”
  
  好,关掉OD试试,打开软件,输入“696D6E6F1E1C1E6F1B1B1A186F1F1A18121D696F”,点注册,显示:恭喜你,注册成功!

总结:软件是利用机器码与6s2i4kj经过算所得出,输入的假注册码没有参与运算,由于本人的知识与经验都比较差,只能写出这样简单的分析,有错误的地方最好给我指出,以便像我等菜鸟更快的入门,谢谢大家能看完。
PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-5-1 14:44
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2007-9-2 21:22:58 | 显示全部楼层
    鼓励一下,可以试着做一下内存注册机
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-9-2 21:57:33 | 显示全部楼层
    谢谢了可是有的地方看不懂......
    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是什么意思啊
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-5-1 14:44
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2007-9-2 22:17:16 | 显示全部楼层
    原帖由 6319557 于 2007-9-2 21:57 发表
    谢谢了可是有的地方看不懂......
    004F89F3    E8 ACFAFFFF       call VoiceKin.004F84A4    ; 算法,用机器码和6s2i4kj算出注册码, F7进入
    004F89F8    8B55 F0           mov edx,dword ptr ss:[ebp>; 真码 ...

    看键盘/:L
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2017-4-28 00:30
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2007-9-3 10:42:42 | 显示全部楼层
    谢谢分享,学习学习
    PYG19周年生日快乐!

    该用户从未签到

     楼主| 发表于 2007-9-3 14:42:58 | 显示全部楼层
    谢谢鼓励,刚学算法分析还在看冷血书生的算法教程,今后一定努力.
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-5-4 22:08
  • 签到天数: 114 天

    [LV.6]常住居民II

    发表于 2007-9-3 15:04:09 | 显示全部楼层
    不错,下载学习学习
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-9-3 15:52:13 | 显示全部楼层
    谢谢分享,学习了!!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-5-1 14:44
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2007-9-3 20:48:07 | 显示全部楼层
    跟了下算法,很简单

    机器码每位的ASCII码的十六进制与"6s2i4kj"的ASCII码的十六进制循环异或,相连

    [ 本帖最后由 tianxj 于 2007-9-3 23:56 编辑 ]
    SpxImage.jpg
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-9-6 21:03:33 | 显示全部楼层
    厉害
    向楼主学习
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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