我的程序輸出的編碼指令,其看起來像這樣:如何從stdin中逐行反彙編?
0x81FB4300000090
0x69FC4300000090
0x81FC4300000090
0x69FD4300000090
0x81FD4300000090
0x69FE4300000090
0x81FE4300000090
0x69FF4300000090
0x81FF4300000090
0x00054400000090
0x01054400000090
0x02054400000090
0x03054400000090
0x08054400000090
0x09054400000090
0x0A054400000090
0x0B054400000090
0x10054400000090
0x11054400000090
0x12054400000090
0x13054400000090
0x18054400000090
0x19054400000090
0x1A054400000090
0x1B054400000090
0x20054400000090
0x21054400000090
0x22054400000090
0x23054400000090
0x28054400000090
0x29054400000090
0x2A054400000090
0x2B054400000090
0x30054400000090
0x31054400000090
0x32054400000090
0x33054400000090
0x38054400000090
0x39054400000090
0x3A054400000090
0x3B054400000090
0x40054400000090
0x41054400000090
0x42054400000090
0x43054400000090
0x44054400000090
0x45054400000090
0x46054400000090
0x47054400000090
當上述各線是獨立的指令集,並需要被拆卸爲獨立的程序。每行包含7個字節的指令。我可以直接在二進制輸出它們,***在這種情況下,每個7字節的塊需要分開拆卸。
在運行我的程序的bash腳本中,我想過濾掉包含靜態跳轉的行。
那麼,如何從stdin分別拆分每一行? (我想做點像./my_C_program | the_disassembler | grep loopne
)
我試過objdump,但是它拒絕使用/dev/stdin
作爲輸入文件。
所以我需要一行一行的反彙編和grep分別搜索每一行的方式是一樣的。 – user2284570
Downvotes?爲什麼呢? – user2284570
大多數x86反彙編器都需要二進制輸入,因此您可能需要將非hexdump恢復爲二進制。如果你需要將每個代碼塊分開,可能需要編寫一個shell循環,一次「讀取」一行並將其提供給反彙編程序。 –