簡體   English   中英

x86或x64反匯編程序庫

[英]x86 or x64 disassembler lib

我知道有一些可拆卸的庫,但是我正在尋找的是一個具有如下API的庫:

void * findAddrOfFirstInstructionStartingFrom( void * startAddress , InstructionType instruction);

void* addr = findAddrOfFirstInstructionStartingFrom(startAddress , JMP);

和其他api微笑程序類似,例如搜索特定的內容,而不是反匯編來自某個地址的所有指令並獲取各種信息,因為如果您只想查找特定的內容而不是所有內容,它就會變慢。

如果您知道任何請讓我知道,如果沒有請告訴我一個開源且易於修改的消息。

您沒有標記也沒有告訴處理器架構,因此不太可能獲得真正的答案。

通常,本機代碼指令的長度會根據它們采用的操作數而變化很大,因此您必須在搜索之前將其分解。 否則,您只會找到與您搜索的指令模式匹配的第一個字節序列。 它很可能不是真正的指令,而是先前指令的部分操作數。

編輯:由於您更新了標題,所以我可以想到選擇BorgPEDasm是開源的。 如果您放棄該開源項目,那么絕對是IDA pro。

我不知道有任何API可以做到這一點,但是可以使用一些命令行腳本來實現:

objdump -d --start-address address file | grep -m 1 instruction | cut -d : -f 1

因此,例如,要在文件a.out找到從地址0x08048664開始的第一條JMP指令,可以執行以下操作:

$ objdump -d --start-address 0x08048664 a.out | grep -m 1 jmp | cut -d : -f 1
 8048675

您可能想要的不僅僅是一個庫,還有一些反匯編程序框架。 看看IDA-Pro,它還提供了一個多功能的腳本接口(和反匯編程序API)

暫無
暫無

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

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