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

    • Dreamdale - Fairy Adventure v2.9.2 Jailed Cheats +15
      Modded/Hacked App: Dreamdale - Fairy Adventure By SayGames LTD
      Bundle ID: com.dream.dale
      iTunes Store Link: https://apps.apple.com/us/app/dreamdale-fairy-adventure/id1517564300?uo=4


      Mod Requirements:
      - Non-Jailbroken/Jailed or Jailbroken iPhone/iPad/iPod Touch.
      - Sideloadly / Cydia Impactor!
      - A Computer Running Windows/macOS/Linux with iTunes installed.


      Hack Features:

      🌲 Resource Hacks

      Freeze Resources (no consumption)

      Always Golden Resources (trees, rocks, fruits)

      Instant Treasure Hole Respawn

      Infinite Resources ("Set all added resources to 99,999)

      Instant Resource Respawn

      🎒 Upgrade Hacks

      Infinite Backpack Size

      Unlimited Storage Capacity

      Storage Never Full

      ⚔️ PvP Hacks

      Dumb Enemy AI (reduced awareness & attacks)

      GodMod

      One Hit Kill (OHK)

      No Fog of War

      🐟 Farming & Animals

      Instant Fish Catch

      Instant Sheep Wool Regrowth

      Instant Animal Catch

      👑 Subscription & Premium Hacks

      VIP Enabled

      Miner VIP Enabled

      Battle Pass Premium

      Farm Pass Premium

      Game Event Premium

      ✨Exclusive Featured

      All Pet Unlocked

      All House Decoration Unlocked

      🛡️ Other

      Anti-Cheat Disabled  

      No Ads (VIP featured required)

       


      Jailbreak required hack(s): https://iosgods.com/topic/188928-dreamdale-fairy-adventure-cheats-v292-15/


      iOS Hack Download IPA Link: https://iosgods.com/topic/188927-dreamdale-fairy-adventure-v292-jailed-cheats-15/
      • 105 replies
    • BitLife - Life Simulator Cheats v3.23.2 +2
      Modded/Hacked App: BitLife - Life Simulator by Candywriter, LLC
      Bundle ID: com.wtfapps.apollo16
      iTunes Store Link: https://apps.apple.com/us/app/bitlife-life-simulator/id1374403536?uo=4&at=1010lce4


      Hack Features:
      - Infinite Cash
      - Free Bitizen Purchase (Press Cancle) - Work for All Versions


      Non-Jailbroken & No Jailbreak required hack(s): https://iosgods.com/topic/84167-arm64-bitlife-life-simulator-v1412-jailed-cheats-2/


      Hack Download Link: https://iosgods.com/topic/84223-arm64-bitlife-life-simulator-cheats-all-versions-2/
      • 3,973 replies
    • Sling Kong v4.4.10 Jailed Cheats +2
      Modded/Hacked App: Sling Kong By Protostar Games PTY LTD
      Bundle ID: com.protostar.sling
      App Store Link: https://apps.apple.com/us/app/sling-kong/id989080135?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

      - Infinite Coins 
      - Unlock All Themes/ Characters/ Hats

      NOTE: You must unlocked basic first else game will perma stuck. Swing around 20 times before turn on any cheats
       

       

      ⬇️ iOS Hack Download IPA Link: https://iosgods.com/topic/205086-sling-kong-v449-jailed-cheats-2/
      • 3 replies
    • SuperStar STARSHIP Cheats v3.30.0 +3
      Modded/Hacked App: SuperStar STARSHIP By Dalcomsoft Inc.
      Bundle ID: com.dalcomsoft.sss
      iTunes Store Link: https://apps.apple.com/us/app/superstar-starship/id1480181152?uo=4


      Hack Features:
      - Never Lose
      - Auto Dance
      - Always S.Perfect


      iOS Hack Download Link: https://iosgods.com/topic/164185-superstar-starship-cheats-v378-3/
      • 162 replies
    • Travel Town - Merge Adventure v2.12.1450 Jailed Cheats +1
      Modded/Hacked App: Travel Town - Merge Adventure By Magmatic Games Ltd
      Bundle ID: io.randomco.travel
      iTunes Store Link: https://apps.apple.com/us/app/travel-town-merge-adventure/id1521236603?uo=4


      Hack Features:
      - Infinite Currencies


      iOS Hack Download Link: https://iosgods.com/topic/148953-travel-town-merge-adventure-v212287-jailed-cheats-1/
      • 922 replies
    • Guild of Heroes: Fantasy RPG v1.187.4 - [ x Player Damage & More ]
      Modded/Hacked App: Guild of Heroes: Fantasy RPG By BIT.GAMES PBL
      Bundle ID: com.goplaytoday.guildofheroes
      iTunes Store Link: https://itunes.apple.com/us/app/guild-of-heroes-fantasy-rpg/id979474617?mt=8&uo=4&at=1010lce4


      Mod Requirements:
      - Jailbroken iPhone/iPad/iPod Touch.
      - iFile / Filza / iFunBox / iTools or any other file managers for iOS.
      - Cydia Substrate (from Cydia).
      - PreferenceLoader (from Cydia).


      Hack Features:
      - x Player Damage - x1 - 10
      - x Player Defense - x1 - 10
      - Enemies Auto Die
      - Premium Activate
      - Freeze Resources
      - Freeze Potions

      All features are unlinked and only for player, you!
      Note:
      Not Responsible For Any Bans


      This hack is an In-Game Mod Menu (iGMM). In order to activate the Mod Menu, tap on the iOSGods button found inside the app. This hack works on the latest x64 or ARM64 iDevices: iPhone 5s, 6, 6 Plus, 6s, 6s Plus, 7, 7 Plus, 8, 8 Plus, X, Xr, Xs, Xs Max, SE, iPod Touch 6G, iPad Air, Air 2, Pro & iPad Mini 2, 3, 4 and later.
      Non-Jailbroken & No Jailbreak required hack(s): https://iosgods.com/topic/79822-guild-of-heroes-fantasy-rpg-v1679-5k-gold-sell-value-more/
      • 1,744 replies
    • Sago Mini World: Kids Games Modded v8.6 +1
      Modded/Hacked App: Sago Mini World By Sago Mini
      Bundle ID: com.sagosago.Friends
      iTunes Store Link: https://itunes.apple.com/us/app/sago-mini-world/id874425722?mt=8&uo=4&at=1010lce4



      Hack Features:
      - PREMIUM


      Hack Download Link: https://iosgods.com/topic/77893-arm64-sago-mini-world-modded-v31-1/


      Credits:
      - @Laxus
      • 209 replies
    • Candy Crush Friends Saga v4.21.2 Jailed Cheats +3
      Modded/Hacked App: Candy Crush Friends Saga By King.com Limited
      Bundle ID: com.midasplayer.apps.candycrush4
      iTunes Store Link: https://apps.apple.com/us/app/candy-crush-friends-saga/id1225867923?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

      - Freeze Moves
      - Freeze Lives
      - Freeze Boosters
       


      🍏 Jailbreak iOS hacks: https://iosgods.com/topic/198853-candy-crush-friends-saga-cheats-v4160-3/

       

      📥 iOS Hack Download IPA Link: https://iosgods.com/topic/80354-candy-crush-friends-saga-v4160-jailed-cheats-3/
      • 443 replies
    • Lamar - Idle Vlogger v237.0.3 +2 Mods [ Unlimited Currencies ]
      Mod APK Game Name: Lamar - Idle Vlogger By CrazyLabs LTD
      Rooted Device: Not Required.
      Google Play Store Link: https://play.google.com/store/apps/details?id=com.advant.streamer

       

      🤩 Hack Features

      - Unlimited Cash -> Will increase instead of decrease.
      - Unlimited Gold -> Spend some.
      • 0 replies
    • Glory Ages - VIKINGS v0.1.054 +1++ Jailed Cheat [ Unlimited Everything ]
      Modded/Hacked App: Glory Ages - VIKINGS By VLADISLAV VASILEV
      Bundle ID: com.notriplea.gloryagesvikings
      App Store Link: https://apps.apple.com/us/app/glory-ages-vikings/id6754191922?uo=4

       


      🤩 Hack Features

      - Unlimited Everything -> Earn or spend some. This modifies everything. Currencies, boosters, health, damage, stamina.
      • 5 replies
    • Grimguard Tactics: Fantasy RPG v1.23.10 +3 Jailed Cheats [ Auto Win ]
      Modded/Hacked App: Grimguard Tactics: Fantasy RPG By Outerdawn Limited
      Bundle ID: com.outerdawn.grimguard
      iTunes Store Link: https://apps.apple.com/us/app/grimguard-tactics-fantasy-rpg/id1496893856?uo=4


      Hack Features:
      - Auto Win
      - Unlimited Daily Rewards
      - No Stamina Cost


      Jailbreak required hack(s): [Mod Menu Hack] Grimguard Tactics: Fantasy RPG v1.1.10 +3 Cheats [ Auto Win ] - ViP Cheats - iOSGods
      Modded Android APK(s): https://iosgods.com/forum/68-android-section/
      For more fun, check out the Club(s): https://iosgods.com/clubs/
      • 162 replies
    • Love Eden: Chapters of Romance v2.0.6 +10++ Jailed Cheats [ Debug Menu ]
      Modded/Hacked App: Love Eden: Chapters of Romance By NODERNO LIMITED
      Bundle ID: com.noderno.loveeden
      App Store Link: https://apps.apple.com/us/app/love-eden-chapters-of-romance/id6471411677?uo=4

       


      🤩 Hack Features

      - Debug Menu -> Head over to your profile and then tap on Settings.
      • 15 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