簡體   English   中英

x86 asm反匯編程序庫

[英]x86 asm disassembler library

是否有可以從.NET調用的庫,我可以在其中傳遞二進制數據並將其反匯編為x86匯編代碼?

如果您不介意使用P / Invoke綁定到非托管dll,請查看beaengine ,它是您可能找到的最佳反匯編程序庫。

我已經嘗試過BeaEngine和diStorm的.NET包裝器,但它們要么崩潰要么根本不拆解。 我確實找到了LibDasm的托管端口作為BlackStorms逆向工程框架的一部分,到目前為止它似乎有效。 如果需要,它還包含PE操作代碼。

由cyanic提供的鏈接似乎不再可用。

如果您使用100%C#.NET實現而不是使用互操作, SharpDisasm為Intel和AT&T語法提供了x86 / x86-64反匯編程序。 它將每個指令解碼為一個對象,該對象提供對該指令的低級信息的訪問(例如指令大小,操作數和類型等)。

SharpDisasm是libudis86 C庫反匯編程序的完整C#端口。

反匯編程序通過SharpDisam.Disassembler類公開。

從提供的示例控制台應用程序輸出:

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]

libdisasm

libdisasm庫提供二進制流的Intel x86指令的基本反匯編。 目的是提供一個易於使用的反匯編程序,可以從任何應用程序調用; 反匯編可以用AT&T語法和Intel語法生成,也可以以包含詳細指令和操作數類型信息的中間格式生成。

官方項目將其作為* nix庫提供。 然而Phenoelit的人們編寫了一個基於該庫的Windows調試器並將其移植到Windows。 您可以在頁面底部下載整個應用程序的源代碼(是的,它們包含用於Windows的libdisasm端口)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM