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