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

【Android 逆向】Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用 | 使用 Makefile 构建 Android 平台 NDK 应用 )

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

文章目录

一、Visual Studio 中创建 Makefile 项目


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

在这里插入图片描述
在这里插入图片描述

在 " 创建新项目 " 对话框中 , 选择 " 生成文件项目 " , 注意选择 " 自带生成系统来编译 C++ " 这个项目类型 , 不要选错了 ;

在这里插入图片描述
在这里插入图片描述

设置项目路径 :

在这里插入图片描述
在这里插入图片描述

设置 " 生成文件项目 " 的调试设置 ;

  • 生成命令行 : make -f Makefile.mk
  • 清除命令行 : make -f Makefile.mk clean
  • 重新生成命令行 : make -f Makefile.mk -B

如果 Windows 端没有 make 功能 , 参考 【开发环境】Windows 系统中使用 Makefile 构建脚本编译 C 程序 ( 下载并安装 TDM-GCC 编译器 | 配置环境变量 | 编译 Makefile 程序 ) 博客 , 安装 make 工具 ;

在这里插入图片描述
在这里插入图片描述

刚创建完项目后 , 项目是空的 ;

在这里插入图片描述
在这里插入图片描述

二、配置 Makefile 文件


如果 Windows 端没有 make 功能 , 参考 【开发环境】Windows 系统中使用 Makefile 构建脚本编译 C 程序 ( 下载并安装 TDM-GCC 编译器 | 配置环境变量 | 编译 Makefile 程序 ) 博客 , 安装 make 工具 ;

安装完毕后 , 将 D:\001_Develop\020_TDM-GCC-64\bin\mingw32-make.exe 文件 , 重命名为 make.exe , 或者复制一份重名为 make.exe , 就可以直接在命令行中使用 make 命令 ;

在这里插入图片描述
在这里插入图片描述

这是编译 NDK 项目的通用 Makefile 配置 : 使用前只需要修改 NDK 和 NDK_ROOT 中的自己的 NDK 即可 ;

代码语言:javascript
复制
NDK = D:/001_Develop/001_SDK/Sdk/ndk/android-ndk-r14b/ndk-build.cmd
NDK_ROOT = D:/001_Develop/001_SDK/Sdk/ndk/android-ndk-r14b
MAKE = "$(NDK_ROOT)/prebuilt/windows-x86_64/bin/make.exe"
BUILD_SCRIPT = "$(NDK_ROOT)/build/core/build-local.mk"
PROJ_PATH = NDK_PROJECT_PATH=.

APP_SCRIPT = APP_BUILD_SCRIPT=./Android.mk NDK_APPLICATION_MK=./Application.mk

BUILD_COMMAND = $(NDK) NDK_PROJECT_PATH=. $(APP_SCRIPT)
# D:/001_Develop/001_SDK/Sdk/ndk/android-ndk-r14b/ndk-build.cmd NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk NDK_APPLICATION_MK=./Application.mk

.PHONY:all

all:
	$(NDK) $(PROJ_PATH) $(APP_SCRIPT)
	@echo done!

clean:
	$(NDK) $(PROJ_PATH) $(APP_SCRIPT) clean
	@echo done!

rebuild:
	$(NDK) $(PROJ_PATH) $(APP_SCRIPT) -B
	@echo done!

三、配置 Android.mk


Android.mk :

代码语言:javascript
复制
LOCAL_PATH				:= $(call my-dir)
include					$(CLEAR_VARS)
# 链接 log 日志库
LOCAL_LDLIBS			+= -llog 
# 编译可执行程序名称
LOCAL_MODULE			:= hello
# 指定源码
LOCAL_SRC_FILES			:= main.c
# 指定输出目录
# NDK_APP_DST_DIR			:= ../Debug/$(TARGET_ARCH_ABI)
# 编译可执行程序
include					$(BUILD_EXECUTABLE)

四、配置 Application.mk


Application.mk :

代码语言:javascript
复制
# 指定要编译的 CPUU 架构
APP_ABI					:= armeabi armeabi-v7a x86
# 指定用于此应用的 C++ 标准库
APP_STL					:= gnustl_static
# 指定编译的 Android 平台 , 一般是 Android 兼容的最低版本 
APP_PLATFORM			:= android-19

五、主函数源码


main.c 源码 :

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

int main(int argc, char** argv) {
	printf("Hello World");
	return 0;
}

六、编译 NDK 项目


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

在这里插入图片描述
在这里插入图片描述

编译结果 :

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、Visual Studio 中创建 Makefile 项目
  • 二、配置 Makefile 文件
  • 三、配置 Android.mk
  • 四、配置 Application.mk
  • 五、主函数源码
  • 六、编译 NDK 项目
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档