【Android 逆向】Android 逆向通用工具开发 ( Android 平台运行的 cmd 程序类型 | Android 平台运行的 cmd 程序编译选项 | 编译 cmd 可执行程序 )
文章目錄
- 一、Android 平臺運行的 cmd 程序類型
- 二、Android 平臺運行的 cmd 程序編譯選項
- 三、編譯 Android 平臺的 cmd 可執行程序
一、Android 平臺運行的 cmd 程序類型
Android 平臺運行的 cmd 程序 , 該項目工程的程序類型是 " 生成文件項目 ( Android ) " ;
Visual Studio 2019 默認沒有該選項 , 需要使用 Visual Studio Installer 安裝
① 進入 Visual Studio Installer , 選擇 " 修改 " 選項 ;
② 選擇 " 使用 C++ 的移動開發 " 開發庫 , 安裝該開發庫 ;
二、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-19Android.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 , 盡量配置的一樣 , 肯定能編譯通過 , 使用其它版本不保證編譯通過 ;
右鍵點擊該解決方案 , 選擇 " 屬性 " 選項 ,
在 NMake 面板中配置幾個命令 :
-
生成命令行 : "Y:\001_DevelopTools\002_Android_SDK\ndk\android-ndk-r14b-windows-x86_64\android-ndk-r14b\build\ndk-build.cmd" NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=Android.mk NDK_APPLICATION_MK=Application.mk
-
"全部重新生成" 命令行 : "Y:\001_DevelopTools\002_Android_SDK\ndk\android-ndk-r14b-windows-x86_64\android-ndk-r14b\build\ndk-build.cmd" NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=Android.mk NDK_APPLICATION_MK=Application.mk -B
-
"清除" 命令行 : "Y:\001_DevelopTools\002_Android_SDK\ndk\android-ndk-r14b-windows-x86_64\android-ndk-r14b\build\ndk-build.cmd" NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=Android.mk NDK_APPLICATION_MK=Application.mk clean
三、編譯 Android 平臺的 cmd 可執行程序
右鍵點擊 解決方案 , 選擇 " 僅用于項目 / 僅生成 remote " 選項 , 即可開始編譯 cmd 可執行程序 ;
編譯結果 :
1>------ 已啟動生成: 項目: remote, 配置: Debug Win32 ------ 1>[x86] Compile++ : cmd <= main.cpp 1>[x86] Compile++ : cmd <= json_reader.cpp 1>[x86] Compile++ : cmd <= json_value.cpp 1>[x86] Compile++ : cmd <= json_writer.cpp 1>[x86] Compile++ : cmd <= tinystr.cpp 1>[x86] Compile++ : cmd <= tinyxml.cpp 1>[x86] Compile++ : cmd <= tinyxmlerror.cpp 1>[x86] Compile++ : cmd <= tinyxmlparser.cpp 1>[x86] Executable : cmd 1>[x86] Install : cmd => ../Debug/x86/cmd ========== 生成: 成功 1 個,失敗 0 個,最新 0 個,跳過 0 個 ==========在 Y:\002_WorkSpace\002_VS\MobileGameModify\Debug\x86 路徑下生成 cmd 可執行程序 , 該程序可以在 Android 平臺執行 ;
總結
以上是生活随笔為你收集整理的【Android 逆向】Android 逆向通用工具开发 ( Android 平台运行的 cmd 程序类型 | Android 平台运行的 cmd 程序编译选项 | 编译 cmd 可执行程序 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Android 逆向】Android
- 下一篇: 【Android 逆向】Android