0
我有一個剝離的二進制文件進行分析。一些有趣的代碼位於地址0x1234,我如何找到所有跳轉到該地址? (當然,我不希望找到計算跳轉到該地址,只是那些硬編碼)。我不能使用簡單的搜索,因爲跳轉指令通常使用相對偏移量進行編碼,並且存在多種跳轉(je,jne,jmp ...)。我現在正在x86_64/linux上使用GDB-PEDA,如果它必須是平臺特定的方法。如何找到跳轉到特定地址
我有一個剝離的二進制文件進行分析。一些有趣的代碼位於地址0x1234,我如何找到所有跳轉到該地址? (當然,我不希望找到計算跳轉到該地址,只是那些硬編碼)。我不能使用簡單的搜索,因爲跳轉指令通常使用相對偏移量進行編碼,並且存在多種跳轉(je,jne,jmp ...)。我現在正在x86_64/linux上使用GDB-PEDA,如果它必須是平臺特定的方法。如何找到跳轉到特定地址
如何找到所有跳轉到該地址?
嘗試objdump -d a.out | egrep 'j.* 0x1234'
我認爲你需要執行的程序來收集這些信息。也許gdb的進程記錄是有用的。啓用錄製(錄製btrace)。在0x1234放置一個斷點。然後,當斷點被擊中時,使用記錄指令歷史記錄來查看你在哪裏(以及從哪裏)跳到那裏。 – dbrank0
順便說一句:我誤解了這個問題。只有當你想找到計算跳轉時,這是必需的。 – dbrank0