Jump to content

Sniper Arena v0.8.9 Aimbot Source


19 posts in this topic

Recommended Posts

Updated (edited)

MORE ON GITHUB: https://github.com/shmoo419/SniperArenaAimbot

 

/*
Sniper Arena v0.8.9 aimbot source code.
Made by shmoo.
Function naming conventions:
    ClassName_FunctionName(arguments)
...for easy reference in the included dump.
*/

#import "Macros.h"
#import "Config.h"
#import <substrate.h>
#import <mach-o/dyld.h>

uint64_t getRealOffset(uint64_t);

struct me_t {
	void *object;
	void *camera;
	Vector3 location;
	int team;
};

struct target_t {
	void *object;
	Vector3 location;
	double health;
	float distanceFromMe;
};

me_t *me;
target_t *currentTarget;

Quaternion lookRotation;

void *(*Component_GetTransform)(void *component) = (void *(*)(void *))getRealOffset(0x10079DDD8);
void (*Transform_INTERNAL_GetPosition)(void *transform, Vector3 *out) = (void (*)(void *, Vector3 *))getRealOffset(0x1007E7ACC);

/*
If you don't understand why I'm comparing Vector3's this way, go here:
https://noobtuts.com/cpp/compare-float-values

Returns true if second falls in bounds with first.
*/
bool compareVectorsWithTolerance(Vector3 first, Vector3 second, float tolerance){
	float firstXSubbed = first.x - tolerance;
	float firstXAdded = first.x + tolerance;
	
	float firstYSubbed = first.y - tolerance;
	float firstYAdded = first.y + tolerance;
	
	float firstZSubbed = first.z - tolerance;
	float firstZAdded = first.z + tolerance;
	
	bool secondXFallsBetween = second.x >= firstXSubbed && second.x <= firstXAdded;
	bool secondYFallsBetween = second.y >= firstYSubbed && second.y <= firstYAdded;
	bool secondZFallsBetween = second.z >= firstZSubbed && second.z <= firstZAdded;
	
	return secondXFallsBetween && secondYFallsBetween && secondZFallsBetween;
}

void (*GameEnemy_Update)(void *gameEnemy);

/*
Even though this class is called GameEnemy, it handles every player object in the match, including ours.
When you're making an aimbot, remember to test every function from every class that catches your eye.
*/
void _GameEnemy_Update(void *gameEnemy){
	if(!me){
		me = new me_t();
	}
	else if(!currentTarget){
		currentTarget = new target_t();
	}
	else{
		/*
		My player object should be where my camera is.
		If you cannot find a way to get your player object, or you cannot find a way to differentiate the other objects from your object, this way is fine.
		You just need to make sure that what you think is your camera is actually your camera.
		I made sure my camera was my camera by setting its field of view to 90.
		*/
		if(me->camera){
			/* Get the location of where our camera is, and initialize me->location with it. */
			Transform_INTERNAL_GetPosition(Component_GetTransform(me->camera), &me->location);
			
			/*
			We have to find our player object now. Why?
			To make sure that we don't aim at ourselves. This aimbot is based on distance.
			Every GameEnemy object, including ours, passes through this function. We just have to find it.
			No sense in doing this when my camera is NULL because me->location won't be initialized.
			*/	
			Vector3 gameEnemyLocation;
			
			Transform_INTERNAL_GetPosition(Component_GetTransform(gameEnemy), &gameEnemyLocation);
			
			/*
			There is a very large chance our camera will not be at the exact same location we are.
			However, it is close enough to us so that we're able to get our real object.
			*/
			if(compareVectorsWithTolerance(me->location, gameEnemyLocation, 4.0f)){
				me->object = gameEnemy;
				
				/* Since we have our player object, we can safely get our team. */
				me->team = *(int *)((uint64_t)me->object + 0x48);
			}
		}
		
		/*
		The main aimbot code starts here.
		Obviously, we don't want to examine our player object when doing this. We only want to pull data from it.
		Taking advantage of short circuiting here.
		*/
		if(me->object && me->object != gameEnemy){
			/*
			Choose someone to lock onto.
			Conditions:
				- cannot be on my team
				- cannot be dead
			*/
			
			bool differentTeam = me->team != *(int *)((uint64_t)gameEnemy + 0x48);
			double health = *(double *)((uint64_t)gameEnemy + 0x60);
			bool alive = health > 1;
			
			/*
			In order to save a headache in the future for this first search, just find someone. 
			We know we haven't found anyone if currentTarget's object is NULL.
			*/	
			if(!currentTarget->object){
				if(differentTeam && alive){
					/* We found someone! */
					currentTarget->object = gameEnemy;
					currentTarget->health = health;
					
					/* In case you miss this line, we are initializing currentTarget->location. */
					Transform_INTERNAL_GetPosition(Component_GetTransform(currentTarget->object), &currentTarget->location);
					
					currentTarget->distanceFromMe = Vector3::distance(me->location, currentTarget->location);
				}
				
				GameEnemy_Update(gameEnemy);
				
				return;
			}
			else{
				/*
				Do not aim at a dead enemy.
				Start a new search right away if this is the case.
				*/
				if(currentTarget->health < 1){
					currentTarget = NULL;
					
					GameEnemy_Update(gameEnemy);
					
					return;
				}
				
				/* currentTarget->object is initialized, so update the the data for it. */
				if(gameEnemy == currentTarget->object){
					currentTarget->health = *(double *)((uint64_t)currentTarget->object + 0x60);
					
					/*
					In this game, you don't move from where you are.
					This line is just for safety because you can't assume anything when making this kind of thing.
					*/
					Transform_INTERNAL_GetPosition(Component_GetTransform(currentTarget->object), &currentTarget->location);
					
					currentTarget->distanceFromMe = Vector3::distance(me->location, currentTarget->location);
				}
				
				/*
				Try and find someone new to lock onto.
				We are using the differentTeam and health variables from above.
				Why? No sense in pulling the exact same data twice.
				*/
				Vector3 potentialTargetLocation;
				Transform_INTERNAL_GetPosition(Component_GetTransform(gameEnemy), &potentialTargetLocation);
				
				float potentialEnemyDistanceFromMe = Vector3::distance(me->location, potentialTargetLocation);
				
				if(differentTeam && alive && potentialEnemyDistanceFromMe < currentTarget->distanceFromMe){
					/*
					We found someone new!
					Update the values for currentTarget to make the rotation.
					*/
					currentTarget->object = gameEnemy;
					currentTarget->health = health;
					currentTarget->location = potentialTargetLocation;
					currentTarget->distanceFromMe = potentialEnemyDistanceFromMe;
				}
				
				/*
				Make the rotation to face currentTarget.
				Watch the video in README.md to get know what [SliderHook getSliderValueForHook:@"Y Value Adjustment"] is used for.
				There's also no point of including the mod menu setup code in this, so just pretend it is there.
				*/
				lookRotation = Quaternion::LookRotation((currentTarget->location + Vector3(0, [SliderHook getSliderValueForHook:@"Y Value Adjustment"], 0)) - me->location, Vector3(0, 1, 0));
			}
		}
	}
	
	GameEnemy_Update(gameEnemy);
}

void (*GameEnemyFinder_Update)(void *gameEnemyFinder);

/*
This function is hooked just so I have a way of getting the main camera for my player object.
For some reason I wasn't able to get my camera with Unity's functions.
*/
void _GameEnemyFinder_Update(void *gameEnemyFinder){
	if(!me){
		me = new me_t();
	}
	else{
		void *mainCamera = *(void **)((uint64_t)gameEnemyFinder + 0x20);
		
		/* We don't want a NULL camera. */
		if(mainCamera){
			me->camera = mainCamera;
		}
	}
	
	GameEnemyFinder_Update(gameEnemyFinder);
}

void (*GameLooking_Start)(void *gameLooking) = (void (*)(void *))getRealOffset(0x100250778);

void (*GameLooking_Update)(void *gameLooking);

/*
When you are in game, the map is represented by a 2D plane as far as rotations are concerned, and our rotation is represented by a vector.
In the rotation vector:
	- x = x coordinate
	- y = y coordinate
	- z = rotation acceleration (slows down over time, think mouse acceleration)

Because of this, I thought it was impossible to make an aimbot for this game.
*/
void _GameLooking_Update(void *gameLooking){
	*(Quaternion *)((uint64_t)gameLooking + 0x50) = lookRotation;
	
	GameLooking_Update(gameLooking);
	
	/*
	After an *extremely* long time of analysis, I determined that I have no chance of changing defaultRotation (the instance variable at gameLooking+0x50) AND having those changes take effect in game.
	After analyzing most of the functions in the GameLooking class, I figured out that the only place defaultRotation's value is ever used is in GameLooking::Start.
	This is a very dirty hack because Start should only be called once before Update is called on any script in Unity. But it works.
	From the Unity docs: "Start is called exactly once in the lifetime of the script."
	*/
	GameLooking_Start(gameLooking);
}

%ctor {
	MSHookFunction((void *)getRealOffset(0x10024D990), (void *)_GameEnemy_Update, (void **)&GameEnemy_Update);
	MSHookFunction((void *)getRealOffset(0x10024E87C), (void *)_GameEnemyFinder_Update, (void **)&GameEnemyFinder_Update);
	MSHookFunction((void *)getRealOffset(0x100250B04), (void *)_GameLooking_Update, (void **)&GameLooking_Update);
}

uint64_t getRealOffset(uint64_t offset){
    return _dyld_get_image_vmaddr_slide(0)+offset;
}

 

Updated by Guest
Posted
Just now, ZahirSher said:

@shmoo can this be done to any unity shooter game?

Yes this can be done to Free Fire.

Posted
Just now, ZahirSher said:

@shmoo can this be done to any unity shooter game?

Yes as long as you don't give up. This took close to five hours to make because the game was so "exotic". I don't know another word. hardest game I've ever had to make an aimbot for

Just now, DiDA said:

Yes this can be done to Free Fire.

oooo I should do free fire now actually instead of guns of boom YES HYPE

  • Our picks

    • Asphalt Legends Unite Cheats v24.6.1 +2
      Modded/Hacked App: Asphalt 9: Legends By Gameloft
      Bundle ID: com.gameloft.asphalt9
      iTunes Store Link: https://itunes.apple.com/us/app/asphalt-9-legends/id805603214


      Hack Features:
      - Unlimited Nitro Use / No Nitro Consumption
      - No Traffic / No Incoming Cars
      More to come!
        • Informative
        • Agree
        • Haha
        • Thanks
        • Winner
        • Like
      • 8,651 replies
    • Music Wars Rockstar: Rap Life v1.3.3 Cheats +4
      Modded/Hacked App: Music Wars Rockstar: Rap Life By Music Wars LLC
      Bundle ID: com.mwcompany.MusicWarsRockstar
      iTunes Store Link: https://apps.apple.com/us/app/music-wars-rockstar-rap-life/id1623455289?uo=4

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


      Hack Features:
      - Unlimited money
      - Unlimited creativity
      - Unlimited health
      - Unlimited happiness
        • Informative
        • Agree
        • Like
      • 305 replies
    • Groove Journey v5.2.0 Jailed Mod +1
      Modded/Hacked App: Groove Journey By Somtochukwu Mbala
      Bundle ID: com.kaipha.groovejourney
      iTunes Store Link: https://apps.apple.com/us/app/groove-journey/id6736345547?uo=4


      Hack Features:
      - PREMIUM


      iOS Hack Download IPA Link: https://iosgods.com/topic/190862-groove-journey-v311-jailed-mod-1/
        • Like
      • 134 replies
    • Cooking Diary Restaurant Game v2.42.0 Jailed Cheats +3
      Modded/Hacked App: Cooking Diary® Restaurant Game by MyTona Pte Ltd
      Bundle ID: com.mytonallc.cookingdiary
      iTunes Store Link: https://apps.apple.com/us/app/cooking-diary-restaurant-game/id1214763610?uo=4&at=1010lce4


      Hack Features:
      - Infinite Currencies (Get some)
      - Freeze Boosters


      iOS Hack Download Link: https://iosgods.com/topic/110310-arm64-cooking-diary-restaurant-game-v1160-3/
        • Agree
      • 685 replies
    • Punch TV v2507.17 +5 Jailed Cheats [ Damage & Defence ]
      Modded/Hacked App: Punch TV By Four Fats Limited
      Bundle ID: com.fourfats.punchTV
      App Store Link: https://apps.apple.com/us/app/punch-tv/id6477147072?uo=4

       
       

      🤩 Hack Features

      - Freeze Coins

      VIP
      - Damage Multiplier
      - Defence Multiplier
      - God Mode
      - Unlimited Coins -> Earn some.
      • 1 reply
    • Punch TV v2507.17 +5 Cheats [ Damage & Defence ]
      Modded/Hacked App: Punch TV By Four Fats Limited
      Bundle ID: com.fourfats.punchTV
      App Store Link: https://apps.apple.com/us/app/punch-tv/id6477147072?uo=4

       
       

      🤩 Hack Features

      - Freeze Coins

      VIP
      - Damage Multiplier
      - Defence Multiplier
      - God Mode
      - Unlimited Coins -> Earn some.
      • 0 replies
    • [Hack] DRAGON BALL Z DOKKAN BATTLE v5.28.5 +3 Cheats! [iOS 18/26]
      Modded/Hacked App: DRAGON BALL Z DOKKAN BATTLE by BANDAI NAMCO Entertainment Inc.
      Bundle ID: jp.co.bandainamcogames.BNGI0221
      iTunes Store Link: https://itunes.apple.com/us/app/dragon-ball-z-dokkan-battle/id951627425


      Hack Features:
      - High Damage
      - High Defense
      - High HP

       

      Jailbroken hack: https://iosgods.com/topic/26098-updated-dragon-ball-z-dokkan-battle-v312-3-cheats/
      DRAGON BALL Z DOKKAN BATTLE Discussions Club: https://iosgods.com/clubs/23-dragon-ball-z-dokkan-battle-club/
        • Informative
        • Agree
        • Haha
        • Thanks
        • Winner
        • Like
      • 1,676 replies
    • DRAGON BALL Z DOKKAN BATTLE Japan v5.28.5 +3 Cheats for Non-Jailbroken!
      Modded/Hacked App: ドラゴンボールZ ドッカンバトル by BANDAI NAMCO Entertainment Inc.
      Bundle ID: jp.co.bandainamcogames.BNGI0211
      iTunes Store Link: https://itunes.apple.com/jp/app/%E3%83%89%E3%83%A9%E3%82%B4%E3%83%B3%E3%83%9C%E3%83%BC%E3%83%ABz-%E3%83%89%E3%83%83%E3%82%AB%E3%83%B3%E3%83%90%E3%83%88%E3%83%AB/id951627670?mt=8&uo=4&at=1010lce4

      Hack Features
      - Unlimited HP
      - Unlimited Defense
      - Unlimited Attack


      Jailbroken version of this hack: https://iosgods.com/topic/26099-draon-ball-z-dokkan-battle-japan-ドラゴンボールz-ドッカンバトル-v351-7-cheats/
        • Informative
        • Agree
        • Haha
        • Thanks
        • Winner
        • Like
      • 544 replies
    • DRAGON BALL Z DOKKAN BATTLE Japan (ドラゴンボールZ ドッカンバトル) v5.28.5 +7 Cheats!
      Modded/Hacked App: ドラゴンボールZ ドッカンバトル By BANDAI NAMCO Entertainment Inc.
      Bundle ID: jp.co.bandainamcogames.BNGI0211
      iTunes Link: https://itunes.apple.com/jp/app/ドラゴンボールz-ドッカンバトル/id951627670


      Hack Features
      - Unlimited HP  -  (Put .0 at the back of your value: 1000.0)
      - Unlimited Damage  -  (Put .0 at the back of your value: 1000.0)
      - Unlimited Defense  -  (Put .0 at the back of your value: 1000.0)
      - Dice Hack -  [ONLY RANGE BETWEEN 1 - 6 or it will crash]  -  (Put .0 at the back of your value: 4.0)
      - Dice Hack 1, 2, 3
      - Dice Hack 4, 5, 6
      - Auto Win Battles -> Disable if you get errors.
      PUT .0 at the back of all values!
        • Informative
        • Agree
        • Haha
        • Thanks
        • Winner
        • Like
      • 7,988 replies
    • DRAGON BALL Z DOKKAN BATTLE v5.28.5 +3 Cheats!
      [Updated] DRAGON BALL Z DOKKAN BATTLE Cheats!
      Modded/Hacked App: DRAGON BALL Z DOKKAN BATTLE By BANDAI NAMCO Entertainment Inc.
      Bundle ID: jp.co.bandainamcogames.BNGI0221
      iTunes Link: https://itunes.apple.com/us/app/dragon-ball-z-dokkan-battle/id951627425


      Hack Features:
      - Unlimited HP - (Put .0 at the back of your value: 1111.0)
      - Unlimited Damage - (Put .0 at the back of your value: 1111.0)
      - Unlimited Defense - (Put .0 at the back of your value: 1111.0)
      - Dice Hack
      - Auto Win Battles
      PUT .0 at the back of all values!

      Dice hack doesn't work for tournaments, not recommended to use during one
      Auto Win HIGH RISK OF BAN when used in tournaments

      ViP Version: https://iosgods.com/topic/48201-dragon-ball-z-dokkan-battle-v311-5-cheats-ips4-celebration/
      Non-Jailbroken Version: https://iosgods.com/forum/78-vip-non-jailbroken-hacks-cheats/
      DRAGON BALL Z DOKKAN BATTLE Discussions Club: https://iosgods.com/clubs/23-dragon-ball-z-dokkan-battle-club/
      • 13,256 replies
    • DRAGON BALL Z DOKKAN BATTLE v5.28.5 +7 Cheats [ iOS 17/18/26 Support ]
      Modded/Hacked App: DRAGON BALL Z DOKKAN BATTLE By BANDAI NAMCO Entertainment Inc.
      Bundle ID: jp.co.bandainamcogames.BNGI0221
      iTunes Link: https://itunes.apple.com/us/app/dragon-ball-z-dokkan-battle/id951627425


      Hack 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:
      - Unlimited HP  -  (Put .0 at the back of your value: 1000.0)<br style="color:#555555">- Unlimited Damage  -  (Put .0 at the back of your value: 1000.0)<br style="color:#555555">- Unlimited Defense  -  (Put .0 at the back of your value: 1000.0)<br style="color:#555555">- Dice Hack -  [ONLY RANGE BETWEEN 1 - 6 or it will crash]  -  (Put .0 at the back of your value: 4.0)
      - Dice Hack 1, 2, 3
      - Dice Hack 4, 5, 6
      - Auto Win Battles

      Non-Jailbroken version of this hack: https://iosgods.com/topic/37875-hack-dragon-ball-z-dokkan-battle-v2120-3-cheats-ios-10/
      Free version of this hack: https://iosgods.com/topic/26098-updated-dragon-ball-z-dokkan-battle-v330-3-cheats/
      DRAGON BALL Z DOKKAN BATTLE Discussions Club: https://iosgods.com/clubs/23-dragon-ball-z-dokkan-battle-club/


      Hack Download Link:
      https://iosgods.com/topic/48201-dragon-ball-z-dokkan-battle-v331-7-cheats-ips4-celebration/

      Credits:
      - @ZahirSher
      - @DiDA
        • Like
      • 2,416 replies
    • Injustice 2 v6.5.1 +5 Cheats [iOS 26 Support]
      Modded/Hacked App: Injustice 2 by Warner Bros. Entertainment
      Bundle ID: com.wb.Injustice.Brawler2017
      iTunes Store Link: https://apps.apple.com/us/app/injustice-2/id1109008423



      Hack Features:
      - Instant Skill
      - Instant Swap
      - God Mode / Enemy Doesn't Attack
      This hack works on the latest x64 or ARM64 & ARM64e iDevices: iPhone 5s, 6, 6 Plus, 6s, 6s Plus, 7, 7 Plus, 8, 8 Plus, X, Xr, Xs, Xs Max, 11, 11 Pro, 11 Pro Max, 12, 12 Pro, 12 Pro Max, 12 Mini, SE, iPod Touch 6G, 7G, iPad Air, Air 2, iPad Pro & iPad Mini 2, 3, 4, 5 and later.

        • Informative
        • Agree
        • Haha
        • Thanks
        • Winner
        • Like
      • 2,038 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