注册 登录
编程论坛 汇编论坛

玩过OLLYDBG反汇编的如何让程序暂停

发布于 2012-02-09 13:30, 611 次点击
我用OLLYDBG反汇编如下代码生成的EXE,现在我想在执行完strcpy时,让程序暂停,怎办?
#include "stdafx.h"
#include "string.h"
class GSVirtual{
public :
    void gsv(char * src)
    {
        char buf[100];
        strcpy(buf,src);
        vir();
    }
    virtualvoidvir()
    {
    }
};
int main()
{
    GSVirtual test;
    test.gsv(
        "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
        "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
        "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
        "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
        "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
        "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
        "\x90\x90\x90\0"
        );
        return 0;
}
4 回复
#2
zklhp2012-02-09 15:21
没看懂 感觉很厉害的样子

        char buf[100];
        strcpy(buf,src);
0041146D  mov         eax,dword ptr [ebp+8]
00411470  push        eax  
00411471  lea         ecx,[ebp-78h]
00411474  push        ecx  
00411475  call        @ILT+165(_strcpy) (4110AAh)

为了编译通过我注释了vir(); 貌似这个没定义 出来的是这个 直接断点就好了
#3
zklhp2012-02-09 15:24
晕 我发现问题了、、、

virtualvoidvir()
    {
    }

这个是个啥。。。

还有 这个代码不知道从哪本讲黑客一类的东西的书上复制来的? 你得复制完整啊
#4
zklhp2012-02-09 15:30
class GSVirtual{
public :
    void gsv(char * src)
    {
        char buf[100];
        strcpy(buf,src);
        vir();
    }
    virtual void vir()
    {
    }
};

应该是这样 断点和上面一样

004114DD  mov         eax,dword ptr [ebp+8]
004114E0  push        eax  
004114E1  lea         ecx,[ebp-78h]
004114E4  push        ecx  
004114E5  call        @ILT+190(_strcpy) (4110C3h)
004114EA  add         esp,8
        vir();
004114ED  mov         eax,dword ptr [ebp-0Ch]
004114F0  mov         edx,dword ptr [eax]
004114F2  mov         esi,esp
004114F4  mov         ecx,dword ptr [ebp-0Ch]
004114F7  mov         eax,dword ptr [edx]
004114F9  call        eax

还是没明白咋回事
#5
zaixuexi2012-02-09 23:56
填充了一堆nop指令的shellcode?神马玩意嘛
看样子像是黑客书里抄来的
1