Android 逆向Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用 | 使用 Makefile 构建 Android 平台 NDK 应用 )(代码
Posted 韩曙亮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 逆向Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用 | 使用 Makefile 构建 Android 平台 NDK 应用 )(代码相关的知识,希望对你有一定的参考价值。
文章目录
一、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 即可 ;
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 :
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 :
# 指定要编译的 CPUU 架构
APP_ABI := armeabi armeabi-v7a x86
# 指定用于此应用的 C++ 标准库
APP_STL := gnustl_static
# 指定编译的 Android 平台 , 一般是 Android 兼容的最低版本
APP_PLATFORM := android-19
五、主函数源码
main.c 源码 :
#include <stdio.h>
int main(int argc, char** argv) {
printf("Hello World");
return 0;
}
六、编译 NDK 项目
右键点击 " 解决方案资源管理器 " , 在弹出的菜单中 , 选择 " 仅用于项目(J) -> 仅生成 VS_NDK_Makefile(B) " 选项 ;
编译结果 :
以上是关于Android 逆向Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用 | 使用 Makefile 构建 Android 平台 NDK 应用 )(代码的主要内容,如果未能解决你的问题,请参考以下文章
Android 逆向Android 进程注入工具开发 ( 编译注入工具 | 编译结果文件说明 | 注入过程说明 )
Android 逆向Android 进程注入工具开发 ( 远程调用总结 | 远程调用注意事项 )
Android 逆向Android 进程注入工具开发 ( SO 进程注入环境及 root 权限获取 | 进程注入时序分析 )
Android 逆向Android 进程注入工具开发 ( 注入代码分析 | 调试进程 ATTACH 附着目标进程 | 读取目标函数寄存器值并存档 )
Android 逆向Android 进程注入工具开发 ( 远程调用 | x86 架构的返回值获取 | arm 架构远程调用 )
Android 逆向Android 进程注入工具开发 ( 注入代码分析 | 远程调用 目标进程中 libc.so 动态库中的 mmap 函数 三 | 等待远程函数执行完毕 | 寄存器获取返回值 )(代