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!

209 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 94
  • 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 shmoo
      The best debugger ever made has returned to iOS with arm64 support! I have spent about five days fixing bugs, adding features, and making this GDB usable. However, I need all the help I can get in fixing bugs. If you find a bug, or see any debug output, *PLEASE* DM me on Twitter @hackedbyshmoo with steps to reproduce so I can add that bug to my list.
       
      Installs to /usr/bin, put your gdbinit in /var/root if you run GDB as root and /var/mobile if you run GDB as mobile.
       
      It is buggy. Please dont get your hopes up. If you get abort trap: 6 when trying to attach, keep trying or use the pid
      if you jailbroke with doubleh3lix this may not work due to issues sending signals over SSH
       
       Bugs destroyed: 
       - SIGINT wasn't being handled correctly. If you tried to interrupt the program, nothing would happen, the GDB prompt wouldn't come back, and you wouldn't be able to type. Fixed by writing my own SIGINT handler 
       - When you detached from a process, a ton of errors would be spit to the screen and it would fail. This no longer happens and detaching works again 
       - You can no longer Ctrl C two times in a row, which would either (a)ruin your debugging session or (b)crash GDB 
       - A broken breakpoint auto-added when attaching that would screw up your debugging session is auto-deleted ("could not insert breakpoint -1") 
       - The inferior's name wasn't being updated correctly. Fixed by calling exec_close whenever you attach to something 
       - No more nasty errors when you kill the debuggee 
       - iOS 10 support by changing DYLD_VERSION_MAX from 14 to 15 
       - You can debug multithreaded programs without GDB crashing. Before, doing anything after a breakpoint hit would cause GDB to crash 
       - You can attach to a process if you give its executable name 
        
       New: 
       - add-aslr-bp: a command to automatically add the ASLR slide to breakpoints. To use, set add-aslr-bp on 
       - add-aslr-set: a command to automatically add the ASLR slide to the expression in the set command. To use, set add-aslr-set on. Since memory addresses already have ASLR accounted for, we need an upper bound to know when to not add the ASLR slide. Use 0x103000000 if you know you aren't going to be modifing memory and only instructions, otherwise, use IDA Pro to find out where main code segment ends (Ctrl+S) 
        
       Notes: 
       - You must install Gawk package from CoolStar’s repo for this gdb to work. Hardware watchpoints will never be supported 
        
       Known bugs: 
       - Rare bug that can be fixed by detaching and reattaching 
       - Spamming c after a breakpoint hits may crash GDB under special circumstances 
       - Very bad lag when scrolling up in the TUI asm window 
        
       TODO: 
       - ascii value of memory shown side by side with the actual memory printed out by the examine command (x) 
       - TUI window that shows memory like Cheat Engine's memory editor 
       
      How do I get it? Uninstall any other GNU Debugger you may have, add my repo: shmoo419.github.io, and install GNU Debugger.
       
      CREDITS:
      - swigger (for arm64 support: https://github.com/swigger/gdb-ios)
      - me (for building, fixing bugs, adding stuff, and making it usable)
    • By DiDA
      It's been a while since our previous template was updated but we're back with the newest version of the custom iOSGods NIC template. Before you're able to use this, you must follow the new theos installation tutorial here. Once theos is set up and working, we can continue!


      What's this?
      This is a tweak/patcher/hack making template which will simplify the creation of new hacks and tweaks for Cydia.


      How do I use it?
      You will first need to install theos using the tutorial linked above. Then download the template below and place it in $THEOS/templates/. Do not extract or anything, just place it as a .tar archive. Once that's done, you can simply run $THEOS/bin/nic.pl and the new iOSGods [x] iOSGods Tweak Patcher v3.x option will appear for you to select and create your new project.


      Features
      Default Tweak.xm content with Code Inject, MS, MSHook examples and helpful links. High resolution images used for the settings. Automatic Popup Code so you won't have to worry about finding the AppDelegate. Automatic Popup Message. Your username will be added to the popup message, preferences & Cydia information page. Root.plist shortcut added to the root of your project folder for easy preferences editing. Ability to easily switch from Tweak to Patcher with just a single line in Makefile. Ability to specify App Name which will be used in the preferences pane and inside the popup. Template now uses the new UIAlertController instead of UIAlertView. vm_writeData which has ARM64 support has been integrated into the template. And a few more tweaks and adjustments to make the template easy to use!

      Download

      Hidden Content
      React or reply to this topic to see the hidden content. More info  
      Credits
      @shmoo for his help with the popup!
      @Razzile for writeData!
       
      Other useful topics and templates
      https://iosgods.com/topic/51865-nic-template-settings-based-mod-menu/
      https://iosgods.com/topic/20831-update-v11template-custom-nic-mshook-patcherpreferencebundle-template/
      https://iosgods.com/topic/22718-mshook-tweakpatcherfunction-tweakpatcher-withwithout-psedittextcellpsslidercell-generator-online/
      https://iosgods.com/topic/24138-code-inject-generator-online-tweakxm-preferencesplist/
      Please search iOSGods if you have any questions or issues. If the search results have nothing regarding your question or issue, create a new topic in Help & Support section.
       
    • By Chrizk0
      Updated template: 
       
      You can still use the content on this topic as examples.
       

      Hey guys! Today i'm bringing you a Custom NIC Patcher for MSHooking, MSHook with Prefs may be more complicated then just making a simple Tweak. This is why @DiDA & I made the template for you guys that are in need.
       
      What does this do?
       
      You know how you have to make a tweak project and then cd into that folder and make a subproject of the tweak project to make it into a patcher? This template makes it so all you have to do is press number 1, type in your info and your patcher project folder will be created.
       
      Why is it useful?
       
      It's simple, painless, & fast, you don't have to set up all files manually.
       
      Where to put:
       
      After downloaded place the NIC Template in /var/theos/templates/iphone (expecting you have theos on your device).
       
      How to use it?
       
      Open up terminal, type in:
      /var/theos/bin/nic.pl And select:
      iOSGods MSHook Patcher v1.1 So basically this template is based off the other ones in the Tools section but content is changed for MSHook type of hacking.
       
      Thats all, enjoy!
       
       
      Download link and content:
       
      Hidden Content
      React or reply to this topic to see the hidden content. More info
       
       
      You can also use our online MSHook Generator to easily generate the Tweak.xm and Preferences Plist code.
       
      https://iosgods.com/topic/22718-mshook-tweakpatcherfunction-tweakpatcher-withwithout-psedittextcellpsslidercell-generator-online/
    • By Archangel04
      Hey guys, 
      Today I'm gonna show you guys a easy way to make mod menus without going into UI elements. This works from Settings and any changes you make there apply to the hack WITHOUT restarting the app being hacked. The download link is available for those who want to use the template directly.
      Requirements:
      -Basic knowledge of hacking, hooking
      -THEOS (preferably built from Github)
      Download link:

      Hidden Content
      React or reply to this topic to see the hidden content. More info How-To:

      Hidden Content
      React or reply to this topic to see the hidden content. More info Credits : @Archangel04
    • By DiDA
      Updated template: 
       

       
      Made this for myself but someone requested it also and I thought I'd share this with everyone else who wants it.
       
      Tweak.xm content:
      /* Code Injection Example More CSCI examples can be found here: http://iosgods.com/forum/48-coding-center/ */ #include "writeData.h" %ctor { writeData(0xOFFSET, 0xHACKEDHEX); writeData(0x15BE04, 0x78708AE5); } /* Normal Tweak Example Visit this thread for more information: http://iosgods.com/topic/831-tutorial-how-to-hack-using-mobile-substrate-method-hooking/ */ %hook Coins - (int)have { return 999999; //Return any amount } %end /* MSHook Tweak Example Read this thread for more help: http://iosgods.com/topic/4295-tutorial-how-to-hack-with-mshook-new-way/ */ int getMoney() { return 9999; } %ctor{ MSHookFunction(((void*)MSFindSymbol(NULL, "__ZN10Characters5Money8GetValueEv")),(void*)getMoney, NULL); } /* Popup with a link Varieties of a UIAlertView Popup can be found here: http://iosgods.com/topic/13988-varieties-of-uialertview-types-to-use-in-your-tweaks-patchers/ */ %hook AppDelegate // Change this with your Application's Delegate. AppController, UnityAppController, GameDelegate etc. - (BOOL)application:(id)fp8 didFinishLaunchingWithOptions:(id)fp12 { // Popup only once at each launch of the app. UIAlertView *igcredits = [[UIAlertView alloc] initWithTitle:@"@@PROJECTNAME@@ Cheats" message:@"\n@@PROJECTNAME@@ Cheats by @@[member='User']@@ for iOSGods.com" delegate:self cancelButtonTitle:@"Thanks" otherButtonTitles:@"Visit Us", nil]; [igcredits show]; [igcredits release]; return %orig(); } %new -(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { NSString *button = [alertView buttonTitleAtIndex:buttonIndex]; if([button isEqualToString:@"Visit Us"]) { [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://iosgods.com/"]]; } } %end How to use/install:
      1. Download the template here:
       

      Hidden Content
      React or reply to this topic to see the hidden content. More info
       
      2. Send the iosgods_tweak.nic.tar to /var/theos/templates/iphone/
       
      3. Start a new project and select iOSGods Tweak v1.3 from the options.
       
      Done! Enjoy!
  • 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.