ON00dev/ApexCombatMod
GitHub: ON00dev/ApexCombatMod
针对 Unity Il2Cpp 手游 Apex Combat Online 的 Android 逆向修改框架,涵盖内存 Hook、Native Patch、浮窗菜单和自动化 APK 重打包全流程。
Stars: 0 | Forks: 0
# ApexCombatMod
**适用于 Apex Combat Online(原名 Air Combat Online)的 Android Mod。**
**语言:** 巴西葡萄牙语
## 项目结构
```
ApexCombatMod/
├── app/src/main/java/com/on00dev/apexcombatmod/ # Código Java do mod
│ ├── FloatingModMenuService.java # Menu flutuante (UI)
│ ├── MainActivity.java # Activity principal
│ ├── ModLoader.java # Carregador do mod
│ └── Native.java # Interface JNI
├── app/src/main/cpp/ # Código nativo (C++)
│ └── native-lib.cpp # Hooks e patches
├── assets_decompiled/ # Assets descompilados do jogo
├── config_decompiled/ # Configurações descompiladas
├── base_decompiled/ # APK base do jogo descompilado
├── original_splits/ # APK original do jogo
├── extracted/ # Arquivos extraídos (lua, etc)
├── apk_final/ # APK final gerado
├── dump.cs # Dump de memória para análise
├── build_final.ps1 # Script de build final
└── cleanup_workspace.ps1 # Script de limpeza
```
## 构建
### Debug 构建(快速)
```
.\gradlew.bat assembleDebug
```
生成的 APK 位于:`app/build/outputs/apk/debug/app-debug.apk`
### 最终构建(合并 + 签名)
生成包含已合并 Mod 的完整游戏 APK。
```
.\build_final.ps1
```
**输出:** `apk_final/ApexCombat-Mod-VXX-Final.apk`
该脚本会:
1. 编译 Mod(release)
2. 反编译 Mod APK 和基础 APK
3. 将 Mod 的 smali 代码复制到基础包中
4. 移除游戏许可证
5. 使用 apktool 重新打包
6. 合并 assets/libs
7. 使用 debug keystore 签名
## 清理工作区
删除生成的文件、临时构建,并仅保留必要文件。
```
# 普通模式 (全部移除)
.\cleanup_workspace.ps1
# DryRun (显示将被移除的内容)
.\cleanup_workspace.ps1 -DryRun
# 保留超过 1 个最终 APK
.\cleanup_workspace.ps1 -KeepFinalCount 3
```
## 修改位置
### 添加/修改 Hooks 和 Patches
**文件:** `app/src/main/cpp/native-lib.cpp`
```
// --- OFFSETS ---
// Procure "OFFSET_" para encontrar os endereços de memória
// --- HOOKS ---
// Procure "hook_" para modificar o comportamento das funções hooked
// --- MEMORY PATCHES ---
// Procure "MemoryPatch" para adicionar novos patches
// Exemplo:
MemoryPatch patchNovo("NovoPatch", 0x123456);
patchNovo.ApplyFloat1(libIl2CppBase); // Retorna 1.0f
patchNovo.ApplyTrue(libIl2CppBase); // Retorna true
patchNovo.Apply(libIl2CppBase); // RET (void)
```
### 为菜单添加功能
**文件:** `app/src/main/java/com/on00dev/apexcombatmod/FloatingModMenuService.java`
```
// Adicionar novo switch:
Switch swNovo = createSwitch("Nova Função");
swNovo.setOnCheckedChangeListener((buttonView, isChecked) -> {
Native.SetNovaFuncao(isChecked); // Chama função nativa
});
menuLayout.addView(swNovo);
```
**文件:** `app/src/main/java/com/on00dev/apexcombatmod/Native.java`
添加新的 JNI 方法:
```
public static native void SetNovaFuncao(boolean isEnabled);
```
**文件:** `app/src/main/cpp/native-lib.cpp`
实现原生函数:
```
extern "C" JNIEXPORT void JNICALL
Java_com_on00dev_apexcombatmod_Native_SetNovaFuncao(JNIEnv *env, jclass type, jboolean isEnabled) {
// Implemente a lógica aqui
}
```
## 反编译文件夹
### 文件下载
从 [release](https://github.com/ON00dev/ApexCombatMod/releases/tag/data_workspace) 下载 `.zip` 文件并解压到项目根目录:
```
# 解压后,结构应为:
# ApexCombatMod/
# ├── assets_decompiled/
# ├── config_decompiled/
# ├── base_decompiled/
# ├── original_splits/
# ├── apk_final/
# └── extracted/
```
### 文件夹说明
| 文件夹 | 说明 |
|-------|------|
| `assets_decompiled/` | APK 资源(图像、文本、配置) |
| `config_decompiled/` | lib/ 配置(原生库) |
| `base_decompiled/` | 反编译后的基础游戏 APK |
| `original_splits/` | 原始游戏 APK(split APKs) |
| `extracted/` | 提取的文件(Lua 脚本等) |
这些文件夹被 `build_final.ps1` 脚本用于将 Mod 与游戏合并。
## 最终 APK
最终的 APK 位于:
```
apk_final/ApexCombat-Mod-VXX-Final.apk
```
自动版本控制:每次构建时,版本号自动递增(V48, V49, V50...)。
## 用于分析的 Dump
**文件:** `dump.cs`
包含用于逆向分析的游戏类和方法 dump。通过 Il2CppDumper 或类似工具生成。
要更新 dump:
1. 从 APK 中提取 `libil2cpp.so` 和 `global-metadata.dat`
2. 运行 Il2CppDumper
3. 替换生成的 `dump.cs`
## 环境要求
- Android Studio
- Android NDK
- JDK 11+
- Python(用于 build_final.ps1)
- Apktool(已安装并在 PATH 环境变量中)
- Android SDK Build Tools
## 许可证
[MIT](/LICENSE)
标签:Air Combat Online, AI合规, Apex Combat Online, Apktool, APK修改, C++, CSV导出, Hook技术, IL2CPP, JNI, JS文件枚举, Mod菜单, OpenCanary, PowerShell脚本, Smali, Unity游戏, 云资产清单, 内存修改, 去授权验证, 外挂开发, 安卓修改, 悬浮窗, 数据擦除, 游戏作弊, 游戏破解, 移动应用安全, 空战游戏, 脚本研究, 逆向工程, 重打包, 飞行射击游戏