Debugging with GDB阅读[6]
a.修改内存的通用步骤
http://www.outflux.net/blog/archives/category/reverse-engineering/
1.首先在/proc/PID/maps中找到相应的位置
2.寻找相关的内存
attach上去后
(gdb) find /w 0x0a22e000, 0x0b08a000, 219393
3.查看内存相关信息
(gdb) x/8x 0xaf06ca8
4.修改内存相关信息
(gdb) set var *0xaf06cac = 0x00100bb8
等等相关步骤。
b.转自scz
1.在GDB里将指定范围的内存数据转储成二进制文件
http://www.sczgroup.org/unix/200905211621.txt
Q:
windbg有一个.writemem可以将指定范围的内存数据转储成二进制文件,gdb有无内似
的命令?
A: coolq@nsfocus 2009-05-21 16:21
对[begin, end)进行转储:
dump memory <filename> <begin> <end>
append binary memory <filename> <begin> <end>
与之相对的命令是:
restore <filename> binary <address> <fileoff_begin> <fileoff_end>
2.http://www.sczgroup.org/unix/200905051651.txt
以C语言数组形式对指定地址转储指定长度的数据。需要使用p/x *(type*)array@num来输出
3.scz中关于gdb部分的内容
http://www.sczgroup.org/unix/200901071528.txt
http://www.sczgroup.org/unix/200901051201.txt