飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 111844|回复: 258

[原创] [PYG]算法分析入门第一课

[复制链接]
  • TA的每日心情
    难过
    7 天前
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2005-3-28 22:11:16 | 显示全部楼层 |阅读模式
    【破文标题】[PYG]算法分析入门第一课
    【破文作者】飘云[PYG]
    破解工具】PEiD0.93、od二哥修改版、w32dasm
    【破解平台】winxp
    【作者邮箱】piaoyun04@163.com
    【软件名称】crackme
    【保护方式】用户名+注册码

        ★这是我以前学算法时研究过的一个crackme,比较简单,现在整理出来给大家参考一下,高手止步!!


    先用PEiD0.93探视一下“敌情”:呵呵,没有壳,并且为C++编写,试着运行程序,填入注册信息:
    PIAOYUN
    789456123

    弹出错误的窗口,^_^  接下来w32dasm找到这里:

    * Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
    |:004014E4(C), :004014F3(C), :00401516(C), :0040151C(C), :00401522(C)
    |:00401528(C), :0040152E(C)  哇!这么多地方跳过来的啊,我们先找到最早的一个:004014E4(C)
    |
    :00401536 6A00                    push 00000000

    * Possible StringData Ref from Data Obj ->"ERROR"
                                      |
    :00401538 6864304000              push 00403064

    * Possible StringData Ref from Data Obj ->"One of the Details you entered "
                                            ->"was wrong" ★★★这个就是出错语句,向上看★★★
    **********************************************************************************************
    现在为了说明方便,用od下断点:004014E4
    运行程序然后输入注册相信,中断在此:
    004014D6         .  E8 6F030000    call <jmp.&MFC42.#3876>         ;  取得用户名位数
    004014DB         .  8B1D FC214000  mov ebx,dword ptr ds:[<&USER32.>;  USER32.PostQuitMessage
    004014E1         .  83F8 05        cmp eax,5                       ;  是否大于5位
    004014E4         .  7E 50          jle short chap202.00401536      ;  小于就出错
    004014E6         .  8D6E 60        lea ebp,dword ptr ds:[esi+60]
    004014E9         .  8BCD           mov ecx,ebp
    004014EB         .  E8 5A030000    call <jmp.&MFC42.#3876>         ;  取得假码位数
    004014F0         .  83F8 05        cmp eax,5                       ;  是否大于5位
    004014F3         .  7E 41          jle short chap202.00401536      ;  小于则出错
    004014F5         .  8D86 E0000000  lea eax,dword ptr ds:[esi+E0]
    004014FB         .  8BCF           mov ecx,edi
    004014FD         .  50             push eax
    004014FE         .  E8 41030000    call <jmp.&MFC42.#3874>
    00401503         .  8DBE E4000000  lea edi,dword ptr ds:[esi+E4]
    00401509         .  8BCD           mov ecx,ebp
    0040150B         .  57             push edi
    0040150C         .  E8 33030000    call <jmp.&MFC42.#3874>
    00401511         .  8B07           mov eax,dword ptr ds:[edi]      ;  假码送到eax
    00401513         .  8038 36        cmp byte ptr ds:[eax],36        ;  第一位是否位36  即字符6
    00401516            75 1E          jnz short chap202.00401536      ;  不是则出错
    00401518         .  8078 01 32     cmp byte ptr ds:[eax+1],32      ;  第二位是否位32  即字符2
    0040151C            75 18          jnz short chap202.00401536      ;  不是则出错
    0040151E         .  8078 02 38     cmp byte ptr ds:[eax+2],38      ;  第三位是否位38  即字符8
    00401522            75 12          jnz short chap202.00401536      ;  不是则出错
    00401524         .  8078 03 37     cmp byte ptr ds:[eax+3],37      ;  第四位是否为37  即字符7
    00401528            75 0C          jnz short chap202.00401536      ;  不是则出错
    0040152A         .  8078 04 2D     cmp byte ptr ds:[eax+4],2D      ;  第五位是否位2D  即符号“-”
    0040152E            75 06          jnz short chap202.00401536      ;  不是则出错
    00401530         .  8078 05 41     cmp byte ptr ds:[eax+5],41      ;  第六位是否位41  即字母A
    00401534            74 17          je short chap202.0040154D       ;  这里不跳就Game Over!!
    00401536         > \6A 00          push 0
    00401538         .  68 64304000    push chap202.00403064           ;  ASCII "ERROR"
    0040153D         .  68 38304000    push chap202.00403038           ;  ASCII "One of the Details

    you entered was wrong"
    00401542         .  8BCE           mov ecx,esi
    00401544         .  E8 F5020000    call <jmp.&MFC42.#4224>
    00401549         .  6A 00          push 0
    0040154B         .  FFD3           call ebx
    0040154D         >  8D8E E0000000  lea ecx,dword ptr ds:[esi+E0]
    00401553         .  8D5424 14      lea edx,dword ptr ss:[esp+14]
    00401557         .  51             push ecx
    00401558         .  68 2C304000    push chap202.0040302C           ;  ASCII "Well done,"
    0040155D         .  52             push edx
    0040155E         .  E8 D5020000    call <jmp.&MFC42.#926>


    【算法总结】

    用户名必须大于5位,但是没有参与运算
    注册码是固定的:6287-A

    chap202.rar

    4.06 KB, 下载次数: 41500, 下载积分: 飘云币 -2 枚

    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-3-29 12:44:14 | 显示全部楼层
    这个确实不错啊,对于新手,得感谢我们的老大啊
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2017-4-4 09:40
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2005-3-29 17:44:57 | 显示全部楼层
    辛苦,学习~
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2018-6-4 20:46
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2005-3-30 13:07:32 | 显示全部楼层
    呵呵~!这个是看雪的crackme
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-4-2 14:16:26 | 显示全部楼层
    顶你一个,
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2020-3-30 17:42
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2005-4-2 16:23:35 | 显示全部楼层
    学习!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-4-3 20:56:03 | 显示全部楼层
    呵呵,以前练习过,支持
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2024-3-21 21:06
  • 签到天数: 1489 天

    [LV.10]以坛为家III

    发表于 2005-4-11 21:28:58 | 显示全部楼层
    练习下下。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-4-12 15:58:59 | 显示全部楼层
    老大
    我会好好学习的
    但也希望提供点破解工具
    好让我们自己进行练习
    PYG19周年生日快乐!
  • TA的每日心情
    难过
    7 天前
  • 签到天数: 11 天

    [LV.3]偶尔看看II

     楼主| 发表于 2005-4-12 16:50:15 | 显示全部楼层
    我没有提供工具吗??
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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