Jump to content

How can i use on off with mshookfunction


z2x22

4 posts in this topic

Recommended Posts

Posted

this is my tweak code 

 

#include "Macros.h"

BOOL mofeed = true;


/*****************************/
// Please see sample.xm for sample menu code.

// title of your menu
static NSString *const title = @""; 

// who made the hack?
static NSString *const credits = @"";

// what font do you want the text to be? don't put anything for the default font
static NSString *const font = @"";

// should the menu have a blurred background? true or false
// FYI: this won't always look pretty
static const bool blur = true;

// blur style
// you MUST pick from these three: UIBlurEffectStyleExtraLight, UIBlurEffectStyleLight, or UIBlurEffectStyleDark
// *** If you opted for no blur background, this is ignored. However, you still need to fill it in. ***
static const UIBlurEffectStyle blurStyle = UIBlurEffectStyleDark;

// A complete list of fonts can be found here: http://iosfonts.com/
/******************************/


%hook UnityAppController


- (void)applicationDidBecomeActive:(id)arg0 {

    /* For iOS 11 compatibility, the theme color must be here. */
    /* The overall color for the menu and the button. */
    /* If you want a custom color, use rgb(color code) */
    /* Use rgb(arc4random_uniform(0xFFFFFF)) for a random color each launch. */
    UIColor *themeColor = rgb(arc4random_uniform(0xFFFFFF));

    UIWindow *main = [UIApplication sharedApplication].keyWindow.rootViewController.view;

    UIButton *openButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    openButton.frame = CGRectMake((main.frame.size.width/2)-15, (main.frame.size.height/2)+75, 30, 30);
    openButton.backgroundColor = [UIColor clearColor];
    openButton.layer.cornerRadius = 16;
    openButton.layer.borderWidth = 2;
    openButton.layer.borderColor = themeColor.CGColor;
    [openButton addTarget:self action:@selector(wasDragged:withEvent:) 
    forControlEvents:UIControlEventTouchDragInside];
    [openButton addTarget:self action:@selector(showMenu) 
    forControlEvents:UIControlEventTouchDownRepeat];

    if(!buttonAdded){
        timer(5){
            UIWindow *main = [UIApplication sharedApplication].keyWindow.rootViewController.view;
            menu = [[ModMenu alloc] initWithTitle:title credits:credits fontName:font theme:themeColor blur:blur blurStyle:blurStyle];

            /*
            Add features below this comment. Feel free to delete this comment if you're comfortable with how this menu works.

            Things are added to the menu in the order you have added them.

            A Hack is a switch that contains offsets, hacked hexes, and original hexes. Straightforward.
            To create one, call addHack.
            addHack is called as follows: addHack(@"Hack Name", @"The description of your hack", themeColor, {offsets}, {hacked hexes}, {original hexes});
            For example:
            addHack(@"Infinite Ammo", @"Ammo doesn't run out.", themeColor, {0x1001B292A}, {0xC0035FD6}, {0xD213AEB5});
            You can also have multiple offsets, hacked hexes, and original hexes. There's no limit to the number of offsets you can have! For example:
            addHack(@"No Recoil", @"No recoil prevents any recoil from being applied when you shoot.", themeColor, {0x356a7c, 0x110f0a}, {0x7047, 0x7047}, {0xf0b5, 0xf0b5});
            
            A Hook is a switch that used to hook a function and apply a feature. This doesn't make much sense because you cannot "unhook" a function if
            the user wants the feature off. It currently serves no purpose except for backward compatibility. All it does is turn on or off now.

            A SliderHook is a slider that can be customized to have a minimum and maximum value.
            Good for hooking a function and returning user-specified values. To create one, call addSliderHook.
            addSliderHook is called as follows: addSliderHook(@"Hack Name", @"Description of your hack", themeColor, initial value, minimum value, maximum value);
            For example:
            addSliderHook(@"Adjust Field of View", @"Adjust your field of view.", themeColor, 0, 100, 50);
            To get the value of a SliderHook:
            float value = [SliderHook getSliderValueForHook:@"hack name here"];
            int value = (int)[SliderHook getSliderValueForHook:@"hack name here"];

            A TextfieldHook is a textfield. Again, good for hooking a function and returning user-specified values.
            To create one, call addTextfieldHook.
            addTextfieldHook is called as follows: addTextfieldHook(@"Hack name", @"Description of your hack", themeColor);
            For example:
            addTextfieldHook(@"Set Gems", @"Set your gem amount.", themeColor);
            To get the value of a TextfieldHook:
            NSString *value = [TextfieldHook getTextfieldValueForHook:@"hack name here"];
            float value = [[TextfieldHook getTextfieldValueForHook:@"hack name here"] floatValue];
            int value = [[TextfieldHook getTextfieldValueForHook:@"hack name here"] intValue];

            A Switch does nothing but turn on or off. Useful when you are in a hooked function and need to know when to call a function or mod an instance variable.
            Since it doesn't do anything but turn on or off, it is essentially the same thing as a Hook.
            To create one, call addSwitch.
            addSwitch is called as follows:
            addSwitch(@"Hack name", @"Description of your hack", themeColor);
            For example:
            addSwitch(@"Kill Everyone", @"Kill everyone in the lobby", themeColor);
            To test whether or not a Switch is on:
            bool on = [Switch getSwitchOnForSwitch:@"hack name here"];

            If you want to use writeData in your Tweak.xm, now you can! Call writeData like you normally would.
            Call writeData after the menu has been created. If you use it where you add features, you'll be fine.

            Handle hooking with the HOOK and HOOK_NO_ORIG macros. I decided to let you guys handle hooking because
            it is too troublesome to make sure I handle cases where you guys pass parameters incorrectly.

            If I wanted to hook a function called LocalPlayer::Update at 0x1001B762A with a pointer to the original function, I would do this:
            HOOK(0x1001B762A, _LocalPlayer_Update, LocalPlayer_Update);

            Where _LocalPlayer_Update is the function you write, and LocalPlayer_Update is the pointer to the original function.

            You can use HOOK_NO_ORIG if you don't need the pointer to the original function:
            HOOK_NO_ORIG(0x1001B762A, _LocalPlayer_Update);

            If that is too confusing, you can always just use MSHookFunction. HOOK and HOOK_NO_ORIG just wrap MSHookFunction in a cleaner call.
            */

MSHookFunction((void *)getRealOffset(0x101196238), (void *)_PlayerMovement_Update, (void **)&PlayerMovement_Update);


            // add features


addSwitch(@"test", @"Kill everyone in the lobby", themeColor);
            
            mofeed = [Switch getSwitchOnForSwitch:@"test"];

            [main addSubview:openButton];
            [main addSubview:menu];



            buttonAdded = true;
        });




    }

    %orig;
}

void (* PlayerMovement_Update)(void *PlayerMovement);
void _PlayerMovement_Update(void *PlayerMovement) {

*(float *)((uint64_t)PlayerMovement + 0x48) = 100.0f;
*(float *)((uint64_t)PlayerMovement + 0x78) = 100.0f;
*(float *)((uint64_t)PlayerMovement + 0x80) = 0.0f;
*(float *)((uint64_t)PlayerMovement + 0x74) = 16.0f;
PlayerMovement_Update(PlayerMovement);
}

%new
- (void)showMenu {
    [menu show];
}

%new
- (void)wasDragged:(UIButton *)button withEvent:(UIEvent *)event
{
    UITouch *touch = [[event touchesForView:button] anyObject];

    CGPoint previousLocation = [touch previousLocationInView:button];
    CGPoint location = [touch locationInView:button];
    CGFloat delta_x = location.x - previousLocation.x;
    CGFloat delta_y = location.y - previousLocation.y;

    button.center = CGPointMake(button.center.x + delta_x, button.center.y + delta_y);
}
%end

%ctor {
MSHookFunction((void *)getRealOffset(0x101196238), (void *)_PlayerMovement_Update, (void **)&PlayerMovement_Update);

}
void addHack(NSString *name, NSString *description, UIColor *theme, std::initializer_list<uint64_t> offsets, std::initializer_list<uint64_t> hackedHexes, std::initializer_list<uint64_t> originalHexes){
    if(menu == nil)
        return;
    
    std::vector<uint64_t> offsetVector;
    std::vector<uint64_t> hackedHexVector;
    std::vector<uint64_t> originalHexVector;
    
    offsetVector.insert(offsetVector.begin(), offsets.begin(), offsets.end());
    hackedHexVector.insert(hackedHexVector.begin(), hackedHexes.begin(), hackedHexes.end());
    originalHexVector.insert(originalHexVector.begin(), originalHexes.begin(), originalHexes.end());
    
    Hack *h = [[Hack alloc] initWithHackName:name info:description fontName:font theme:theme offset:offsetVector hackedHex:hackedHexVector originalHex:originalHexVector];
    [menu addHack:h];
}

void addHook(NSString *name, NSString *description, UIColor *theme){
    if(menu == nil)
        return;
    
    Hook *h = [[Hook alloc] initWithHookName:name info:description fontName:font theme:theme];
    [menu addHook:h];
}

void addSliderHook(NSString *name, NSString *description, UIColor *theme, float initialValue, float minValue, float maxValue){
    if(menu == nil)
        return;

    if(minValue > maxValue)
        return;
    
    SliderHook *sh = [[SliderHook alloc] initWithSliderHookName:name info:description fontName:font theme:theme initialValue:initialValue minValue:minValue maxValue:maxValue];
    [menu addHook:sh];
}

void addTextfieldHook(NSString *name, NSString *description, UIColor *theme){
    if(menu == nil)
        return;
    
    TextfieldHook *th = [[TextfieldHook alloc] initWithTextfieldHookName:name info:description fontName:font theme:theme];
    [menu addHook:th];
}

void addSwitch(NSString *name, NSString *description, UIColor *theme){
    if(menu == nil)
        return;
    
    Switch *s = [[Switch alloc] initWithSwitchName:name info:description fontName:font theme:theme];
    [menu addHook:s];
}

void writeData(uint64_t offset, uint64_t hex){
    if(menu == nil)
        return;
    
    [menu writeTo:offset withHex:hex];
}



 

Archived

This topic is now archived and is closed to further replies.

  • Our picks

    • Matching Story - Puzzle Games v1.56.01 [ +6 APK MOD ] Auto Win
      Mod APK Game Name: Matching Story - Puzzle Games
      Rooted Device: Not Required.
      Google Play Store Link: https://play.google.com/store/apps/details?id=com.joycastle.mergematch&hl=en

      🤩 Hack Features

      - Auto Win
      - Unlimited Coins
      - Unlimited  Diamonds [ Win Match Linked With Moves ]
      - Unlimited  Lives
      - Unlimited  Booster
      - Unlimited  Moves
      • 1 reply
    • Dream Master-Match Buster v5.20 [ +3 APK MOD ] Auto Win
      Mod APK Game Name: Dream Master-Travel Puzzle
      Rooted Device: Not Required.
      Google Play Store Link: https://play.google.com/store/apps/details?id=com.match.busters.free.gp&hl=en

      🤩 Hack Features

      - Auto Win
      - Unlimited Coins / Disable After Hack
      - Lives 0 Play Unlimited
      • 2 replies
    • Chef Treat v1.0.12 [ +1 APK MOD ] Auto Win
      Mod APK Game Name: Chef Treat
      Rooted Device: Not Required.
      Google Play Store Link: https://play.google.com/store/apps/details?id=com.match.cheftreat.android&hl=en

      🤩 Hack Features

      - Auto Win / Before Match ON
      • 2 replies
    • Goblin Miner: Idle Merger v3.9.0 [ +5 APK MOD ] Coins Unlimited
      Mod APK Game Name: Goblin Miner: Idle Merger
      Rooted Device: Not Required.
      Google Play Store Link: https://play.google.com/store/apps/details?id=com.goblins.idle.merge.game&hl=en

       

      🤩 Hack Features

      - Unlimited Coins / Mine Upgrade
      - Unlimited Goblin Drop / No Limite
      - Goblin LvL Higher / Easy To Skip Time Mine / First Drop Goblin Then Chose Higher LvL
      - Unlimited Magic Dust
      - Ruby Pass

       

      ⬇️ Android Mod APK Download Link


      Hidden Content

      Download Modded APK







       

      📖 Android Installation Instructions

      STEP 1: Download the modded APK file from the link above using your preferred Android browser or download manager.
      STEP 2: Once the download is complete, open your file manager and locate the downloaded .apk file (usually in the Downloads folder).
      STEP 3: Tap the APK file, then select Install. If prompted, enable Install from Unknown Sources in your device settings.
      STEP 3A: If the mod includes an OBB file, extract it if it’s inside an archive. Then move the folder to: /Android/obb/
      STEP 3B: If the mod includes a DATA file, extract it if it’s archived. Then move the folder to: /Android/data/
      STEP 4: Once installed, open the game and toggle your desired cheats & features through the APK mod menu. Enjoy!

       

      NOTE: If you have any questions or issues, read our Frequently Asked Questions topic. If you still need help, post your issue below and we’ll assist you as soon as possible. If the mod works for you, please share your feedback to help other members!

       

      🙌 Credits

      - IK_IK

       

      📷 Cheat Video/Screenshots

      N/A

       

       iOS & iPadOS App Hacks
      If you’re looking for Non-Jailbroken & No Jailbreak required iOS IPA hacks, visit the iOS Game Cheats & Hacks or the iOSGods App for a variety of modded games and apps for non-jailbroken iOS devices.
      • 8 replies
    • Candy Pop Story : Match 3 v7.72.1230 [ +3 APK MOD ] Auto Win
      Modded/Hacked App: Candy Pop Story : Match 3 By F.O.G LIMITED
      Bundle ID: com.gamoper.candysweetstory.ios
      App Store Link: https://apps.apple.com/us/app/candy-pop-story-match-3/id6670773988?uo=4

       

      Mod APK Game Name: 
      Rooted Device: Not Required.
      Google Play Store Link: 

       

      🤩 Hack Features

      - Auto Win
      - Unlimited Coins
      - Unlimited Moves

       

      ⬇️ Android Mod APK Download Link


      Hidden Content

      Download Modded APK







       

      📖 Android Installation Instructions

      STEP 1: Download the modded APK file from the link above using your preferred Android browser or download manager.
      STEP 2: Once the download is complete, open your file manager and locate the downloaded .apk file (usually in the Downloads folder).
      STEP 3: Tap the APK file, then select Install. If prompted, enable Install from Unknown Sources in your device settings.
      STEP 3A: If the mod includes an OBB file, extract it if it’s inside an archive. Then move the folder to: /Android/obb/
      STEP 3B: If the mod includes a DATA file, extract it if it’s archived. Then move the folder to: /Android/data/
      STEP 4: Once installed, open the game and toggle your desired cheats & features through the APK mod menu. Enjoy!

       

      NOTE: If you have any questions or issues, read our Frequently Asked Questions topic. If you still need help, post your issue below and we’ll assist you as soon as possible. If the mod works for you, please share your feedback to help other members!

       

      🙌 Credits

      - IK_IK

       

      📷 Cheat Video/Screenshots

      N/A

       

       iOS & iPadOS App Hacks
      If you’re looking for Non-Jailbroken & No Jailbreak required iOS IPA hacks, visit the iOS Game Cheats & Hacks or the iOSGods App for a variety of modded games and apps for non-jailbroken iOS devices.
      • 2 replies
    • Castle Crush v2.38.0 [ +6 APK MOD  ] Auto Win
      Mod APK Game Name: Castle Crush
      Rooted Device: Not Required.
      Google Play Store Link: https://play.google.com/store/apps/details?id=com.mibo.CastleCrush&hl=en

      🤩 Hack Features

      - Auto Win / Just Hit Target
      - Unlimited Coins / Visual But Works
      - Unlimited Stars / Visual But Works / Earn 1 Then Use For All Task
      - Unlimited Lives / Visual But Works
      - Unlimited Booster / Visual Butt Works / Earn 1 Then Use Inf
      - Moves Freeze
      • 3 replies
    • Trailer Park Boys Greasy Money Cheats (Auto Update) +1
      Modded/Hacked App: Trailer Park Boys Greasy Money By East Side Games Inc
      Bundle ID: com.eastsidegames.trailerparkboys
      App Store Link: https://apps.apple.com/us/app/trailer-park-boys-greasy-money/id1087557519?uo=4

       

      📌 Mod Requirements

      - Jailbroken iPhone or iPad.
      - iGameGod / Filza / iMazing.
      - Cydia Substrate, ElleKit, Substitute or libhooker depending on your jailbreak (from Sileo, Cydia or Zebra).

       

      🤩 Hack Features

      - Freeze Currencies

       

      Non-Jailbroken Hack: https://iosgods.com/topic/86696-trailer-park-boys-greasy-money-auto-update-jailed-cheats-3/

       

      ⬇️ iOS Hack Download Link: https://iosgods.com/topic/86637-trailer-park-boys-greasy-money-cheats-auto-update-1/
      • 239 replies
    • Darkest Hero! v0.0.95 [ +4 APK MOD ] Currency Max
      Mod APK Game Name: Darkest Hero! By MINIDRAGON LTD
      Rooted Device: Not Required.
      Google Play Store Link: https://play.google.com/store/apps/details?id=com.minidragon.randomdungeon&hl=en_US

      🤩 Hack Features

      - Unlimited Gems / Earn
      - Unlimited Red Crystal / Earn
      - Unlimited Gold / Earn
      - Unlimited Keys / Earn
      • 20 replies
    • Adventure Bay - Farm Games v1.56.16 [ +4 APK MOD ] Currency Max
      Mod APK Game Name: Adventure Bay - Farm Games
      Rooted Device: Not Required.
      Google Play Store Link: https://play.google.com/store/apps/details?id=com.gamegos.adventure.bay.paradise.farm&hl=en_US

       

      🤩 Hack Features

      - Unlimited Gems
      - Unlimited Coins
      - Unlimited Energy
      - Avatar Unlock
      • 4 replies
    • Gear Defenders v1.2.2 |+9 APK MOD | Currency Max
      Mod APK Game Name: Gear Defenders By MOBIBRAIN TECHNOLOGY PTE. LTD.
      Rooted Device: Not Required.
      Google Play Store Link: https://play.google.com/store/apps/details?id=com.iogame.gearworld&hl=en

      🤩 Hack Features

      - Unlimited Gems
      - Unlimited Coins
      - Unlimited Energy
      - Unlimited ADS Tickets
      - Unlimited Draw
      - Unlimited Battle Coins
      - Base HP
      - Gear Speed / Faster Deploy Trop
      - Unlimited Trop / Easy Win
      - ATK / Linked
      • 15 replies
    • ZombTube Last Hero Zombie War v0.1.453 [ +10 APK MOD ] Currency Max
      Mod APK Game Name: ZombTube: Last Hero Zombie War
      Rooted Device: Not Required.
      Google Play Store Link: https://play.google.com/store/apps/details?id=com.booblyc.zombtube&hl=en
      🤩 Hack Features

      - No ADS
      - Unlimited Red coins
      - Unlimited Gold
      - Parts / Upgrade Free Guns-Items
      - Damage
      - Bullet Range
      - Gun Range
      - Unlimited Ammo
      - No Reload
      - Accuracy
      • 2 replies
    • Hill Climb Racing 2 Cheats v1.70.4 +1
      Modded/Hacked App: Hill Climb Racing 2 By Fingersoft
      Bundle ID: com.fingersoft.hillclimbracing2
      iTunes Store Link: https://apps.apple.com/us/app/hill-climb-racing-2/id1146465836?uo=4


      Hack Features:
      - Freeze Coins
      - Freeze Gems
      - Freeze Scraps


      Non-Jailbroken & No Jailbreak required hack(s): https://iosgods.com/topic/108295-hill-climb-racing-2-v1611-jailed-cheats-2/


      iOS Hack Download Link: https://iosgods.com/topic/108298-hill-climb-racing-2-v1612-cheats-3/
        • Like
      • 2,215 replies
×
  • Create New...

Important Information

We would like to place cookies on your device to help make this website better. The website cannot give you the best user experience without cookies. You can accept or decline our cookies. You may also adjust your cookie settings. Privacy Policy - Guidelines