欢迎光临散文网 会员登陆 & 注册

Ted's iOS Mod Menu的食用方法

2023-08-08 10:48 作者:phtcloud  | 我要投稿


Ted's iOS Mod Menu

特征:

  • 可定制的用户界面

  • 可定制的菜单和按钮图像图标

  • 4 种类型的开关:

    • 偏移补丁开关

    • 空开关

    • 文本修改

    • 滑块开关

  • 后端偏移补丁程序基于 KittyMemory

    • 不需要原始字节

    • 支持 MSHookMemory

    • 将无限字节写入偏移量

  • 编译时字符串加密

  • 开源菜单

安装:

您可以在此处下载模板:https://github.com/joeyjurjens/iOS-Mod-Menu-Template-for-Theos/tree/master

Mobile设备:

  1. 在makefile第 22 行中,必须设置 SDK 的路径。此菜单已使用来自theos/sdks的“iPhoneOS11.2.sdk”SDK进行了测试

  2. 我在这个项目中使用了initializer_list,iOS 版本没有包含它。您可以在此处下载(raw.githubusercontent.com/joeyjurjens/iOS-Mod-Menu-Template-for-Theos/977e9ff2c626d6b1308eed7e17f1daf0a610e8e9/template/KittyMemory/initializer_list),将其另存为“initializer_list”并将文件复制到:“$THEOS/sdks/iPhoneOS11.2.sdk/usr/include/c++/4.2.1/”

iMac:

  1. 安装 xCode(如果尚未安装)。

  2. 在项目的makefile文件中,将“MOBILE_THEOS=1”更改为“MOBILE_THEOS=0”


菜单设置:

更改菜单图像在Tweak.xm中,您将在“setupMenu”功能下设置菜单。 在这里,您将在菜单下看到两个选项:menuIcon和menuButton,它们需要base64图像字符串。 为了从图像中获取base64字符串,请在此处转换图像:https://www.browserling.com/tools/image-to-base64

建议使用50x50的图像,您可以通过复制标准(在tweak.xm中)base64字符串来获取我的图像样本,并使用此网站显示图片:https://base64.guru/converter/decode/image


设置要被修改的FrameworkName文件您可以在 Tweak.xm 中的函数 setupMenu() 中进行设置。

[menu setFrameworkName:"FrameworkName"];

比如我想修改TestFile.dylib则修改成

[menu setFrameworkName:"TestFile.dylib"];

菜单用法(Demo):

Offsets(基址):

ENCRYPTOFFSET("0x10047FD90")

Hexes(补丁):

ENCRYPTHEX("0x00F0271E0008201EC0035FD6")

C-strings:

ENCRYPT("I am a c-string")

NSStrings:

NSSENCRYPT("Copperplate-Bold")

无开关自动Patch基址(菜单加载后自动修改):

patchOffset(ENCRYPTOFFSET("0x1002DB3C8"), ENCRYPTHEX("0xC0035FD6"));

patchOffset(ENCRYPTOFFSET("0x10020D2D4"), ENCRYPTHEX("0x00008052C0035FD6"));

// You can write as many bytes as you want to an offset

patchOffset(ENCRYPTOFFSET("0x10020D3A8"), ENCRYPTHEX("0x00F0271E0008201EC0035FD6"));

// or  

patchOffset(ENCRYPTOFFSET("0x10020D3A8"), ENCRYPTHEX("00F0271E0008201EC0035FD6"));

// spaces are fine too

patchOffset(ENCRYPTOFFSET("0x10020D3A8"), ENCRYPTHEX("00 F0 27 1E 00 08 20 1E C0 03 5F D6"));


基址修改开关:

 [switches addOffsetSwitch:NSSENCRYPT("One Hit Kill")

    description:NSSENCRYPT("Enemy will die instantly")

    offsets: {

      ENCRYPTOFFSET("0x1001BB2C0"),

      ENCRYPTOFFSET("0x1002CB3B0"),

      ENCRYPTOFFSET("0x1002CB3B8")

    }

    bytes: {

      ENCRYPTHEX("0x00E0BF12C0035FD6"),

      ENCRYPTHEX("0xC0035FD6"),

      ENCRYPTHEX("0x00F0271E0008201EC0035FD6")

    }

  ];

基址修改开关


空开关(没有任何功能的开关):

[switches addSwitch:NSSENCRYPT("Masskill")

  description:NSSENCRYPT("Teleport all enemies to you without them knowing")

]

空开关


文本开关:

[switches addTextfieldSwitch:NSSENCRYPT("Custom Gold")

  description:NSSENCRYPT("Here you can enter your own gold amount")

  inputBorderColor:UIColorFromHex(0xBD0000)

];

文本开关


滑块开关:

[switches addSliderSwitch:NSSENCRYPT("Custom Move Speed")

  description:NSSENCRYPT("Set your custom move speed")

  minimumValue:0

  maximumValue:10

  sliderColor:UIColorFromHex(0xBD0000)

];

滑块开关


检测开关是否开启:

bool isOn = [switches isSwitchOn:NSSENCRYPT("Switch Name Goes Here")];

if(isOn) {

  //Do stuff

}


//Or check directly:

if([switches isSwitchOn:NSSENCRYPT("Switch Name Goes Here")]) {

    // Do stuff

}

进阶用法搭配空开关HOOK函数

在   void setup() {   前插入HOOK代码和检测开关代码

%hook SKPaymentTransaction

  -(long long)transactionState {

    if([switches isSwitchOn:NSSENCRYPT("In Purchase Crack")]) {

      return 1;

    }

    return %orig;

  }

%end

空开关代码

[switches addSwitch:NSSENCRYPT("In Purchase Crack")

  description:NSSENCRYPT("Use To Buy Full DLC")

];

}

获取滑块或文本开关内容:

int userValue = [[switches getValueFromSwitch:NSSENCRYPT("Switch Name Goes Here")] intValue];

float userValue2 = [[switches getValueFromSwitch:NSSENCRYPT("Switch Name Goes Here")] floatValue];











Ted's iOS Mod Menu的食用方法的评论 (共 条)

分享到微博请遵守国家法律