首页
社区
课程
招聘
[原创]metadata案例分享与游戏菜单制作
发表于: 6天前 801

[原创]metadata案例分享与游戏菜单制作

6天前
801

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是字符串加密函数,引用这个库e95K9s2c8@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");

传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 27
支持
分享
最新回复 (5)
雪    币: 104
活跃值: (7466)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
tql
5天前
0
雪    币: 155
活跃值: (4096)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
学习
5天前
0
雪    币: 5
活跃值: (2105)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
看看
5天前
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
5
为你点赞!
5天前
0
雪    币: 8810
活跃值: (6642)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
感谢分享
5天前
0
游客
登录 | 注册 方可回帖
返回