Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有好的VB/C#x86反汇编程序库?_C#_Vb.net_X86_Disassembly - Fatal编程技术网

有没有好的VB/C#x86反汇编程序库?

有没有好的VB/C#x86反汇编程序库?,c#,vb.net,x86,disassembly,C#,Vb.net,X86,Disassembly,我正在寻找一个库,它可以将x86代码分解成某种对象模型,然后我可以用它来编写分析代码的例程。我对一个将x86代码转换为文本反汇编的库不感兴趣——我发现了很多这样的库,但它们并没有那么有用,因为我想在反汇编的代码之上做一些工作。哦,我希望它是.Net代码(最好是VB或C)。据我所知,Reflector不支持x86 您最好使用脚本或COM接口访问或 如果你买得起的话,我会推荐IDA Pro。IDA拥有非常丰富的API、活跃的开发和大量文档。您可以在自治模式下运行它,我相信使用“-AS”开关。有关命令

我正在寻找一个库,它可以将x86代码分解成某种对象模型,然后我可以用它来编写分析代码的例程。我对一个将x86代码转换为文本反汇编的库不感兴趣——我发现了很多这样的库,但它们并没有那么有用,因为我想在反汇编的代码之上做一些工作。哦,我希望它是.Net代码(最好是VB或C)。

据我所知,Reflector不支持x86

您最好使用脚本或COM接口访问或

如果你买得起的话,我会推荐IDA Pro。IDA拥有非常丰富的API、活跃的开发和大量文档。您可以在自治模式下运行它,我相信使用“-AS”开关。有关命令行参数的更多信息,请参见


我也遇到过,但从未使用过,所以不确定它有多好。libdasm看起来像C/C++,所以用C#编写API包装应该很简单。

这是一个老问题,但是如果有其他人出现,而您想要的是100%的C#.NET实现,而不是使用interop,则会为Intel和AT&T语法提供x86/x86-64反汇编程序。它将每条指令解码为一个对象,该对象提供有关该指令的低级信息(例如指令大小、操作数和类型等)的访问

SharpDisasm是C库反汇编程序的完整C#端口

反汇编程序通过
SharpDisam.decomposer
类公开

提供的示例控制台应用程序的输出:

C:\>echo a1 c9 fd ff ff a1 37 02 00 00 b8 37 02 00 00 b4 09 8a 
25 09 00 00 00 8b 04 6d 85 ff ff ff 89 45 f0| disasmcli 32

00000000 a1 c9 fd ff ff                 mov eax, [0xfffffdc9]
00000005 a1 37 02 00 00                 mov eax, [0x237]
0000000a b8 37 02 00 00                 mov eax, 0x237
0000000f b4 09                          mov ah, 0x9
00000011 8a 25 09 00 00 00              mov ah, [0x9]
00000017 8b 04 6d 85 ff ff ff           mov eax, [ebp*2-0x7b]
0000001e 89 45 f0                       mov [ebp-0x10], eax

C:\>echo 488b05f7ffffff67668b40f06766035e1048030425ffff
000067660344bef04c0384980000008048a10000000000800000 | disasmcli 64

0000000000000000 48 8b 05 f7 ff ff ff           mov rax, [rip-0x9]
0000000000000007 67 66 8b 40 f0                 mov ax, [eax-0x10]
000000000000000c 67 66 03 5e 10                 add bx, [esi+0x10]
0000000000000011 48 03 04 25 ff ff 00 00        add rax, [0xffff]
0000000000000019 67 66 03 44 be f0              add ax, [esi+edi*4-0x10]
000000000000001f 4c 03 84 98 00 00 00 80        add r8, [rax+rbx*4-0x80000000]
0000000000000027 48 a1 00 00 00 00 00 80 00 00  mov rax, [0x800000000000]

亡灵巫术,因为一段时间过去了。
是的,实际上有几个

Capstone.NET的功能非常完善(libcapstone端口ARM、ARM64(又名ARMv8/AArch64)、M68K、Mips、PowerPC、Sparc、SystemZ、XCore、X86(包括X86_64)。它支持大多数现代CPU扩展):


(麻省理工学院许可证)

然后,如前所述,还有SharpDisasm(libudis端口):

(简化BSD许可证(BSD))

然后是Reko(x86反编译器)

(GNU通用公共许可证)

无法读取ELF文件:

(麻省理工学院和LLVM许可证)

或者像这样阅读PE格式:

或使用PETools:

(麻省理工学院许可证)

还有一个检查lib文件的工具:

还有一个x86汇编程序库:

以及ELF哈希函数



此外,wikibooks上还有一个专用页面:

还有雪人反编译器,它使用了顶点:

还有一个完全管理的x86汇编程序:

我曾将IDA Pro用作直接反汇编程序,但我没有考虑使用它,因为它看起来只有内部自动化功能。有可能从外部实现自动化吗?我想我并不是100%反对完全使用IDA Pro,但如果可以的话,我更喜欢使用.Net语言。是的,您可以在自主模式下运行它,并指定要运行的IDC脚本。您还可以使用插件API中的C API和COM接口进行开发。这可能是最好的拆卸和分析桥梁。是你的朋友,是的!在这一点上,你比我抢先一步。Reflector的Reflectil插件也比我抢先一步,该插件用于修补组件原生x86。IL很简单…:-)不,我正在寻找一个x86本机代码反汇编程序。