Frida官方手冊 - 基礎用法

freakish發表於2017-10-19

基礎用法

  • Frida的Python API介面是一種底層介面的封裝,而且功能也是相當的有限,你可以把這些介面當作是一種底層核心介面封裝的示例程式碼來看待。強烈建議大家看下 frida/core.pyfrida/tracer.py 的程式碼來學習下底層的具體細節。

模組列舉

  • enumerate_modules() 函式列舉當前程式中所有載入的模組。
  • 執行如下程式碼:
  • 應該會看到下面的輸出結果:
  • 其中,base_address 是這個模組的載入基地址。

列舉記憶體塊

  • enumerate_ranges(mask) 函式列舉當前程式中已經對映到程式地址空間中的所有記憶體塊。
  • 執行如下程式碼:
  • 應該能看到如下輸出:
  • 其中, base_address 是這個記憶體塊的起始地址。enumerate_ranges() 的mask參數列示你要列舉的記憶體塊的保護屬性型別,支援 rwx,也可以直接填寫 - 表示任意型別

記憶體讀寫

  • read_bytes(address, n) 函式在目標程式中從 address 這個地址開始,連續讀取 n 個位元組。
  • write_bytes(address, n) 函式在目標程式中從 address這個地址開始,連續寫入 n 個位元組。
  • 比如執行如下程式碼:
  • 執行完畢之後,應該能看到如下結果:
  • 執行如下程式碼:
  • 執行完畢之後, 相應的記憶體塊的值會被更新成 frida 這個字串的值

相關文章