Jump to content
  • Sky
  • Mint
  • Azure
  • Indigo
  • Blueberry
  • Blackcurrant
  • Watermelon
  • Strawberry
  • Pomegranate
  • Ruby Red
  • Orange
  • Banana
  • Apple
  • Emerald
  • Teal
  • Chocolate
  • Slate
  • Midnight
  • Maastricht
  • Charcoal
  • Matte Black
shmoo

Tool [NIC TEMPLATE] Mod Menu Theos Template! Easily Create Your Own iGMMs!

206 posts in this topic

Recommended Posts

Do not use this template for your own paid hacks. It's not a matter of me being stingy, it's a matter of respect. I spent two weeks putting a lot of effort into making this as best as I could and I do not want you to profit partly off of my effort. Thank you.

 

After around two weeks of hard work, I have finally finished my mod menu template. This is easily my best work and I hope you guys love it :D

 

This is a theos template that you can use to create your own mod menu. All the dirty work is handled for you (preferences, creating separate buttons, applying and reversing hacks, etc), so your job is just to give the menu a title, subtitle, theme color, font, and your hacks.

 

Here's just some of what my template has to offer: 

- Beautiful UI!

- Beautiful animations.

- You can specify a title, subtitle, font, and theme color.

- Portrait and landscape games are both supported.

- No need to worry about handling preferences.

- Three different hook types: a regular hook (no user input), a hook with a slider, and a hook with a textfield.

- Regular switches? Hell no! Instead, a beautiful custom button that ties perfectly with the menu is used.

- No Objective C experience needed.

- MSHookFunction and writeData calls are handled for you.

- Much, much more!

 

To open the menu, you double tap the button that shows up in the game. Drag the top part of menu to drag it.

 

First you'll have to "enable" c++ for your theos. This is not hard. It's just copying and pasting :p

Steps to enable c++ on your theos:

Spoiler

1. In iFile, navigate to /var/theos/sdks/your sdk/usr/include/c++/4.2.1/.

2. Copy every single thing in that folder.

3. Navigate to /var/theos/include/ and paste everything that was copied there. Ninety percent done!

4. Download this file: https://www.dropbox.com/s/0a7pgi8ri1r1tss/initializer_list?dl=0

5. Take that file and put it in /var/theos/include/

That's it! You're ready to use the template :D

 

Download link for the template:

Hidden Content

    React or reply to this topic to see the hidden content. More info

Place it in /var/theos/templates/ :)

 

From here I will be explaining how to actually set up your menu. Working menu code is provided in a file called README.txt when you create a new project with this template, so if you feel that you are able to figure it out with my code, feel free to skip this and get right to making your menu :D
 

To add normal hacks:

Spoiler

To add a normal hack to the menu, all you have to do is write line of code:


addHack(@"Your hack name", @"A description of this hack", font, {your offsets here}, {your hacked hexes here}, {your original hexes here});

Some examples:

My offset is 0x340e1a, my hacked hex is 0x7047, my original hex is 0xf0b5.


addHack(@"Infinite Ammo", @"This hack will keep your ammo from decreasing.", font, {0x340e1a}, {0x7047}, {0xf0b5});

 

By the way, any amount of offsets can be added for one hack, not just one offset. So if you have a hack that requires more than one offset, just separate them with commas.

For example, my offsets are 0x340e1a, 0x440e1a, and 0x540e1a. My hacked hexes are 0x7047, 0xc046, and 0x0228, and my original hexes are 0xf0b5, 0x0120, and 0x2228, respectively.


addHack(@"God Mode", @"This hack will prevent you from taking damage and losing health.", font, {0x340e1a, 0x440e1a, 0x540e1a}, {0x7047, 0xc046, 0x0228}, {0xf0b5, 0x0120, 0x2228});

 

 

To add normal hooks: 

Spoiler

To add a normal hook (with no slider or textfield), that can be toggled on and off, use this code:


addHook(@"Hook name", @"Description of the hook", font, the address of the function you are hooking, the name of the function you are using for the hook, the name of the function you aren't using for the hook)

For example, if I was hooking a field of view function, I would normally define the two functions that I would be using for that hook like this:


	float (*getFovOrig)(void *_this);
	 
	float _getFovHooked(void *_this){
	//do stuff
	}

 

The resulting addHook call would look like this:


addHook(@"90 FOV", @"This hack will set your game's FOV to 90.", font, 0xc392da, (void *)_getFovHooked, (void *)getFovOrig);

 

To see if the user wants the hook on or not, use this line of code:


bool isOn = [Hook getHookOnForHook:@"hook name here"];

 

 

To add a hook with a slider:

Spoiler

To add a hook with a slider, use this function:


addSliderHook(@"Hook name", @"Description of the hook", font, lower bound for slider, upper bound for slider, function address, the name of the function you are using for the hook, the name of the function that you aren't using for the hook);

Use this line of code to retrieve the slider's value:


float val = [SliderHook getSliderValueForHook:@"hook name here"];

Let's say I wanted to make a hook with a slider that enabled the user to choose their FOV from 60 to 150. I would use this code:


	float (*getFovOrig)(void *_this);
	 
	float _getFovHooked(void *_this){
	return [SliderHook getSliderValueForHook:@"Field of view slider"];
	}
	 
	addSliderHook(@"Field of view slider", @"Use this slider to adjust your FOV from 60 to 150.", font, 60, 150, 0xc392da, (void *)_getFovHooked, (void *)getFovOrig);

 

 

To add a hook with a textfield:

Spoiler

Finally, to add a hook with textfield, use this function:


addTextfieldHook(@"Hook name", @"Description of hook", font, address of function that you are hooking, the name of the function you are using for the hook, the name of the function you aren't using for the hook);

To get the value from the textfield, you'll have to use one of these methods based on what your hooked function return type is:


	int val = [[TextfieldHook getTextfieldValueForHook:@"hook name here"] intValue];
	float val = [[TextfieldHook getTextfieldValueForHook:@"hook name here"] floatValue];

 

If I wanted to add a textfield that allowed the user to input their FOV, I would write this line of code:


addTextfieldHook(@"FOV Textfield", @"Input the value you want for your FOV.", font, 0xc392da, (void *)_getFovHooked, (void *)getFovOrig);

 

 

And the hooked functions would look like this:


	float (*getFovOrig)(void *_this);
	 
	float _getFovHooked(void *_this){
	if([TextfieldHook getTextfieldValueForHook:@"FOV Textfield"] != nil){ //the textfield will be empty on first run, and we don't want to return a nil value
	return [[TextfieldHook getTextfieldValueForHook:@"FOV Textfield"] floatValue];
	}
	 
	return getFovOrig(_this);
	}

 

 

 

NOTICE!

Always add (void *) to the beginning of the last two parameters if you are adding hooks. This is called casting, don't worry about it. Just know that it is needed.

 

Here is what your mod menu will generally look like if you choose green as your theme color and Copperplate-Bold as your font:

Credits:

- me

- @DiDA (for animation ideas!)

Edited by shmoo
  • Like 92
  • Thanks 16
  • Haha 5
  • Upvote 170
  • Agree 9
  • Informative 3
  • Winner 8

Share this post


Link to post
Share on other sites

This is great! :)

Everyone else can leave their suggestions and ideas on this topic so we can further improve this iGMM. :)

  • Upvote 4

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By RamL BuTT
      UPDATE/DOWNGRADE TO ANY SIGNED iOS VERSION EASILY! NO ITUNES NEEDED | iAnyGo  
      iAnyGo offers one-click solutions to uninstall and install all iOS system (including the latest iOS 11) to complete iOS update and downgrade without iTunes.
      Link

      Hidden Content
      React or reply to this topic to see the hidden content. More info .........
       
       
       
       
    • By shmoo
      Taken from reddit

      This is the version of uncrypt that works with iOS 11. For iOS 10 and below, use https://github.com/shmoo419/uncrypt or one of the many other alternatives.
      As someone who likes to reverse engineer and mod things, I needed a way to decrypt binaries when Electra1131 released. The version of my tool I linked above does not work on iOS 11 because the kernel kills "untrusted binaries", which causes a mountain of problems. So I made this. Why did I make this? I wanted to get familiar with the mach-o file format and figured other people would find it useful.
      I know BFDecrypt is a thing, but I don't like how it dumps the entire IPA because for my purposes I only need the binary. So, as you can guess, my tool only dumps the binary. I also do not want to promote piracy, so the cryptid is not flipped. This tool is intended for research purposes only. If this doesn't suit your needs, use another tool.
      uncrypt11 is in BETA. If you encounter any problems, please open an issue on github.
      To get it, add my repo: http://shmoo419.github.io/ and install uncrypt11.
      To use: /electra/inject_criticald pidofapphere /Library/MobileSubstrate/DynamicLibraries/uncrypt11.dylib
      See the source here: https://github.com/shmoo419/uncrypt11
      Enjoy!
    • By nkodder
      Hidden Content
      React or reply to this topic to see the hidden content. More info  **work some device**
      for ios 8-10.3.3 not 11
      ver 7.0.1 Now ios8-9
      Thank you for Coffee1$ 
      **Beta test v7.5.1 for ios 10xx soon
      test ios 10.2.1 work
      Credit me
    • By Zimon
      AppInfo.py
      Get information about all your installed applications, in seconds.
       
      Information extracted:
      Application's Version Application's Minimum iOS Application's Binary Name Application's Bundle Identifier Application's Directory  
      You can now copy an applications bundle identifier directly to your iOS clipboard using --bundle-id or the shortcut -b. Thanks to @ggAyMe for the suggestion!
      You can now get a list of all keys in an application's Info.plist and extract the value of each one of those keys using --get-all (-ga) and --get-key (-g)
      You can now modify all the keys in an application's Info.plist using --modify-key (-m)
      .gif: (not available, I have to make a new one...)
       
      Usage: python AppInfo.py [-h] -l, --list List all installed applications. -a, --all Print information of all installed applications. -i, --info Print information of specified application. -b, --bundle-id Copy the specified application's Bundle Identifier to your clipboard. -p, --patch-ios Modify the specified application's MinimumOSVersion to specified iOS. -h, --help Print this message.  
      Downloading & using it:
      Download this file and place it any directory in your iDevice.
      Then 'CD' into that directory and use it by running the command in your terminal.
      python AppInfo.py  
      Note: Since it is a python file, it is required to have Python installed on your iDevice.
      A tutorial on how to install it can be found here .
       
      The file linked will automatically update as I update the code on GitHub
      Got any suggestions? Leave them in the replies below, or PM me.
       
    • By DeathScripts
      Saliens is the new Steam Summer Sales minigames where you fight in a sort of tower defense style to conquer planets for your steam group.
      If you are interested in leveling up faster in the game and completing the badge before the minigame ends or just want to boost the presence of your group here is the link to xPaw's script on Github, tutorial included.

      Hidden Content
      React or reply to this topic to see the hidden content. More info  
      All credit goes to xPaw and the community working on this Github project
  • Recently Browsing   0 members

    No registered users viewing this page.


    • Administrator |
    • Global Moderator  |
    • Moderator  |
    • ViP Plus |
    • ViP |
    • Cheater  |
    • Modder  |
    • Novice Cheater |
    • Rookie Modder |
    • Contributor |
    • Senior Member |
    • Member |
×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.