前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Android 逆向】Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用 | VS 自带的 Android 平台应用创建与配置 )

【Android 逆向】Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用 | VS 自带的 Android 平台应用创建与配置 )

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

文章目录

一、Visual Studio 安装 " 使用 C++ 的移动开发 "


使用 Visual Studio 2019 开发环境 , 参考 【Visual Studio】Visual Studio 2019 社区版 CMake开发环境安装 ( 下载 | 安装相关组件 | 创建编译执行项目 | 错误处理 ) 博客 ;

在 Visual Studio Installer 中 , 安装 " 使用 C++ 的移动开发 " ;

等待安装完成 ;

二、Visual Studio 中创建 " 动态共享库(Android) " 类型应用


在 Visual Studio 2019 欢迎界面 选择 " 创建新项目 " ,

在 创建新项目 对话框中 , 选择 " 动态共享库(Android) " 类型的项目 ;

设置项目的存放路径 ;

下面是创建项目时 , 自动生成的代码 ; 所有代码都在 extern "C" {} 包裹中 , 是以标准 C 格式导出 ;

代码语言:javascript
复制
#include "VS_NDK_Demo.h"

#define LOGI(...) ((void)__android_log_print(ANDROID_LOG_INFO, "VS_NDK_Demo", __VA_ARGS__))
#define LOGW(...) ((void)__android_log_print(ANDROID_LOG_WARN, "VS_NDK_Demo", __VA_ARGS__))

extern "C" {
	/*此简单函数返回平台 ABI,此动态本地库为此平台 ABI 进行编译。*/
	const char * VS_NDK_Demo::getPlatformABI()
	{
	#if defined(__arm__)
	#if defined(__ARM_ARCH_7A__)		// 64 位 arm 
	#if defined(__ARM_NEON__)			// 64 位 arm 
		#define ABI "armeabi-v7a/NEON"
	#else
		#define ABI "armeabi-v7a"		// 32 位 arm 
	#endif
	#else
		#define ABI "armeabi"
	#endif
	#elif defined(__i386__)				// x86 架构
		#define ABI "x86"
	#else
		#define ABI "unknown"
	#endif
		LOGI("This dynamic shared library is compiled with ABI: %s", ABI);
		return "This native library is compiled with ABI: %s" ABI ".";
	}

	void VS_NDK_Demo()
	{
	}

	VS_NDK_Demo::VS_NDK_Demo()
	{
	}

	VS_NDK_Demo::~VS_NDK_Demo()
	{
	}
}

三、设置编译选项


右键点击 " 解决方案资源管理器 " , 在弹出的菜单中 , 选择 " 属性 " 设置 ;

设置预处理器 :

设置预编译头文件 :

预编译头文件是一些常用的头文件 : pch.h 内容如下 ;

代码语言:javascript
复制
#include <jni.h>
#include <errno.h>

#include <string.h>
#include <unistd.h>
#include <sys/resource.h>

#include <android/log.h>

四、生成 ARM 架构 SO 动态库


生成动态库 : 右键点击 " 解决方案资源管理器 " , 在弹出的菜单中 , 选择 " 仅用于项目(J) -> 仅生成 VS_NDK_Demo(B) " 选项 ;

生成动态库结果 : 生成的动态库导出到了 D:\002_Project\006_Visual_Studio\VS_NDK_Demo\VS_NDK_Demo\ARM\Debug\libVS_NDK_Demo.so 路径中 ; 项目的目录是 D:\002_Project\006_Visual_Studio\VS_NDK_Demo\VS_NDK_Demo ;

五、生成 x86 架构 SO 动态库


上面导出的 ARM 架构的动态库 , 可以选择 x86 架构 , 再次编译 ; 可选择的架构有 ARM , ARM64 , x86 , x64 ;

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、Visual Studio 安装 " 使用 C++ 的移动开发 "
  • 二、Visual Studio 中创建 " 动态共享库(Android) " 类型应用
  • 三、设置编译选项
  • 四、生成 ARM 架构 SO 动态库
  • 五、生成 x86 架构 SO 动态库
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档