文章目录

  • 一、报错信息
  • 二、解决方案
    • 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 头文件路径选择 )相关推荐

  1. visual studio编译linux,在 Visual Studio 中配置 Linux MSBuild C++ 项目

    在 Visual Studio 中配置 Linux MSBuild C++ 项目Configure a Linux MSBuild C++ project in Visual Studio 10/16 ...

  2. 【错误记录】Visual Studio 中配置 NDK 头文件路径

    文章目录 一.报错信息 二.解决方案 一.报错信息 参考 [Android 逆向]Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用 | 使用 Mak ...

  3. 【Android 逆向】Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用 | Visual Studio 中 SDK 和 NDK 安装位置 )

    文章目录 一.Visual Studio 中安装 " 使用 C++ 的移动开发 " 开发库 二.Visual Studio 中安装的 Android SDK 和 NDK 位置 三. ...

  4. Visual Studio属性配置中使用宏

    在学习C语言的时候,我们曾经遇到过一个宏的概念.宏的作用机理本质上是宏的展开,C语言中的宏的用法也有很多种(水其实很深...),不过从感觉上来讲,人们大致上会在以下的场景中,利用宏来解决一些窘境:一是 ...

  5. 如何在linux上开发安卓软件,使用Xamarin在Visual Studio中开发Android应用

    本文使用的环境是Windows 8 Visual Studio 2012.2 1.下载Xamarin 2.安装Xamarin 下载后运行EXE文件 之后经过一些必要的下一步 想要开发Android,A ...

  6. 【Android NDK 开发】NDK 交叉编译 ( Ubuntu 中交叉编译动态库 | Android Studio 中配置使用第三方动态库 )

    文章目录 I . 动态库 与 静态库 II . 编译动态库 III. Android Studio 使用第三方动态库 IV . Android Studio 关键代码 V . 博客资源 I . 动态库 ...

  7. Visual Studio中没有为此解决方案配置选中要生成的项目

    Visual Studio中没有为此解决方案配置选中要生成的项目 参考文章: (1)Visual Studio中没有为此解决方案配置选中要生成的项目 (2)https://www.cnblogs.co ...

  8. 在Visual Studio中调试samples中可能出现的错误

    在Visual Studio中调试samples中可能出现的错误 进入samples/opencl文件夹下,打开OpenCLSamples.sln,然后选择" 生成 -> 重新生成解决 ...

  9. IDE之VS:利用 Visual Studio中的IDE配置python语言进行编程

    IDE之VS:利用 Visual Studio中的IDE配置python语言进行编程 目录 第一步,先安装python环境 第二步,加载本地已有的python 第一步,先安装python环境

最新文章

  1. Tor 出口节点将运行在图书馆的电脑上
  2. 关于eclpse java项目与tomcat jdk版本不一致的解决方法
  3. WebRTC端点检测使用中遇到的部分问题汇总
  4. linux中tcp连接内核参数调优somaxconn
  5. Maven学习(二) -- 坐标和依赖
  6. 数据库表DML不了 可能是被锁了
  7. 2017计算机软件考试试题,2017年计算机应用考试试题含答案.doc
  8. BZOJ2333 [SCOI2011]棘手的操作 【离线 + 线段树】
  9. 熊猫数据集_对熊猫数据框使用逻辑比较
  10. .NET Core 3 WPF MVVM框架 Prism系列之事件聚合器
  11. fisher线性判别算法python_Fisher线性判别(LDA)python实现
  12. C#中适当的列表支持
  13. 五步构建经营指标,拒绝分析不接地气
  14. linux执行命令在哪,在linux终端中执行root命令有哪些方法
  15. STM32CubeMX下STM32单片机环境光传感器(ADC)
  16. 【TP5】安装Guzzle并简单使用
  17. 使用硕正插件在strtus2框架下返回数据问题
  18. ST MCSDK 初探
  19. 安全多方计算与证券业数据生态
  20. JDK11安装完成后没有jre目录

热门文章

  1. IE6 CSS的一个bug
  2. SugarCRM 主表-自定义字段
  3. JavaWeb:Tomcat下配置数据源连接数据库
  4. [Silverlight资源]处理bmp,gif及ico图像类文件
  5. 中小企业数据异地备份容灾解决方案
  6. 20172311-哈夫曼编码测试
  7. WPF里ItemsControl的分组实现
  8. 线程安全的单例模式的几种实现方法分享
  9. Android 布局中 如何使控件居中
  10. Struts2框架学习Action命名空间创建方式