用 IDA PRO 修补一个简单的 c 程序得到分段错误

Usi*_*Usi 1 patch ida

这是我的程序:

#include <stdio.h>

int main(){
  int var=5;
  if(var==5) printf("Accesso effettuato!");
  else printf("Access denied");

}
Run Code Online (Sandbox Code Playgroud)

我在十六进制编辑中更改了操作代码……就像这张图片一样,但是当我运行我的程序时,我遇到了分段错误。

图片1

图像2

在此处输入图片说明

Smi*_*Smi 5

你得到一个分段错误,因为操作码83 05是指指令ADD DWORD PTR [address],constant,其中addressconstant通过在未来五年字节确定05 89 45 F4 75。所以在这种情况下,指令是ADD DWORD PTR [F4458905],75。所以你引用了一个无效的内存地址。