簡體   English   中英

在特定地址的程序中反匯編x86代碼

[英]Disassemble x86 code in a program at a specific address

是否有任何x86反匯編程序框架可用於分析程序中特定地址的代碼,如:

info = disassemble(  startAddress , stopAddress)  

它應該顯示每個指令及其操作數和任何其他有利於分析的信息,但它也應該具有快速模式,其中獲取每條指令的大量信息並不是那么重要,但僅針對其中一些可以指定的信息。

GNU binutils不夠好嗎? 以下是使用objdump實用程序的方法:

# Disassemble from virtual addresses 0x80000000 to 80000100
objdump -d program --start-address=0x80000000 --stop-address=0x80000100

谷歌的protobuf就此問題使用了libdisasm 令人遺憾的是(從源代碼判斷)它只支持ia32和x86以及主頁聲明“它是特定於x86的,不會擴展為包含其他CPU架構” 但由於你沒有提到其他的拱門,這個庫可能就足夠了。

試試BeaEngine

跨平台的InstructionAPI適合此目的,它將分析代碼並打印出反匯編或提供與機器無關的指令視圖供您查詢。 InstructionAPI是一個共享庫,您可以將代碼鏈接到該庫。

http://www.paradyn.org/html/manuals.html

我將調試到起點並查看調試器的反匯編輸出。 更殘酷的方法是將其全部反匯編並在反匯編文件中搜索函數名稱。 objconv可以做到這一點,但它在非常大的文件上很慢。

暫無
暫無

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

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