1.分享第一篇文章中global-metadata加密的4个案例(附件下载地址)
2.metadata版本39无法dump的问题
3.手游Mod菜单制作如何制作
由于Il2CppDumper的作者没有更新,很多人碰到metadata版本为39时无法dump。
观察39版本的metadata可以发现,整个头部结构体是有很大变化的。
但我们仍可以使用Zygisk-Il2CppDumper进行dump。
然而每次都要编译项目安装插件实在麻烦。这里分享一个工具。
Il2CppInspectorRedux
简介中我们可以看见支持的版本信息,因此大家可以尝试使用这个工具,这里只做一个简单的使用介绍。

勾选指定的结果导出即可。
Android-Mod-Menu
如果是第一次接触,对于如何制作游戏菜单肯定是毫无头绪或是不知从何下手。
直接拿开源的项目学习和使用是最方便。
这里也简单讲解一下。
如需修改菜单UI界面,如配色,字体大小样式等,在Menu.java文件中修改
3个hook库,分别对应64位、32位、内存读写修改
And64InlineHook
Substrate
KittyMemory
main.cpp
菜单的命名、按钮、开关、滑条和绑定的数值可以通过这里直接修改,通过下划线断开。
例如Toggle_No death 设置一个开关 名字为No death 默认值为0。
hook写法,4个参数,(目标so,偏移,rep函数,ori函数)
OBFUSCATE是字符串加密函数,引用这个库835K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6S2k6r3q4E0P5h3q4^5L8r3g2&6i4K6u0r3e0$3u0X3N6i4y4U0j5i4c8W2i4@1g2r3i4@1u0o6i4K6S2o6i4@1f1@1i4@1t1^5i4K6R3H3i4@1f1@1i4@1t1^5i4@1q4m8i4@1f1#2i4@1p5@1i4@1t1@1i4@1f1$3i4K6V1$3i4K6R3%4i4@1f1@1i4@1u0n7i4@1t1$3i4@1f1#2i4K6S2p5i4@1t1K6i4@1f1#2i4K6S2r3i4@1q4r3i4@1g2r3i4@1u0o6i4K6S2o6i4@1f1#2i4K6S2p5i4K6R3I4i4@1f1#2i4K6R3^5i4K6R3$3i4@1f1$3i4K6V1$3i4@1t1&6i4@1f1@1i4@1u0q4i4@1u0r3i4@1f1K6i4K6R3H3i4K6R3J5
如需修改mod图标和其余界面内容修改Menu(Menu.cpp\Setup.cpp)即可,这里不多做介绍了。
public static final String TAG = "Mod_Menu"; //Tag for logcat
int TEXT_COLOR = Color.parseColor("#82CAFD");
int TEXT_COLOR_2 = Color.parseColor("#FFFFFF");
int BTN_COLOR = Color.parseColor("#1C262D");
int MENU_BG_COLOR = Color.parseColor("#EE1C2A35"); //#AARRGGBB
int MENU_FEATURE_BG_COLOR = Color.parseColor("#DD141C22"); //#AARRGGBB
int MENU_WIDTH = 290;
int MENU_HEIGHT = 210;
int POS_X = 0;
int POS_Y = 100;
float MENU_CORNER = 4f;
int ICON_SIZE = 45; //Change both width and height of image
float ICON_ALPHA = 0.7f; //Transparent
int ToggleON = Color.GREEN;
int ToggleOFF = Color.RED;
int BtnON = Color.parseColor("#1b5e20");
int BtnOFF = Color.parseColor("#7f0000");
int CategoryBG = Color.parseColor("#2F3D4C");
int SeekBarColor = Color.parseColor("#80CBC4");
int SeekBarProgressColor = Color.parseColor("#80CBC4");
int CheckBoxColor = Color.parseColor("#80CBC4");
int RadioColor = Color.parseColor("#FFFFFF");
int CollapseColor = Color.parseColor("#232F2C");
String NumberTxtColor = "#41c300";
public static final String TAG = "Mod_Menu"; //Tag for logcat
int TEXT_COLOR = Color.parseColor("#82CAFD");
int TEXT_COLOR_2 = Color.parseColor("#FFFFFF");
int BTN_COLOR = Color.parseColor("#1C262D");
int MENU_BG_COLOR = Color.parseColor("#EE1C2A35"); //#AARRGGBB
int MENU_FEATURE_BG_COLOR = Color.parseColor("#DD141C22"); //#AARRGGBB
int MENU_WIDTH = 290;
int MENU_HEIGHT = 210;
int POS_X = 0;
int POS_Y = 100;
float MENU_CORNER = 4f;
int ICON_SIZE = 45; //Change both width and height of image
float ICON_ALPHA = 0.7f; //Transparent
int ToggleON = Color.GREEN;
int ToggleOFF = Color.RED;
int BtnON = Color.parseColor("#1b5e20");
int BtnOFF = Color.parseColor("#7f0000");
int CategoryBG = Color.parseColor("#2F3D4C");
int SeekBarColor = Color.parseColor("#80CBC4");
int SeekBarProgressColor = Color.parseColor("#80CBC4");
int CheckBoxColor = Color.parseColor("#80CBC4");
int RadioColor = Color.parseColor("#FFFFFF");
[培训]Windows内核深度攻防:从Hook技术到Rootkit实战!