Jump to content

How to return a value to a function with parameters?


PixelYT

9 posts in this topic

Recommended Posts

Posted

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?

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.

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);

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.

Posted
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.

Posted
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);

 

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.

Archived

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

  • Our picks

    • Hungry Shark Evolution +10 Jailed Cheats [ Unlimited Currencies ]
      Modded/Hacked App: Hungry Shark Evolution By Ubisoft
      Bundle ID: com.fgol.HungrySharkEvolution
      App Store Link: https://apps.apple.com/us/app/hungry-shark-evolution/id535500008?uo=4

       
       

      🤩 Hack Features

      - Coin Modifier
      - Gem Modifier
      - Speed Multiplier
      - Score Multiplier
      - God Mode
      - One-Hit Kill
      - Unlimited Boost
      - Unlock All Sharks
      - No Gravity
      -- No In-Game Ads
      • 263 replies
    • UFC: KO! v0.0.2 [ +3 Jailed ] Currency Max
      Modded/Hacked App: UFC: KO! By Rollic Games Oyun Yazilim ve Pazarlama Anonim Sirketi
      Bundle ID: com.rollic.ufcko
      App Store Link: https://apps.apple.com/us/app/ufc-ko/id6781219228?uo=4

      🤩 Hack Features

      - Unlimited Cash
      - Unlimited Cup
      - Unlimited Followers
      • 1 reply
    • UFC: KO! v0.0.2 [ +3 Cheats ] Currency Max
      Modded/Hacked App: UFC: KO! By Rollic Games Oyun Yazilim ve Pazarlama Anonim Sirketi
      Bundle ID: com.rollic.ufcko
      App Store Link: https://apps.apple.com/us/app/ufc-ko/id6781219228?uo=4

      🤩 Hack Features

      - Unlimited Cash
      - Unlimited Cup
      - Unlimited Followers
      • 1 reply
    • Hungry Shark World +9 Jailed Cheats [ Unlimited Currencies ]
      Modded/Hacked App: Hungry Shark World By Ubisoft
      Bundle ID: com.ubisoft.hungrysharkworld
      iTunes Store Link: https://apps.apple.com/us/app/hungry-shark-world/id1046846443?uo=4


      Hack Features:
      - Coin Modifier
      - Gem Modifier
      - Pearl Modifier
      - Unlock All
      - Freeze Health
      - Freeze Boost
      - Season Pass Unlocked
      - Score Multiplier
      - No Gravity
      • 376 replies
    • Road Trip: Merge Family Games! +6 Jailed Cheats [ Unlimited Cash ]
      Modded/Hacked App: Road Trip: Merge Family Games! By VIZOR APPS LTD
      Bundle ID: com.vizor-apps.Road-Trip
      App Store Link: https://apps.apple.com/us/app/road-trip-merge-family-games/id6471364763?uo=4

       


      🤩 Hack Features

      - Freeze Merge Energy
      - Freeze Energy
      - Freeze Cash

      VIP
      - Unlimited Merge Energy -> Spend some then restart the game.
      - Unlimited Energy -> Spend some then restart the game.
      - Unlimited Cash -> Spend some then restart the game.
        • Thanks
      • 13 replies
    • Skeleton Wars v21.0.22 [ +4 APK MOD ] Currency Max
      Mod APK Game Name: Skeleton Wars
      Rooted Device: Not Required.
      Google Play Store Link: https://play.google.com/store/apps/details?id=com.edenap.m1&

       

      🤩 Hack Features

      - Unlimited Coins
      - Unlimited Soul Coins
      - Unlimited Mana
      - Skill CD
      • 0 replies
    • Skeleton Wars v21.1.22 [ +4 Cheats ] Currency Max
      Modded/Hacked App: Skeleton Wars By EDENAP d.o.o.
      Bundle ID: com.edenap.m1
      App Store Link: https://apps.apple.com/us/app/skeleton-wars/id6752692961?uo=4

      🤩 Hack Features

      - Unlimited Coins
      - Unlimited Soul Coins
      - Unlimited Mana
      - Skill CD
      • 1 reply
    • Skeleton Wars v21.1.22 [ +4 Jailed ] Currency Max
      Modded/Hacked App: Skeleton Wars By EDENAP d.o.o.
      Bundle ID: com.edenap.m1
      App Store Link: https://apps.apple.com/us/app/skeleton-wars/id6752692961?uo=4

      🤩 Hack Features

      - Unlimited Coins
      - Unlimited Soul Coins
      - Unlimited Mana
      - Skill CD
      • 0 replies
    • Ultimate XI - Football Game +2 Jailed Cheats [ Unlimited Currencies ]
      Modded/Hacked App: Ultimate XI - Football Game By Mallat Entertainment
      Bundle ID: com.MallatEntertainment.UltimateXI
      App Store Link: https://apps.apple.com/us/app/ultimate-xi-football-game/id6760702449?uo=4

       


      🤩 Hack Features

      - Unlimited Coins → Will increase instead of decrease.
      - Unlimited Gems → Will increase instead of decrease.
      • 2 replies
    • Sandcastle TD v1.3.10 [ +3 Cheats ] Enemy Stats 0
      Modded/Hacked App: Sandcastle TD By Bling Bling Games GmbH
      Bundle ID: com.blingblinggames.sandcastletd
      App Store Link: https://apps.apple.com/us/app/sandcastle-td/id6745550244?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

      Enemy Stats
      - ATK 0
      - DEF 0
      - HP 0

       

      ⬇️ iOS Hack Download Link


      Hidden Content

      Download Hack







       

      📖 iOS Installation Instructions

      STEP 1: Download the .deb 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 needed, tap on the downloaded file again, then select ‘Normal Install’ from the options on your screen.
      STEP 4: Let iGameGod/Filza finish the cheat installation. If it doesn’t install successfully, see the note below.
      STEP 5: Open the game, log in to your iOSGods account when asked, then toggle on the features you want and enjoy!

       

      NOTE: If you have any questions or problems, read our Jailbreak iOS Hack Troubleshooting & Frequently Asked Questions & Answers topic. If you still haven't found a solution, post your issue 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

      - IK_IK

       

      📷 Cheat Video/Screenshots

      N/A

       

      More iOS 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.

      Modded Android APKs
      Need modded apps or games for Android? Check out the latest custom APK mods, cheats & more in our Android Section.
      • 1 reply
    • Sandcastle TD v1.3.10 [ +3 Jailed ] Enemy Stats 0
      Modded/Hacked App: Sandcastle TD By Bling Bling Games GmbH
      Bundle ID: com.blingblinggames.sandcastletd
      App Store Link: https://apps.apple.com/us/app/sandcastle-td/id6745550244?uo=4

      🤩 Hack Features

      Enemy Stats
      - ATK 0
      - DEF 0
      - HP 0
      • 0 replies
    • Hunter Hunter Heroes - RPG v1.1.1 (92) [ +10 Cheats ] Enough Currency
      Modded/Hacked App: Hunter Hunter Heroes - RPG By HNRQ FAITTA LTDA
      Bundle ID: com.babystone.hhidlegrind
      App Store Link: https://apps.apple.com/us/app/hunter-hunter-heroes-rpg/id6763558832?uo=4

      🤩 Hack Features

      - Enough Currency
      - Currency Freeze
      - Hunter License Active / Not Tested
      - Scroll Perk Active
      - EXP Multiplier
      - Faster Level Up
      - Good Mod
      - Hero ATK
      - Hero ATK Speed
      - Hero Move Speed
      Note:- Don't Abuse The Hack Incase Banned/Data lost
      • 5 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