gpt4 book ai didi

c - 使用 ida pro 打补丁

转载 作者:行者123 更新时间:2023-11-30 15:59:39 26 4
gpt4 key购买 nike

我有一个这样的程序

#include <stdio.h>

int somma(x,y){
return x+y;
}

int diff(x,y){
return x-y;
}



int main(){
int x=5;
int y=4;
printf("la somma e' %d", somma(x,y));
printf("La differenza e' %d", diff(x,y));
}

我正在尝试修补它以用 diff 函数替换 somma 函数的调用。在 E8 79 FF FF FF 中, diff 函数具有 op E8 70 FF FF FF 所以我尝试做的是:将 somma 函数的 op 替换为 diff 的 op。所以我的 somma 操作变成了 E8 70 FF FF FF 但是当我尝试执行它时我收到了段错误。为什么?我的错误是什么?

编辑这是我的作品的屏幕。 ida pro

最佳答案

您不能简单地用其他地方的其他内容替换偏移量来替换它所调用的内容。您需要做的是计算从调用者偏移量到函数偏移量的相对偏移量: destination - source - 5。因此,例如,如果调用 somma 的操作码位置是 0x348232,而 somma 的位置是 0x858232 ,因此相对偏移量将为0x858232-0x348232-5 = 0x50FFFB,并且您必须将原始字节替换为E8 FB FF 50 00

关于c - 使用 ida pro 打补丁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8640242/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com