小菜鸟一枚 发表于 2020-8-15 19:04

请问IDA如何修改程序的代码?例如改一句jmp xxx,怎么弄?

IDA中搜索字符串定位到弹窗
.text:0040123B               push    0               ; uType
.text:0040123D               push    offset Caption; "ReverseMe #1"
.text:00401242               push    offset aOkayForNowMiss ; "Okay, for now, mission failed !"
.text:00401247               push    0               ; hWnd
.text:00401249               call    MessageBoxA
.text:0040124E               push    200h            ; nMaxCount
.text:00401253               push    offset Text   ; lpString
.text:00401258               push    hWnd            ; hWnd
.text:0040125E               call    GetWindowTextA


切换到hex-view视图,我想将0040123B 这一行改成jmp 0040124E,然后傻眼了,OD里面都是直接改汇编指令,这都是十六进制数据我怎么改啊?


百度了下jmp 对应的机器码有四个,看不懂什么短跳长跳,我就胡乱的把开头第一个字节改成E9 那后面地址0040124E变成机器码怎么表示的呢?

哪位大佬能讲讲这个十六进制怎么修改汇编代码呢?:handshake

PS:初学IDA的小菜鸟,还望大佬们指点一下,谢谢!{:1_893:}

冥界3大法王 发表于 2020-8-15 19:04

ida==>edit===>patch
16进制没试过,不知道
不过我知道,
目标地址-当前地址=偏移量
即:0040124E-0040123B=13
到底是近跳还是远跳呢? 要么EB13   要么E913
我是查看《Ollydbg/x32dbg/x64dbg贴心伴侣 6.49》知道的。

雷允 发表于 2020-8-15 19:25

https://blog.csdn.net/weixin_43206704/article/details/86582543 看看这个

涛之雨 发表于 2020-8-15 19:31

本帖最后由 涛之雨 于 2020-8-16 01:13 编辑

(论坛版内置了)
ida插件:
ctrl+alt+k修改汇编(类似od)

小菜鸟一枚 发表于 2020-8-15 19:32

雷允 发表于 2020-8-15 19:25
https://blog.csdn.net/weixin_43206704/article/details/86582543 看看这个




这个方法不知道为什么还是报错呢{:1_904:}

小菜鸟一枚 发表于 2020-8-15 19:36

涛之雨 发表于 2020-8-15 19:31
Ctrl+shift+p修改汇编(类似od)

大佬,这个快捷键我电脑上怎么不起作用啊:'(weeqw,用的论坛XP虚拟机,点地址按没动静,点汇编代码按也没动静{:1_904:}

小菜鸟一枚 发表于 2020-8-15 19:56

本帖最后由 小菜鸟一枚 于 2020-8-15 20:15 编辑

冥界3大法王 发表于 2020-8-15 19:37
ida==>edit===>patch
16进制没试过,不知道
不过我知道,

我用E9 13,然后跳转显示的是 jmp   loc_401253
我用EB 13,jmp   short near ptr loc_40124E+2,看上去确实是跳转到40124E了,成功了,谢谢。{:1_893:}

edit patch不知道为啥修改不了,可能是我没掌握方法吧!

Deuez 发表于 2020-8-15 20:23

老伙计 发表于 2020-8-15 21:19

本帖最后由 老伙计 于 2020-8-15 21:20 编辑

      俗话说,"杀鸡焉用牛刀",像这么简单的事情就不用劳烦 IDA 了,用 OD 或 x64DBG 加载程序,定位到 代码偏移 0040123B 处,用汇编语言直接修改指令,然后存盘岂不直接、简单?

冥界3大法王 发表于 2020-8-15 21:48

老伙计 发表于 2020-8-15 21:19
俗话说,"杀鸡焉用牛刀",像这么简单的事情就不用劳烦 IDA 了,用 OD 或 x64DBG 加载程序,定位到...

其实向多元化说,并不简单
w32dasm加强版汇编改
HIEW 16进制代码与反汇编模式下改
winhex 16进制模式下改
HexTools命令行下改
你都尝试下就知道了,并不是那么一帆风顺的。
页: [1] 2
查看完整版本: 请问IDA如何修改程序的代码?例如改一句jmp xxx,怎么弄?