【修改教学】
1.解压缩后开启明日方舟
2.打開\lib\armeabi-v7a
libil2cpp.so 是重點libil2cpp.so ,相關的遊戲修改教學論壇上很多大家可以去了解一下 3.打開\assets\bin\Data\Managed\Metadata
4.把global-metadata及libil2cpp提取到\Il2CppDumper
5.使用Il2CppDumper得出dump.cs
6.打開dump.cs
7.搜索 public abstract class Entity : BObject, IHotfixable public public float get_atk 相信大家已經看到很多有用的函數但不建議大家改太誇張 8.修改get_atk 這樣修改可逹致秒殺但敵方亦有相同效果 9.解決辨法 搜索public class BObject : VisualObject, IReusableObject public SideType get_side 此處是代表敵人,那我們要調用此處的數以便分別友方及敵人 10.修改 打開Hook\Android-Hooking-Template-master\jni\hook.cpp 修改hook.cpp 如下:
11.解釋 [C++] 纯文本查看 复制代码 int(*orig_get_side)(void* _this);
int hook_get_side(void* _this)
{
return orig_get_side(_this);
}
hook get_side 作用是為了讓hook.cpp能夠識別以進行下一步修改 [C++] 纯文本查看 复制代码 float(*orig_get_atk)(void *_this);
float hook_get_atk(void *_this)
{
int newsjai = orig_get_side(_this);
if (newsjai == 1)
{
return 2 * orig_get_atk(_this);
}
return orig_get_atk(_this) / 3;
}
hook get_atk 進行修改
[C++] 纯文本查看 复制代码 int newsjai = orig_get_side(_this);
if (newsjai == 1) 此處是調用get_side以便分別友方及敵人
[C++] 纯文本查看 复制代码 {
return 2 * orig_get_atk(_this);
}
return orig_get_atk(_this) / 3;
} 第一個return是友方第二個return是敵人 13.生成libhook.so 运行/b]compile.bat
14.MSHookFunction [C++] 纯文本查看 复制代码 }
MSHookFunction((void *)getRealOffset(0x1A30C10), (void *)&hook_get_side, (void **)&orig_get_side);
MSHookFunction((void *)getRealOffset(0x18FFF24), (void *)&hook_get_atk, (void **)&orig_get_atk);
} 1A30C10及18FFF24為get_side及get_atk偏移量如改版則需修改此處
15.注入libhook.so 生成後的libhook.so位於Android-Hooking-Template-master\libs\armeabi-v7a 把libhook.so放於com.hypergryph.arknights-20190802144905\lib\armeabi-v7a
提取Android-Hooking-Template-master\Smali Files 把Smali Files放於com.hypergryph.arknights-20190802144905\smali\com並改名為loadLib
打開com.hypergryph.arknights-20190802144905\smali\com\unity3d\player\UnityPlayerActivity 搜索.method protected onCreate(Landroid/os/Bundle;)V 加入invoke-static {}, Lcom/loadLib/libLoader;->loadLib()V invoke-static 為調用com/loadLib/libLoader
16.必须签名后才能运行否则请使用已ROOT的手机
明日方舟官网:https://ak.hypergryph.com/index
|