【Android 逆向】Android 逆向通用工具开发 ( Android 平台运行的 cmd 程序类型 | Android 平台运行的 cmd 程序编译选项 | 编译 cmd 可执行程序 )(一)

简介: 【Android 逆向】Android 逆向通用工具开发 ( Android 平台运行的 cmd 程序类型 | Android 平台运行的 cmd 程序编译选项 | 编译 cmd 可执行程序 )(一)

文章目录

一、Android 平台运行的 cmd 程序类型

二、Android 平台运行的 cmd 程序编译选项

三、编译 Android 平台的 cmd 可执行程序





一、Android 平台运行的 cmd 程序类型


Android 平台运行的 cmd 程序 , 该项目工程的程序类型是 " 生成文件项目 ( Android ) " ;


image.png


Visual Studio 2019 默认没有该选项 , 需要使用 Visual Studio Installer 安装


① 进入 Visual Studio Installer , 选择 " 修改 " 选项 ;

image.png



② 选择 " 使用 C++ 的移动开发 " 开发库 , 安装该开发库 ;


image.png






二、Android 平台运行的 cmd 程序编译选项


MobileGameModify 源码中的 remote 就是在 Android 平台上运行的远程程序 ;


该程序是 " 生成文件项目 ( Android ) " , 通过配置的 Android.mk 和 Application.mk 进行编译 ;


Application.mk 编译配置 :


# 设置编译的架构 , 这里在 PC 上的雷电模拟器 3.75 上运行肯定是 x86 架构
APP_ABI     := x86 
# 如果要在 ARM 真机上运行 , 设置 armeabi-v7a  armeabi , 注意寄存器相关逻辑需要兼容
APP_STL     := gnustl_static
# 最小支持版本
APP_PLATFORM    := android-19


Android.mk 编译配置 :


LOCAL_PATH    := $(call my-dir)
TINYXML        := tinyxml/tinystr.cpp tinyxml/tinyxml.cpp tinyxml/tinyxmlerror.cpp tinyxml/tinyxmlparser.cpp
JSONCPP     := json/json_reader.cpp json/json_value.cpp json/json_writer.cpp
####command####
include     $(CLEAR_VARS)
# 链接其它库 文件
LOCAL_LDLIBS    += -llog 
# 指定 C++ 编译选项
LOCAL_CPPFLAGS    += -std=c++11
# 指定使用的 C++ 特性
LOCAL_CPP_FEATURES      += rtti exceptions
# 指定编译
LOCAL_MODULE    := cmd
# 指定头文件查找路径
LOCAL_C_INCLUDES  += .
LOCAL_C_INCLUDES  += json
LOCAL_C_INCLUDES  += tinyxml
# 此处必须设置自己电脑上的 SDK 地址 
# 注意 : 版本必须是 android-ndk-r14b
LOCAL_C_INCLUDES  += Y:/001_DevelopTools/002_Android_SDK/ndk/android-ndk-r14b-windows-x86_64/android-ndk-r14b/platforms/android-19/arch-x86/usr/include
# 指定源文件
LOCAL_SRC_FILES   := main.cpp $(JSONCPP) $(TINYXML)
# 指定编译结果输出路径
NDK_APP_DST_DIR   := ../Debug/$(TARGET_ARCH_ABI)
# 指定编译结果是 Android 平台上的可执行文件
include     $(BUILD_EXECUTABLE)


在上面需要根据自己的 NDK 路径配置 C 头文件的查找路径 LOCAL_C_INCLUDES 为 Y:/001_DevelopTools/002_Android_SDK/ndk/android-ndk-r14b-windows-x86_64/android-ndk-r14b/platforms/android-19/arch-x86/usr/include , 这里需要配置 android-ndk-r14b 版本的 NDK , 尽量配置的一样 , 肯定能编译通过 , 使用其它版本不保证编译通过 ;


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


image.png

目录
相关文章
|
1天前
|
XML Java Android开发
如何美化android程序:自定义ListView背景
如何美化android程序:自定义ListView背景
|
2天前
|
Java API 开发工具
java与Android开发入门指南
java与Android开发入门指南
8 0
|
3天前
|
Android开发
Android修改默认system/bin/下可执行程序拥有者和权限,使用实例,只有root和系统app权限才能执行某个命令。
Android修改默认system/bin/下可执行程序拥有者和权限,使用实例,只有root和系统app权限才能执行某个命令。
11 0
|
3天前
|
Android开发 Kotlin
Kotlin开发Android之基础问题记录
Kotlin开发Android之基础问题记录
15 1
|
3天前
|
Java Android开发
Android开发@IntDef完美替代Enum
Android开发@IntDef完美替代Enum
12 0
|
4天前
|
Java Android开发
Android 反编译工具的使用
Android 反编译工具的使用
12 0
|
4天前
|
Android开发
Android 盒子开发过程中遇到的问题及解决方法
Android 盒子开发过程中遇到的问题及解决方法
8 2
|
5天前
|
机器学习/深度学习 算法 Android开发
安卓应用开发:打造高效通知管理系统
【5月更文挑战第6天】 在现代移动应用的海洋中,用户经常面临信息过载的挑战。一个精心设计的通知管理系统对于提升用户体验至关重要。本文将探讨在安卓平台上如何实现一个高效的通知管理系统,包括最佳实践、系统架构设计以及性能优化技巧。通过分析安卓通知渠道和优先级设置,我们的目标是帮助开发者构建出既能吸引用户注意,又不会引发干扰的智能通知系统。
16 2
|
5天前
|
安全 Linux Android开发
FFmpeg开发笔记(十六)Linux交叉编译Android的OpenSSL库
该文介绍了如何在Linux服务器上交叉编译Android的FFmpeg库以支持HTTPS视频播放。首先,从GitHub下载openssl源码,解压后通过编译脚本`build_openssl.sh`生成64位静态库。接着,更新环境变量加载openssl,并编辑FFmpeg配置脚本`config_ffmpeg_openssl.sh`启用openssl支持。然后,编译安装FFmpeg。最后,将编译好的库文件导入App工程的相应目录,修改视频链接为HTTPS,App即可播放HTTPS在线视频。
FFmpeg开发笔记(十六)Linux交叉编译Android的OpenSSL库
|
开发工具 Android开发 iOS开发