首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Ollydbg编辑程序

用Ollydbg编辑程序
EN

Stack Overflow用户
提问于 2014-05-13 09:25:55
回答 1查看 2K关注 0票数 2

这是我的C++代码:

代码语言:javascript
复制
#include <conio.h>
#include <iostream>

using namespace std;

void func1()
{
    static int _count = 0;
    if (_count < 5)
    {
        __asm
        {
            pop eax
            push func1
        }
    }

    _count++;
    cout << _count << endl;
}

int main()
{
    func1();

    cout << "ok" << endl;
    return 0;
}

现在,我需要删除asm内联。

它被加载到Ollydbg中,这是asm的内联位置:

我将填写两个说明,在图像中用NOP标记。好的。我知道怎么做。然后,我用一个新名字保存了它。

但是当我把我编辑的程序加载到Ollydbg时。我编辑的地方增加了一条新的指令。

而新的指令使程序崩溃。

好的,如果我的问题够清楚的话,我需要知道:这个指令是如何自动添加的?我该怎么解决呢?

谢谢。

更新1:下面是我修改程序的方式

但是..。我也不知道原因?

EN

回答 1

Stack Overflow用户

发布于 2014-05-13 09:41:16

一个NOP分配一个字节,所以要用NOP

代码语言:javascript
复制
POP  EAX              ; 1 byte
PUSH Console.func1    ; 5 byte

你需要把6的NOP,而不是2,否则,你有2个NOPs和4个字节的垃圾。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23627425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档