我发现自己经常跳入 python 解释器来执行非常基本的字节转换,例如以下内容:>>> ords = lambda s: [hex(ord(c)) for c in s]>>> ords('Help')['0x48', '0x65', '0x6c', '0x70']有没有办法添加一个 python 函数,gdb这样我就可以输入ords('Help')它并调用上面的函数?如果是这样,我将如何/在哪里定义 python 函数?相关于:https ://sourceware.org/gdb/onlinedocs/gdb/Python-API.html
1 回答
![?](http://img1.sycdn.imooc.com/545862db00017f3402200220-100-100.jpg)
一只斗牛犬
TA贡献1784条经验 获得超2个赞
是的,您可以使用 GDB Python API 来完成此操作。
ords.py:
import gdb
class ordinal(gdb.Command):
def __init__(self):
super(ordinal, self).__init__("ords", gdb.COMMAND_USER)
def invoke(self, argument, fromtty):
argv = gdb.string_to_argv(argument)
if len(argv) > 0:
argv[0] = argv[0].strip('()')
print([hex(ord(c)) for c in argv[0]])
else:
print("No arguments supplied")
ordinal()
在 GDB 中(我使用的是 GDB 8.3.1):
(gdb) source ords.py
(gdb) ords('Help')
['0x48', '0x65', '0x6c', '0x70']
添加回答
举报
0/150
提交
取消