【错误记录】Visual Studio 中配置 NDK 头文件路径 ( NDK 的三个头文件路径 | 与 CPU 架构相关 asm 头文件路径选择 )
文章目錄
- 一、報錯信息
- 二、解決方案
- 1、NDK 的三個頭文件路徑
- 2、與 CPU 架構(gòu)相關(guān) asm 頭文件路徑選擇
一、報錯信息
參考 【Android 逆向】Android 進(jìn)程注入工具開發(fā) ( Visual Studio 開發(fā) Android NDK 應(yīng)用 | 使用 Makefile 構(gòu)建 Android 平臺 NDK 應(yīng)用 ) 博客 , 此處涉及到 打開一個 " 生成文件項(xiàng)目 " ;
打開后 , 由于沒有頭文件依賴 , 無法編譯 ;
二、解決方案
右鍵點(diǎn)擊解決方案 , 選擇屬性 ,
在 NMake 的 包含搜索路徑 中 , 配置對應(yīng)的
在 【錯誤記錄】Visual Studio 中配置 NDK 頭文件路徑 博客中只是針對一種情況進(jìn)行了配置 , 單純解決報錯信息 , 下面是的方法是目前的通用解決方案 ;
1、NDK 的三個頭文件路徑
一般 NDK 的頭文件位置有如下 333 個 : NDKRoot 指的是 NDK 根目錄 ;
- NDKRoot\sources\android\support\include
- NDKRoot\sysroot\usr\include
- NDKRoot\sysroot\usr\include\x86_64-linux-android
其中 NDKRoot 指的是 NDK 根目錄 ;
2、與 CPU 架構(gòu)相關(guān) asm 頭文件路徑選擇
注意 NDKRoot\sysroot\usr\include\x86_64-linux-android 路徑中的 x86_64-linux-android 目錄是 asm 相關(guān)路徑 , asm 相關(guān)頭文件和依賴庫都是與 CPU 架構(gòu)相關(guān)的 , 如寄存器相關(guān)操作 , 系統(tǒng)調(diào)用相關(guān)操作 , 不同的 CPU 架構(gòu)對應(yīng)的內(nèi)容都是不同的 ;
在 D:\Microsoft\AndroidNDK64\android-ndk-r16b\sysroot\usr\include 目錄中 , 有如下架構(gòu)的 asm 目錄 :
- aarch64-linux-android
- arm-linux-androideabi
- i686-linux-android
- mips64el-linux-android
- mipsel-linux-android
- x86_64-linux-android
每個 CPU 架構(gòu)對應(yīng)的目錄下都有一個 asm 目錄 ;
開發(fā)在哪個 CPU 架構(gòu)上運(yùn)行的程序 , 就選擇導(dǎo)入哪個路徑 ;
如 : 當(dāng)前要開發(fā)在 x86 架構(gòu)上 進(jìn)行 ptrace 進(jìn)程調(diào)試的應(yīng)用 , 需要導(dǎo)入的就是 D:\Microsoft\AndroidNDK64\android-ndk-r16b\sysroot\usr\include\x86_64-linux-android 頭文件 ;
這是在 PC 上 Android 模擬器中進(jìn)行逆向操作需要導(dǎo)入的頭文件 ;
如果要在 arm 真機(jī)上進(jìn)行逆向調(diào)試 , 則需要導(dǎo)入 D:\Microsoft\AndroidNDK64\android-ndk-r16b\sysroot\usr\include\arm-linux-androideabi 頭文件 ;
由于逆向時需要讀取并修改寄存器信息 , 因此這里就涉及到為不同的 CPU 架構(gòu)開發(fā)不同的程序 ; 導(dǎo)入的 asm 頭文件也是不同的 ;
總結(jié)
以上是生活随笔為你收集整理的【错误记录】Visual Studio 中配置 NDK 头文件路径 ( NDK 的三个头文件路径 | 与 CPU 架构相关 asm 头文件路径选择 )的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【错误记录】Visual Studio
- 下一篇: 【Android 逆向】Android