Jump to content

How to return a value to a function with parameters?


Go to solution Solved by Ted2,

9 posts in this topic

Recommended Posts

Posted (edited)

Let's say I have this function in the dump.cs:

protected void ammo(int value, bool reload); // 0x289235

and I hooked it like this:

void(*old_ammo)(void *instance, int value, bool reload);
void ammo(void *instance, int value, bool reload)
{
if(instance != NULL)
{
// do something
}
return old_ammo(instance, value, reload);
}
MsHookFunction((void*)getAbsoluteAddress(0x289235), (void*)ammo, (void**)&old_ammo);

How would I set values to the parameters?

Would I do it like this:

void(*old_ammo)(void *instance, int value, bool reload);
void ammo(void *instance, int value, bool reload)
{
if(instance != NULL)
{
  return ammo(instance, 9999, false);
}
return old_ammo(instance, value, reload);
}
MsHookFunction((void*)getAbsoluteAddress(0x289235), (void*)ammo, (void**)&old_ammo);

or like this?

void(*old_ammo)(void *instance, int value, bool reload);
void ammo(void *instance, int value, bool reload)
{
if(instance != NULL)
{
  return 9999, false;
}
return old_ammo(instance, value, reload);
}
MsHookFunction((void*)getAbsoluteAddress(0x289235), (void*)ammo, (void**)&old_ammo);

Which one is correct?

 If none are correct, then how would I do it?

Updated by PixelYT
Added additional information
Posted
On 5/14/2021 at 11:09 PM, PixelYT said:

Would I do it like this:


void(*old_ammo)(void *instance, int value, bool reload);
void ammo(void *instance, int value, bool reload)
{
if(instance != NULL)
{
  return ammo(instance, 9999, false);
}
return old_ammo(instance, value, reload);
}
MsHookFunction((void*)getAbsoluteAddress(0x289235), (void*)ammo, (void**)&old_ammo);

This one is the one you need for setting the parameters.

  • Thanks 1
Posted
2 minutes ago, PixelYT said:

Thanks sir! :))

Sorry, I just spotted a mistake. You should return old_ammo(instance, 9999,false); 

 

Not ammo(instance, 9999, false);

  • Like 1
Posted
1 minute ago, Ted2 said:

Sorry, I just spotted a mistake. You should return old_ammo(instance, 9999,false); 

 

Not ammo(instance, 9999, false);

so we when we are setting values to parameters, we use the old_ammo but when there is no parameters we just use the ammo and inside of it return 99999 or whatever we want, right?

Posted

Hmm, sorry. I was checking the post on phone which sucks. I just checked on my laptop and...

 

The method you're hooking is a void, which means it doesn't return anything. Void methods are called to perform certain things rather than returning something. So this ammo method has two parameters: ammo and reload. You can make them always 9999 and false, but you do not return them.

A valid hook would look like this:

// This holds the original state of the method, some people prefer to call it "orig_ammo" instead because of that.
void(*old_ammo)(void *instance, int value, bool reload);

// This is the hooked method, where you can do whatever you want
void ammo(void *instance, int value, bool reload) {
  	// Just a note; I don't think instance will ever be NULL.
	if(instance != NULL) {
		// set ammo to 9999 and reload to false
		old_ammo(instance, 9999, false);
	}
	// Do what it normally does
	old_ammo(instance, value, reload);
}


MsHookFunction((void*)getAbsoluteAddress(0x289235), (void*)ammo, (void**)&old_ammo);

 

I've added some comments to the code, so I hope you understand better then.

  • Like 1
Posted (edited)
3 hours ago, Ted2 said:

Hmm, sorry. I was checking the post on phone which sucks. I just checked on my laptop and...

 

The method you're hooking is a void, which means it doesn't return anything. Void methods are called to perform certain things rather than returning something. So this ammo method has two parameters: ammo and reload. You can make them always 9999 and false, but you do not return them.

A valid hook would look like this:


// This holds the original state of the method, some people prefer to call it "orig_ammo" instead because of that.
void(*old_ammo)(void *instance, int value, bool reload);

// This is the hooked method, where you can do whatever you want
void ammo(void *instance, int value, bool reload) {
  	// Just a note; I don't think instance will ever be NULL.
	if(instance != NULL) {
		// set ammo to 9999 and reload to false
		old_ammo(instance, 9999, false);
	}
	// Do what it normally does
	old_ammo(instance, value, reload);
}


MsHookFunction((void*)getAbsoluteAddress(0x289235), (void*)ammo, (void**)&old_ammo);

 

I've added some comments to the code, so I hope you understand better then.

oh wow, now i understand. It's just like how when we hook an Update method and use function pointers on it, we don't use return because the Update method is a void which means it doesn't return anything. Thank you, now I understand, i just didn't know that when we hook a method that is a void but not the Update method, we just call the function and set it's parameters without return.

Updated by PixelYT
Added additional information
Posted (edited)
3 hours ago, Ted2 said:

Hmm, sorry. I was checking the post on phone which sucks. I just checked on my laptop and...

 

The method you're hooking is a void, which means it doesn't return anything. Void methods are called to perform certain things rather than returning something. So this ammo method has two parameters: ammo and reload. You can make them always 9999 and false, but you do not return them.

A valid hook would look like this:


// This holds the original state of the method, some people prefer to call it "orig_ammo" instead because of that.
void(*old_ammo)(void *instance, int value, bool reload);

// This is the hooked method, where you can do whatever you want
void ammo(void *instance, int value, bool reload) {
  	// Just a note; I don't think instance will ever be NULL.
	if(instance != NULL) {
		// set ammo to 9999 and reload to false
		old_ammo(instance, 9999, false);
	}
	// Do what it normally does
	old_ammo(instance, value, reload);
}


MsHookFunction((void*)getAbsoluteAddress(0x289235), (void*)ammo, (void**)&old_ammo);

 

I've added some comments to the code, so I hope you understand better then.

One more question: inside of the if(instance != NULL) statement, don't we use ammo to set parameters to whatever we like and then after it, we just put the old_ammo in case instance is NULL? Like this and not like the above one:

void(*old_ammo)(void *instance, int value, bool reload); // this holds the original value of the method
void ammo(void *instance, int value, bool reload) // this is the hooked method where we change the value to whatever we like
{
if(instance != NULL)
{
  ammo(instance, 9999, false); // Use the hooked method to change int value to 9999, and bool reload to false
}
 old_ammo(instance, value, reload); // in case instance is NULL, call the old_ammo which holds the original value
}
MsHookFunction((void*)getAbsoluteAddress(0x289235), (void*)ammo, (void**)&old_ammo);

 

Updated by PixelYT
Added additional information
  • Solution
Posted
7 hours ago, PixelYT said:

One more question: inside of the if(instance != NULL) statement, don't we use ammo to set parameters to whatever we like and then after it, we just put the old_ammo in case instance is NULL? Like this and not like the above one:


void(*old_ammo)(void *instance, int value, bool reload); // this holds the original value of the method
void ammo(void *instance, int value, bool reload) // this is the hooked method where we change the value to whatever we like
{
if(instance != NULL)
{
  ammo(instance, 9999, false); // Use the hooked method to change int value to 9999, and bool reload to false
}
 old_ammo(instance, value, reload); // in case instance is NULL, call the old_ammo which holds the original value
}
MsHookFunction((void*)getAbsoluteAddress(0x289235), (void*)ammo, (void**)&old_ammo);

 

Nope. As the void ammo(bla, bla, bla) {} is the replacement method of the original method (which you named old_ammo), here you write your own logic of the method. If you only need to change the parameter values, you can just call the original method (old_ammo) with your own values and that will be enough. You could also do: 

void ammo(void *instance, int value, bool reload) {
	value = 9999;
	reload = false;
	old_ammo(instance, value, reload);
}

In this example you alter the parameter values it was originally called with and then call the method itself with your new values.

  • Like 1

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
  • Our picks

    • Minion Rush Cheats v12.4.1 +1
      Modded/Hacked App: Minion Rush By Gameloft
      Bundle ID: com.gameloft.despicableme2
      iTunes Store Link: https://apps.apple.com/us/app/minion-rush/id596402997?uo=4


      Hack Features:
      - Free Store ( not Free iAP )
      * Allow purchase stuffs without having enough bananas or tokens


      iOS Hack Download Link: https://iosgods.com/topic/147752-minion-rush-cheats-v791-1/
        • Informative
        • Agree
        • Haha
        • Thanks
        • Winner
        • Like
      • 610 replies
    • HAWK: Airplane Space games Cheats v42.7 +3
      Modded/Hacked App: HAWK: Airplane Fighter jet sky By My.com B.V.
      Bundle ID: com.my.hawk.air.shooter
      iTunes Store Link: https://apps.apple.com/us/app/hawk-airplane-fighter-jet-sky/id1145878423?uo=4


      Hack Features:
      - God Mode
      - OHK
      - Instant Win


      Non-Jailbroken & No Jailbreak required hack(s): https://iosgods.com/topic/89813-arm64-hawk-bullet-hell-jet-shooter-v33-jailed-cheats-1/


      Hack Download Link: https://iosgods.com/topic/142184-hawk-airplane-fighter-jet-sky-cheats-v33-3/
        • Informative
        • Agree
        • Haha
        • Thanks
        • Winner
        • Like
      • 1,062 replies
    • Mr Autofire Cheats v4.3.3 +3 [ God Mode & More ]
      Modded/Hacked App: Mr Autofire By Lightheart Entertainment Oy
      Bundle ID: games.lightheart.mrautofire
      iTunes Store Link: https://apps.apple.com/us/app/mr-autofire/id1483457500?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

      - God Mode 
      - One Hit Kill
      - Free Store

       

      Non-Jailbroken Hack: https://iosgods.com/topic/134805-mr-autofire-v380-jailed-cheats-1/

       

      ⬇️ iOS Hack Download Link: https://iosgods.com/topic/134788-mr-autofire-cheats-v380-3-god-mode-more/
        • Informative
        • Agree
        • Haha
        • Thanks
        • Winner
        • Like
      • 640 replies
    • Cafeland - World Kitchen Cheats v2.59.8 +1
      Modded/Hacked App: Cafeland - World Kitchen by Gamegos Internet Teknolojileri Ltd Sti.
      Bundle ID: com.gamegos.mobile.cafeland
      iTunes Store Link: https://apps.apple.com/us/app/cafeland-world-kitchen/id1147665432?uo=4&at=1010lce4



      Hack Features:
      - Freeze Currencies


      iOS Hack Download Link: https://iosgods.com/topic/100701-arm64-cafeland-world-kitchen-cheats-v2023-1/
        • Informative
        • Agree
        • Haha
        • Thanks
        • Winner
        • Like
      • 436 replies
    • Fruit Ninja Cheats v3.86.1 +4
      Modded/Hacked App: Fruit Ninja® By Halfbrick
      Bundle ID: com.halfbrick.FruitNinjaLite
      iTunes Store Link: https://apps.apple.com/us/app/fruit-ninja/id403858572?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

      - No Bomb
      - Freeze StarFruits
      - Freeze Frenzy, Double Points in Aracade Mode
      - Infinite Boosters

       

      Non-Jailbroken Hack: https://iosgods.com/topic/86031-fruit-ninja-v3800-jailed-cheats-6/

       

      ⬇️ iOS Hack Download Link: https://iosgods.com/topic/85983-fruit-ninja-cheats-v3800-4/
        • Informative
        • Agree
        • Haha
        • Thanks
        • Winner
        • Like
      • 470 replies
    • Armed Heist: TPS Shooting Game Cheats v3.2.12 +6
      Modded/Hacked App: Armed Heist By SOZAP
      Bundle ID: com.sozap.badmen
      iTunes Store Link: https://itunes.apple.com/us/app/armed-heist/id1163705851?mt=8&uo=4&at=1010lce4



      Hack Features:
      - God Mode
      - Dumb AI (No Shoot, No Take Cover) - Not Affect Shotgun AI ¯\_(ツ)_/¯
      - Better Aim
      - No Spread
      - No Reload
      - Instant Max Ammo (Pickup)



      Hack Download Link: https://iosgods.com/topic/75497-arm64-armed-heist-cheats-v117-10/
        • Informative
        • Agree
        • Haha
        • Thanks
        • Winner
        • Like
      • 1,474 replies
    • The Walking Dead: Survivors v7.26.0 [+2 Jailed Cheats]
      Modded/Hacked App: The Walking Dead: Survivors By Galaxy Play Technology Limited
      Bundle ID: com.elex.twdsaw.apple
      App Store Link: https://apps.apple.com/us/app/the-walking-dead-survivors/id1514546586?uo=4



      🤩 Hack Features

      - Never Die (Explore and Race mode)
      - Damage Multiplier (Explore mode)
        • Agree
        • Haha
        • Winner
        • Like
      • 5 replies
    • The Walking Dead: Survivors v7.26.0 [+2 Cheats]
      Modded/Hacked App: The Walking Dead: Survivors By Galaxy Play Technology Limited
      Bundle ID: com.elex.twdsaw.apple
      App Store Link: https://apps.apple.com/us/app/the-walking-dead-survivors/id1514546586?uo=4



      🤩 Hack Features

      - Never Die (Explore and Race mode)
      - Damage Multiplier (Explore mode)
       
        • Agree
        • Winner
        • Like
      • 7 replies
    • Mech Assemble v1.6.29 [+5 Cheats]
      Modded/Hacked App: Mech Assemble By ONEMT PTE. LTD.
      Bundle ID: com.ios.mecharogue.online
      App Store Link: https://apps.apple.com/us/app/mech-assemble/id6739125107?uo=4

       

      🤩 Hack Features

      - High Defense
      - No Reload
       
        • Agree
        • Haha
        • Winner
        • Like
      • 65 replies
    • Random Dice: Defense v9.5.4 +4 Jailed Cheats
      Modded/Hacked App: Random Dice: Defense By Crater Co., Ltd.
      Bundle ID: com.percent.royaldice
      iTunes Store Link: https://apps.apple.com/us/app/random-dice-defense/id1462877149?uo=4

       

       

      Mod Requirements

      - Non-Jailbroken/Jailed or Jailbroken iPhone or iPad.
      - Sideloadly or alternatives.
      - Computer running Windows/macOS/Linux with iTunes installed.

       

      Hack Features

      - Damage Multiplier
      - CO-OP SP Multiplier
      - PVP SP Multiplier
      - Merge Any Dice


      Jailbreak required iOS hacks: 

       

      iOS Hack Download IPA Link


      Hidden Content

      Download via the iOSGods App







       

      PC Installation Instructions

      STEP 1: Download the pre-hacked .IPA file from the link above to your computer. To download from the iOSGods App, see this tutorial topic which includes a video example.
      STEP 3: Download Sideloadly and install it on your PC.
      STEP 4: Open Sideloadly on your computer, connect your iOS device, and wait until your device name appears in Sideloadly.
      STEP 5: Once your iDevice is recognized, drag the modded .IPA file you downloaded and drop it into the Sideloadly application.
      STEP 6: Enter your Apple Account email when prompted, then press “Start.” You’ll then be asked to enter your password. Go ahead and provide the required information.
      STEP 7: Wait for Sideloadly to finish sideloading/installing the hacked IPA. If there are issues during installation, please read the note below.
      STEP 8: Once the installation is complete and you see the app on your Home Screen, you will need to go to Settings -> General -> Profiles / VPN & Device Management. Once there, tap on the email you entered from step 6, and then tap on 'Trust [email protected]'.
      STEP 9: Now go to your Home Screen and open the newly installed app and everything should work fine. You may need to follow further per app instructions inside the hack's popup in-game.

      NOTE: iOS/iPadOS 16 and later, you must enable Developer Mode. For free Apple Developer accounts, you will need to repeat this process every 7 days. If you have any questions or problems, read our Sideloadly FAQ section of the topic and if you don't find a solution, please post your issue below and we'll do our best to help! If the hack does work for you, post your feedback below and help out other fellow members that are encountering issues.

       

      Credits

      - AlyssaX64

       

      Cheat Video/Screenshots

      N/A
        • Informative
        • Agree
        • Haha
        • Thanks
        • Winner
        • Like
      • 160 replies
    • Random Dice: Defense v9.5.4 +4 Cheats
      Modded/Hacked App: Random Dice: Defense By Crater Co., Ltd.
      Bundle ID: com.percent.royaldice
      iTunes Store Link: https://apps.apple.com/us/app/random-dice-defense/id1462877149?uo=4


      Mod Requirements:
      - Jailbroken iPhone/iPad/iPod Touch.
      - iGameGod / Filza / iMazing or any other file managers for iOS.
      - Cydia Substrate, Substitute or libhooker depending on your jailbreak.
      - PreferenceLoader (from Cydia, Sileo or Zebra).


      Hack Features:
      - Damage Multiplier
      - Merge Any Color
      - Jailbreak Check Removed


      Non-Jailbroken & No Jailbreak required hack(s): https://iosgods.com/forum/79-no-jailbreak-section/
      Modded Android APK(s): https://iosgods.com/forum/68-android-section/
      For more fun, check out the Club(s): https://iosgods.com/clubs/


      iOS Hack Download Link:

      Hidden Content
      Download Hack







      Installation Instructions:
      STEP 1: Download the .deb Cydia hack file from the link above. Use Safari/Google Chrome or other iOS browsers to download.
      STEP 2: Once the file has downloaded, tap on it and then you will be prompted on whether you want to open the deb with iGameGod or copy it to Filza.
      STEP 3: If necessary, tap on the downloaded file, and then, you will need to press 'Install' from the options on your screen.
      STEP 4: Let iGameGod/Filza finish the cheat installation. Make sure it successfully installs, otherwise see the note below.
      STEP 5: If the hack is a Mod Menu — which is usually the case nowadays — the cheat features can be toggled in-game. Some cheats have options that can be enabled from your iDevice settings.
      STEP 6: Turn on the features you want and play the game. You may need to follow further instructions inside the hack's popup in-game.

       

      NOTE: If you have any questions or problems, read our Troubleshooting topic & Frequently Asked Questions & Answers topic. If you still haven't found a solution, post your issue down below and we'll do our best to help! If the hack does work for you, please post your feedback below and help out other fellow members that are encountering issues.


      Credits:
      - AlyssaX64


      Cheat Video/Screenshots:

      N/A
        • Informative
        • Agree
        • Haha
        • Thanks
        • Winner
        • Like
      • 259 replies
    • Tower King! v1.0 [ +3 Cheats ] Easy Win
      Modded/Hacked App: Tower King! By Playmotional Limited
      Bundle ID: com.playmotional.defense
      App Store Link: https://apps.apple.com/us/app/tower-king/id6743542031?uo=4

      🤩 Hack Features

      - Unlimited Coins / AFK Reward
      - Unlimited Exp / LvL Faster UP / AFK Reward
      - DMG / Linked But Use Tower Easy To Win
        • Winner
        • Like
      • 9 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