简单使用
待记录...
修改源码
修改字符串 题目链接
-
要修改的函数如下
复制代码1
2
3
4
5
6
7void read_flag() { int fd; // [esp+1Ch] [ebp-Ch] fd = open("/proc/flag", 0); read(fd, gbuf, 0x1000u); -
因为正常情况下没有该目录文件,修改结果应为./flag.txt
-
双击该字符串,定位地址如下
复制代码1.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简单函数转化,后期补充
复制代码1#通过输入,转化字符串或者指令为字节码
-
-
将光标停留在2F之前,进行定位,然后Edit =》 Patch program =》Change byte
ps 大部分情况修改源码,都是通过change byte 方式进行
-
替换后的结果:
-
为了保存修改的结果,操作步骤为 Edit =》 Patch program =》Apply patchs to input file
-
关闭文件后,重新打开查看结果:
复制代码1
2
3
4
5
6
7void read_flag() { int fd; // [esp+1Ch] [ebp-Ch] fd = open("./flag.txt", 0); read(fd, gbuf, 0x1000u); }
修改汇编指令
未完待续...
最后
以上就是无私服饰最近收集整理的关于IDA简单使用及源码修改教程的全部内容,更多相关IDA简单使用及源码修改教程内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复