仓库地址:https://github.com/cokkeijigen/amatsutsumi_android
游戏详细:https://vndb.org/v18852 https://vndb.org/r100211
使用的库:https://github.com/jmpews/Dobby
所需工具:Android Studio MT管理器 RxCMVS
该项目编译后的
apk
内包含arm64-v8a
,armeabi-v7a
,x86
,x86_64
版本的.so
文件,主要功能为让游戏支持GBK编码文本,需要手动修改游戏apk让其加载。主要实现原理不难,hook游戏函数
mbstowcs_one
和ApiSjisCheck
即可。static auto call_type mbstowcs_one_hook(uint16_t chars) -> wchar_t { auto u16char { gbk2utf16::query((chars & 0xFF) << 8 | (chars >> 8)) }; if(u16char != 0xFFFF) { return u16char; } return hooker::call<mbstowcs_one_hook>(chars); } static auto call_type api_sjis_check_hook(uint8_t achar) -> int { return static_cast<int>(achar > 0x7F); }
完整代码:native-lib.cpp
0x01 如何让游戏加载libamatsutsumihook.so
首先使用Android Studio
编译成apk
,然后使用MT管理器
打开我们编译好的apk
中dex
,来到Amatsutsumi
类中,将loadLibrary
相关的smali
代码复制。
接着打开游戏的游戏
apk
中的dex
,找到amatsutsumi
类,将前面复制的代码粘贴进去。
接着将我们自己编译的
apk
中的lib
整个文件夹添加游戏的apk
中
最后使用
MT管理器
重新签名游戏apk
即可。