概述
简单使用
待记录...
修改源码
修改字符串 题目链接
-
要修改的函数如下
void read_flag() { int fd; // [esp+1Ch] [ebp-Ch] fd = open("/proc/flag", 0); read(fd, gbuf, 0x1000u);
-
因为正常情况下没有该目录文件,修改结果应为./flag.txt
-
双击该字符串,定位地址如下
.rodata:080486B0 file db '/proc/flag',0 ; DATA XREF: read_flag+E↑o
-
然后查看Hex View-1窗口,如下图所示:可以看到地址和上图相对应
-
将./flag.txt转化为字节码(也就是对应的ASCII)
-
比较low的做法是查看ASCII对照表,一个一个的修改
./flag.txt => 2E 2F 66 6C 61 67 2E 74 78 74 00
这里有一点需要注意:当要修改的字符串和原先字符串长度不能对应时,用00填充长度
引申一下,如果修改命令后,长度不能对应,使用nop指令填充,X86中对应的字节码为90
-
还有一个方法是通过python简单函数转化,后期补充
#通过输入,转化字符串或者指令为字节码
-
-
将光标停留在2F之前,进行定位,然后Edit =》 Patch program =》Change byte
ps 大部分情况修改源码,都是通过change byte 方式进行
-
替换后的结果:
-
为了保存修改的结果,操作步骤为 Edit =》 Patch program =》Apply patchs to input file
-
关闭文件后,重新打开查看结果:
void read_flag() { int fd; // [esp+1Ch] [ebp-Ch] fd = open("./flag.txt", 0); read(fd, gbuf, 0x1000u); }
修改汇编指令
未完待续...
最后
以上就是无私服饰为你收集整理的IDA简单使用及源码修改教程的全部内容,希望文章能够帮你解决IDA简单使用及源码修改教程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复