日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

【Android 逆向】Android 进程注入工具开发 ( 编译注入工具 | 编译结果文件说明 | 注入过程说明 )

發(fā)布時(shí)間:2025/6/17 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Android 逆向】Android 进程注入工具开发 ( 编译注入工具 | 编译结果文件说明 | 注入过程说明 ) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • 一、編譯注入工具
  • 二、編譯結(jié)果文件說明
  • 三、注入過程說明





一、編譯注入工具



在 Visual Studio 2019 中打開了一個(gè) " 生成文件項(xiàng)目 " , 該項(xiàng)目就是注入項(xiàng)目 ; 參考 【Android 逆向】修改運(yùn)行中的 Android 進(jìn)程的內(nèi)存數(shù)據(jù) ( Android 系統(tǒng)中調(diào)試器進(jìn)程內(nèi)存流程 | 編譯內(nèi)存調(diào)試動態(tài)庫以及調(diào)試程序 ) 博客 ;

編譯該項(xiàng)目 ,

生成結(jié)果如下 :

已啟動生成… 1>------ 已啟動生成: 項(xiàng)目: magic, 配置: Debug Win32 ------ 1>[x86] Compile : bridge <= bridge.c 1>[x86] SharedLibrary : libbridge.so 1>[x86] Install : libbridge.so => ../Debug/x86/libbridge.so 1>[x86] Compile++ : cmd <= command.cpp 1>[x86] Compile++ : cmd <= json_reader.cpp 1>[x86] Compile++ : cmd <= json_value.cpp 1>[x86] Compile++ : cmd <= json_writer.cpp 1>[x86] Executable : cmd 1>[x86] Install : cmd => ../Debug/x86/cmd 1>[x86] Compile : tool <= main.c 1>[x86] Executable : tool 1>[x86] Install : tool => ../Debug/x86/tool ========== 生成: 成功 1 個(gè),失敗 0 個(gè),最新 0 個(gè),跳過 0 個(gè) ==========









二、編譯結(jié)果文件說明



編譯完成后的編譯結(jié)果有

  • tool 可執(zhí)行文件
  • cmd 可執(zhí)行文件
  • libbridge.so 動態(tài)庫

上述文件都是在 PC 電腦上的 x86 架構(gòu)的 Android 模擬器上運(yùn)行的相關(guān)文件 , 具體就是 雷電模擬器 3.75 版本 ;


使用上述工具調(diào)試 Android 進(jìn)程參考如下博客 :

  • 【Android 逆向】修改運(yùn)行中的 Android 進(jìn)程的內(nèi)存數(shù)據(jù) ( 運(yùn)行環(huán)境搭建 Android 模擬器安裝 | 拷貝 Android 平臺可執(zhí)行文件和動態(tài)庫到 /data/system )
  • 【Android 逆向】修改運(yùn)行中的 Android 進(jìn)程的內(nèi)存數(shù)據(jù) ( Android 命令行中獲取要調(diào)試的應(yīng)用進(jìn)程的 PID | 進(jìn)程注入調(diào)試進(jìn)程內(nèi)存的 so 庫 )
  • 【Android 逆向】修改運(yùn)行中的 Android 進(jìn)程的內(nèi)存數(shù)據(jù) ( 使用 IDA 分析要修改的內(nèi)存特征 | 根據(jù)內(nèi)存特征搜索修改點(diǎn) | 修改進(jìn)程內(nèi)存 )




三、注入過程說明



將所有文件拷貝到 Android 模擬器的 /data/system/debug/ 目錄下 , 然后賦予 777 權(quán)限 ;

執(zhí)行

tool 2222

命令 , 即可 attach 調(diào)試 進(jìn)程號 PID 為 2222 的 進(jìn)程 ;

根據(jù) PID , 一定能在 /proc/2222/mmaps 文件中找到該進(jìn)程 每個(gè) so 動態(tài)庫的運(yùn)行地址 , 尤其是 libc.so 動態(tài)庫的地址 ;


先遠(yuǎn)程注入 libbridge.so 動態(tài)庫 , 然后遠(yuǎn)程調(diào)用 libbridge.so 中的 load 函數(shù) , 將真正的 libnative.so 加載到目標(biāo)進(jìn)程中 ;

使用修改寄存器的方法 強(qiáng)行加載 libbridge.so 動態(tài)庫 , 會影響目標(biāo)進(jìn)程的布局 , 因此這個(gè)動態(tài)庫越小越好 , 并且 使用完畢后 , 馬上關(guān)閉該動態(tài)庫 , libbridge.so 動態(tài)庫只起一個(gè)敲門的作用 , libnative.so 加載完成后 , 直接將 libbridge.so 動態(tài)庫干掉 , 過河拆橋 ;

上述操作同時(shí) , 恢復(fù) 寄存器 和 棧內(nèi)存 的值 ;

總結(jié)

以上是生活随笔為你收集整理的【Android 逆向】Android 进程注入工具开发 ( 编译注入工具 | 编译结果文件说明 | 注入过程说明 )的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。