请问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:} ida==>edit===>patch
16进制没试过,不知道
不过我知道,
目标地址-当前地址=偏移量
即:0040124E-0040123B=13
到底是近跳还是远跳呢? 要么EB13 要么E913
我是查看《Ollydbg/x32dbg/x64dbg贴心伴侣 6.49》知道的。 https://blog.csdn.net/weixin_43206704/article/details/86582543 看看这个 本帖最后由 涛之雨 于 2020-8-16 01:13 编辑
(论坛版内置了)
ida插件:
ctrl+alt+k修改汇编(类似od) 雷允 发表于 2020-8-15 19:25
https://blog.csdn.net/weixin_43206704/article/details/86582543 看看这个
这个方法不知道为什么还是报错呢{:1_904:} 涛之雨 发表于 2020-8-15 19:31
Ctrl+shift+p修改汇编(类似od)
大佬,这个快捷键我电脑上怎么不起作用啊:'(weeqw,用的论坛XP虚拟机,点地址按没动静,点汇编代码按也没动静{:1_904:}
本帖最后由 小菜鸟一枚 于 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不知道为啥修改不了,可能是我没掌握方法吧!
本帖最后由 老伙计 于 2020-8-15 21:20 编辑
俗话说,"杀鸡焉用牛刀",像这么简单的事情就不用劳烦 IDA 了,用 OD 或 x64DBG 加载程序,定位到 代码偏移 0040123B 处,用汇编语言直接修改指令,然后存盘岂不直接、简单? 老伙计 发表于 2020-8-15 21:19
俗话说,"杀鸡焉用牛刀",像这么简单的事情就不用劳烦 IDA 了,用 OD 或 x64DBG 加载程序,定位到...
其实向多元化说,并不简单
w32dasm加强版汇编改
HIEW 16进制代码与反汇编模式下改
winhex 16进制模式下改
HexTools命令行下改
你都尝试下就知道了,并不是那么一帆风顺的。
页:
[1]
2