首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将带有python的枚举添加到Ghidra项目中

如何将带有python的枚举添加到Ghidra项目中
EN

Stack Overflow用户
提问于 2021-03-17 15:24:25
回答 1查看 207关注 0票数 0

看到有人使用ghidra.app.util.cparser.C将结构字符串解析为结构对象,然后使用data_type_manager.addDataType()将其添加到Ghidra中。我想用枚举来实现这个方法,但我不确定如何实现。如果有更好的方法来添加枚举,我将很乐意使用它,如果这是最好的方法,那么一个解释将是非常有帮助的。下面是我的参考资料:https://reverseengineering.stackexchange.com/questions/23330/ghidra-python-create-struct-with-big-endian-field

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-18 23:33:58

您可以通过CParser创建枚举,然后将生成的DataType添加到DataTypeManager。我有一个script for this generic workflow,如果您不关心自己编写脚本,并且对粘贴C代码到其中的简单图形用户界面感到满意,请检查生成的DataType,并在需要时添加它。

否则,您还可以直接创建枚举数据类型:

代码语言:javascript
复制
from ghidra.program.model.data import EnumDataType
# maximum enum value is (2^length)-1 according to some comment, but if you pass 8 it should be every possible Java long value, so I am not sure
enum = EnumDataType("EnumName", length)
enum.add("One", 1)
enum.add("Two", 2)
enum.add("Three", 3)
dataTypeManager.addDataType(enum, None)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66668616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档