飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2509|回复: 4

今天刚加入,交一篇作业先

[复制链接]
  • TA的每日心情
    开心
    2024-7-7 04:30
  • 签到天数: 22 天

    [LV.4]偶尔看看III

    发表于 2005-4-9 11:16:04 | 显示全部楼层 |阅读模式
    交作业
    第一篇

    我没学过汇编,失误的地方让大虾们笑话了

    目标:快刀斩乱麻
    工具:Ollydbg_fix,Peid0.93
    步骤:
        先用Peid0.93查壳,无壳,Microsoft Visual C++ 6.0的,直接用Ollydbg载入,插件Ultra string Refernce查找有用信息,双击“注册

    码错误”,来到下面,在00401414按F2设断,F9运行程序,输入用户名:llpplplp,注册码:123456,点注册断下

    00401414   |.  FF15 580441>call dword ptr ds:[<&USER32.KillTi>; \KillTimer
    0040141A   |.  8D4C24 10   lea ecx,dword ptr ss:[esp+10]
    0040141E   |.  E8 2FC00000 call <jmp.&MFC42.#540>
    00401423   |.  6A 01       push 1
    00401425   |.  B9 E85B4100 mov ecx,x-cut.00415BE8
    0040142A   |.  895C24 28   mov dword ptr ss:[esp+28],ebx
    0040142E   |.  E8 AFC00000 call <jmp.&MFC42.#6334>
    00401433   |.  8B0D 585C41>mov ecx,dword ptr ds:[415C58]    //用户名送入ecx
    00401439   |.  BE 1E000000 mov esi,1E                    
    0040143E   |.  68 585C4100 push x-cut.00415C58
    00401443   |.  BF 01000000 mov edi,1
    00401448   |.  8B41 F8     mov eax,dword ptr ds:[ecx-8]     //用户名长度送入eax
    0040144B   |.  8D4C24 14   lea ecx,dword ptr ss:[esp+14]
    0040144F   |.  2BF0        sub esi,eax
    00401451   |.  E8 86C00000 call <jmp.&MFC42.#858>
    00401456   |.  8B15 585C41>mov edx,dword ptr ds:[415C58]
    0040145C   |.  8B42 F8     mov eax,dword ptr ds:[edx-8]
    0040145F   |.  83F8 1E     cmp eax,1E             //1E十进制是30,长度与30比较
    00401462   |.  7D 3A       jge short x-cut.0040149E
    00401464   |.  3BF3        cmp esi,ebx
    00401466   |.  7E 66       jle short x-cut.004014CE
    00401468   |>  68 68504100 /push x-cut.00415068
    0040146D   |.  8D4424 18   |lea eax,dword ptr ss:[esp+18]
    00401471   |.  68 585C4100 |push x-cut.00415C58
    00401476   |.  50          |push eax
    00401477   |.  E8 5AC00000 |call <jmp.&MFC42.#924>
    0040147C   |.  50          |push eax
    0040147D   |.  B9 585C4100 |mov ecx,x-cut.00415C58
    00401482   |.  C64424 28 0>|mov byte ptr ss:[esp+28],1
    00401487   |.  E8 50C00000 |call <jmp.&MFC42.#858>
    0040148C   |.  8D4C24 14   |lea ecx,dword ptr ss:[esp+14]
    00401490   |.  885C24 24   |mov byte ptr ss:[esp+24],bl
    00401494   |.  E8 CBBF0000 |call <jmp.&MFC42.#800>
    00401499   |.  4E          |dec esi
    0040149A   |.^ 75 CC       \jnz short x-cut.00401468        //上面这个循环的作用是如果用户名长度不足30则后面加0补满
    0040149C   |.  EB 30       jmp short x-cut.004014CE         //往004014CE跳了,屁颠屁颠跟过去
    0040149E   |>  7E 2E       jle short x-cut.004014CE         
    004014A0   |.  8D4C24 14   lea ecx,dword ptr ss:[esp+14]
    004014A4   |.  6A 1E       push 1E
    004014A6   |.  51          push ecx
    004014A7   |.  B9 585C4100 mov ecx,x-cut.00415C58
    004014AC   |.  E8 1FC00000 call <jmp.&MFC42.#4129>
    004014B1   |.  50          push eax
    004014B2   |.  B9 585C4100 mov ecx,x-cut.00415C58
    004014B7   |.  C64424 28 0>mov byte ptr ss:[esp+28],2
    004014BC   |.  E8 1BC00000 call <jmp.&MFC42.#858>
    004014C1   |.  8D4C24 14   lea ecx,dword ptr ss:[esp+14]
    004014C5   |.  885C24 24   mov byte ptr ss:[esp+24],bl
    004014C9   |.  E8 96BF0000 call <jmp.&MFC42.#800>
    004014CE   |>  55          push ebp              //ebp入栈  
    004014CF   |.  8B2D 585C41>mov ebp,dword ptr ds:[415C58]    //将用户名送入ebp         
    004014D5   |.  33C9        xor ecx,ecx           //清空ecx
    004014D7   |>  8A0429      /mov al,byte ptr ds:[ecx+ebp]    //取用户名第一位
    004014DA   |.  83E0 7F     |and eax,7F           //逻辑与运算
    004014DD   |.  69C0 3B2E08>|imul eax,eax,82E3B   //eax乘上82E3B
    004014E3   |.  8BF0        |mov esi,eax          //结果送入esi
    004014E5   |.  B8 E10217B8 |mov eax,B81702E1     //将B81702E1送入eax
    004014EA   |.  F7EE        |imul esi             //与esi相乘
    004014EC   |.  03D6        |add edx,esi          //edx与esi相加
    004014EE   |.  C1FA 06     |sar edx,6            //算术右移
    004014F1   |.  8BC2        |mov eax,edx          //结果送入eax
    004014F3   |.  C1E8 1F     |shr eax,1F           //eax逻辑左移运算
    004014F6   |.  03D0        |add edx,eax          //结果与edx相加
    004014F8   |.  41          |inc ecx              //ecx加1
    004014F9   |.  83F9 1E     |cmp ecx,1E           //比较ecx与1E
    004014FC   |.  8DBC17 7A07>|lea edi,dword ptr ds:[edi+edx+85077A]      //将edi+edx+85077A 装入edi
    00401503   |.^ 7C D2       \jl short x-cut.004014D7   //ecx小于1E即跳回004014D7继续循环运算
    00401505   |.  A1 545C4100 mov eax,dword ptr ds:[415C54]   //输入的注册码16进制送入eax
    0040150A   |.  5D          pop ebp           //ebp出栈
    0040150B   |.  3BC7        cmp eax,edi       //比较输入的假码eax与运算出的真码edi的值
    0040150D   |.  74 14       je short x-cut.00401523    //飞向光明之路,相等则跳,否则over~可以在这里爆破~~
    0040150F   |.  53          push ebx
    00401510   |.  53          push ebx
    00401511   |.  68 58504100 push x-cut.00415058
    00401516   |.  E8 AFBF0000 call <jmp.&MFC42.#1200>      //调用出错提示框
    0040151B   |.  393D 545C41>cmp dword ptr ds:[415C54],edi
    00401521   |.  75 5C       jnz short x-cut.0040157F
    00401523   |>  8D4C24 18   lea ecx,dword ptr ss:[esp+18]
    00401527   |.  8D5424 0C   lea edx,dword ptr ss:[esp+C]


    注册名:llpplplp
    注册码:277316497

    注册机以后写
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2017-4-4 09:40
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2005-4-10 01:24:27 | 显示全部楼层
    勤奋啊,支持~~~~~
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-4-16 08:46:34 | 显示全部楼层
    呵呵,写的挺好的
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-4-19 14:08:10 | 显示全部楼层
    不错,适合初学者学习的说。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-1-6 12:21
  • 签到天数: 90 天

    [LV.6]常住居民II

    发表于 2005-5-12 13:01:06 | 显示全部楼层
    可以噢,多加努力!
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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