前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【错误记录】Visual Studio 中配置 NDK 头文件路径 ( NDK 的三个头文件路径 | 与 CPU 架构相关 asm 头文件路径选择 )

【错误记录】Visual Studio 中配置 NDK 头文件路径 ( NDK 的三个头文件路径 | 与 CPU 架构相关 asm 头文件路径选择 )

作者头像
韩曙亮
发布2023-03-29 20:29:22
5.9K0
发布2023-03-29 20:29:22
举报
文章被收录于专栏:韩曙亮的移动开发专栏

文章目录

一、报错信息


参考 【Android 逆向】Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用 | 使用 Makefile 构建 Android 平台 NDK 应用 ) 博客 , 此处涉及到 打开一个 " 生成文件项目 " ;

打开后 , 由于没有头文件依赖 , 无法编译 ;

二、解决方案


右键点击解决方案 , 选择属性 ,

在 NMake 的 包含搜索路径 中 , 配置对应的

【错误记录】Visual Studio 中配置 NDK 头文件路径 博客中只是针对一种情况进行了配置 , 单纯解决报错信息 , 下面是的方法是目前的通用解决方案 ;

1、NDK 的三个头文件路径

一般 NDK 的头文件位置有如下

3

个 : 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 头文件也是不同的 ;

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-11-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、报错信息
  • 二、解决方案
    • 1、NDK 的三个头文件路径
      • 2、与 CPU 架构相关 asm 头文件路径选择
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档