求问 Linux gdb 有什么命令可以直接把 memory dump 传递到打印机打印到纸上么?

2020-07-22 09:28:15 +08:00
 levelworm

在学最初级的逆向,感觉如果能够把x 0x400da0之后显示的函数内容直接打印到纸上,然后在后面自己手写注释是最舒服的。但是我查看了gdb所有的命令,发现并没有可以打印到纸上的,同时我又不想通过 pipeline 来输出到打印机,请问有办法在 gdb 内部完成这个事项吗?谢谢~~

1491 次点击
所在节点    程序员
5 条回复
lonewolfakela
2020-07-22 09:41:15 +08:00
所以你为啥不想通过 pipeline 来输出到打印机呢……
levelworm
2020-07-22 09:58:45 +08:00
@lonewolfakela 能够在 gdb 里头不用退出就行么?如果可以的话最好了,多谢!
话说还不知道如何 pipe 进打印机不过让我查一下。。。
listenerri
2020-07-22 10:29:53 +08:00
据我所知 gdb 支持 python/shell 扩展,楼主可以想一下怎么自己实现打印,贴一下我的部分配置:
```
# pretty print qt type value
# "Lekensteyn/qt5printers" github project needed be cloned into "~/.config/gdb/"
python
import sys, os.path
sys.path.insert(0, os.path.expanduser('~/.config/gdb'))
import qt5printers
qt5printers.register_printers(gdb.current_objfile())
end

# hexdump specified memory block
define hexdump
dump memory /tmp/dump.bin $arg0 $arg0+$arg1
shell hexdump -C /tmp/dump.bin
end

# alias for above hexdump
define hd
dump memory /tmp/dump.bin $arg0 $arg0+$arg1
shell hexdump -C /tmp/dump.bin
end

```
lonewolfakela
2020-07-22 12:05:45 +08:00
@levelworm 如果是不想退出的话,可以参考 https://stackoverflow.com/questions/5941158/gdb-print-to-file-instead-of-stdout,设置 gdb 把输出写进文件里,之后打印文件什么的应该就没啥困难的了
lamy
2020-07-22 13:13:55 +08:00
还有个方法,shell 里执行 script,会把 shell 的所有输出输出到文件

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/692088

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX