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

posted @ 2011-12-15 16:39  yarpee  阅读(215)  评论(0编辑  收藏  举报