为了账号安全,请及时绑定邮箱和手机立即绑定

将 python 函数添加到 gdb 中

将 python 函数添加到 gdb 中

catspeake 2023-08-22 09:40:05
我发现自己经常跳入 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 回答

?
一只斗牛犬

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'] 


查看完整回答
反对 回复 2023-08-22
  • 1 回答
  • 0 关注
  • 109 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信