我写一个delphi小程序,来修改本地开启的xxx.exe程序的指定地址的跳转指令 je 为 jmp  有没有类似的代码段实例,请大神指教!!

解决方案 »

  1.   

    这需要二进制的编辑器来修政exe
    文件。还要懂机器码。
      

  2.   

    hook试试
      

  3.   

    办法比较多。
    1、writeprocessmemory  将写有je指令的内存地址的值改成 jmp。
    2、注入的dll,在dll中直接改写内存修改权限,然后用delphi指针改写内存。注入后直接内联汇编什么的都可以
      

  4.   

    较稳定的方式:注入dll,方法和代码都很多。需要可以私信我。
    注入后修改内存读写权限。 VirtualProtect(pointer(FHookAddr), FByteLen * sizeof(Byte), PAGE_EXECUTE_READWRITE, @oldprotect);
      PByte(FHookAddr)^ := $E8;
      PInteger(FHookAddr + $1)^ := temp - FHookAddr - 5;
      for I := $5 to FByteLen - 1 do
      begin
        PByte(FHookAddr + I)^ := $90;
      end;
      VirtualProtect(pointer(FHookAddr), FByteLen * sizeof(Byte), oldprotect, @oldprotect);
    类似上面的代码就是修改内存FhookADDR位置的指令,改为跳转,跳转至 内存temp位置。可以参考着写了