如何解决从 C# 中的反汇编文件中获取特定值 .Net
我在 C# 中有一个脚本,它使用 Gee.Capstone 包来自动反汇编文件。我对整个概念并不熟悉,所以我只是尝试根据在线教程做我需要的事情。
我有几个范围格式的虚拟地址。例如:0x0122FFB0-0x01230028
当我用另一个 GUI 反汇编文件时,比如 Cutter,我得到这样的东西
0x0122ffb0 stp x20,x19,[sp,-0x20]!
0x0122ffb4 stp x29,x30,0x10]
0x0122ffb8 add x29,sp,0x10
0x0122ffbc ldr x8,[x0,8] ; fcn.00000008
0x0122ffc0 mov x19,x0
0x0122ffc4 orr w1,wzr,2
0x0122ffc8 mov x2,xzr
0x0122ffcc ldr x20,[x8]
0x0122ffd0 mov x0,x20
0x0122ffd4 bl fcn.0304bf80
0x0122ffd8 mov x0,x20
.....
0x0122fffc ldr x8,[x19,8] ; fcn.00000008
我想从 orr w1,2
获取值 2。一般来说,我想要的值总是采用orr w1,wzr X
的格式,但在两个地址的范围内并不总是相同的顺序。
假设我有一个包含所有范围的列表,有没有办法识别我需要的行并获取 X
值?
我离得越近
private static CapstoneX86Disassembler asm = CapstoneX86Disassembler.CreateX86Disassembler(X86DisassembleMode.Bit64);
var obj = asm.Disassemble(att.GetMethodBody(),(long)att.VirtualAddress.Start);
其中 att
是我存储了虚拟地址范围的对象,其中包含 Start
和 End
。但是,我找不到任何方法从 obj
对象中获取我需要的信息。
编辑:没有必要继续使用 Capstone。如果有一个解决方案可以用另一个包来解决这个问题,我可以接受。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。