Search the Community
Showing results for tags 'offset'.
-
Great job with your new feature `record script` devs. It would be awesome if you guys make it to recognize offset. It is great feature to auto because sometimes the value we need to chage is not a constant but nearby values is. @Enyby@d2dyno
-
I have the latest version (8.10.2) of GG but I think I must be missing something in it. There is a lot of functionality for finding offsets between two addresses by using either the "Caluculate Offset" or "Offset Calculator" functions. I was expecting though that there would be a way to apply an offset against a list of saved values but I can't seem to find a way to do that. Since there is no way to do pointer searches in the app, the next logical way of keeping a list of addresses useable for a game would be to apply a global offset to all the saved values. Is this possible or does this functionality not exist in the program? If it doesn't exist then I'd like to raise a feature request for the below functions: 1) Ability to calculate offset between a saved value and a searched value 2) Ability to apply an offset to all saved values to change all their addresses at once 3) Ability to select a saved address and searched address and apply the offset between them to all saved addresses (This would combine the function of both the above two options) The idea here is that even though the memory addresses change each time a game is started the position of the values is generally always relative. If I have searched and found a large number of values and saved them for a game I would want to be able to load those values the next time I start the game and apply an offset to all of them to correct their position to the right memory region. Preferably, the most ideal process would be as follows: 1) Find memory values you want to edit and freeze 2) Save those values to a list for that game 3) Next time you play the game you load the list of saved memory addresses (that no longer point to the right location) 4) Perform a search and find the location of one of the saved memory addresses 5) Select the saved value and search result that matches and choose an option in the app to apply the offset between those values to all addresses in the saved list The option I indicate in the last step is the function we need as an alternative to having the ability to search for memory pointers. If that is too hard, having at least an option to apply an offset to the saved list manually would be terrific!
-
SIMPLE SCRIPT EASY TO UNDERSTAND HOW TO USE OFFSET WITH GAME GUARDIAN gg.setValues({{address=gg.getRangesList("libexample.so")[1].start+0xABC123,flags=gg.TYPE_FLOAT,value=345}}) Script Breakdown 1. gg.setValues(): This function is used to set new values in the memory of the application being modified by GameGuardian. It allows you to specify what memory address you want to change and what value you want to set there. 2. {{address=gg.getRangesList("libexample.so")[1].start+0xABC123, flags=gg.TYPE_FLOAT, value=345}}: This argument to `gg.setValues()` is a table (in Lua, tables are used to represent arrays and objects). Let’s dissect this table: gg.getRangesList("libexample.so"): This function retrieves a list of memory ranges associated with the specified library, in this case, `"libexample.so"`. The returned list includes information about different segments of memory related to this library. [1]: Accesses the first range/address(base Address) from the list. This typically refers to the main segment where the library’s data is stored. start: This property of the memory range object gives the starting address of the memory segment for `"libexample.so"`. +0xABC123: Adds an offset to the starting address. The offset `0xABC123` is a hexadecimal number which represents the specific location within the library’s memory where you want to make the change. flags=gg.TYPE_FLOAT: Specifies the type of data being modified at the target address. In this case, `gg.TYPE_FLOAT` indicates that the value being set is a floating-point number. value=345: This is the new value that will be set at the calculated address. Since `flags=gg.TYPE_FLOAT`, `345` will be interpreted as a floating-point number. Summary This script sets a floating-point value (`345`) at a specific address in the memory of the game or application. The exact address is determined by adding an offset (`0xABC123`) to the starting address of the memory range for the `"libexample.so"` library. This could be used to modify game behavior or data dynamically.
-
- offset
- Offset value
- (and 12 more)
-
Version 1.0.0
714 downloads
Hi guys its crystal mods! Tired of rewriting code especially offset code multiple times? well this script can only do it multiple times in ONE FUNCTION! Warning: the long function Runtime() must be declared above all of your functions so you can access it when u need it How to use it: 1.Paste the offset code function above all your hack functions 2. when you want to use it simply call the function then enter the following information example use: Runtime(32,100,gg.TYPE_DWORD,0x91,gg.TYPE_FLOAT,0.01) {search 100 in A also DWORD, sleeps 10 seconds for a value change then prompts to enter the new value, refines the value then starts adding the offset you entered, selects the flags you would like to edit it into then edit it!} this will search your value in whatever range, and data type, then it will give you 10 seconds to change the value, you do so then it will get one results after refining your input. it will do the offset method as normal until you get your desired want Next features: Check if lib file is present Add Down offset + faster execution Self Encode v1.0 (to prevent modifcation) (if you want unwanted calls simply rename the function) Please use credits if ever reposting after modifying ^^ please comment your thoughts on this script thanks -
View File [1.0] Crystal Exec Runtime.lua Hi guys its crystal mods! Tired of rewriting code especially offset code multiple times? well this script can only do it multiple times in ONE FUNCTION! Warning: the long function Runtime() must be declared above all of your functions so you can access it when u need it How to use it: 1.Paste the offset code function above all your hack functions 2. when you want to use it simply call the function then enter the following information example use: Runtime(32,100,gg.TYPE_DWORD,0x91,gg.TYPE_FLOAT,0.01) {search 100 in A also DWORD, sleeps 10 seconds for a value change then prompts to enter the new value, refines the value then starts adding the offset you entered, selects the flags you would like to edit it into then edit it!} this will search your value in whatever range, and data type, then it will give you 10 seconds to change the value, you do so then it will get one results after refining your input. it will do the offset method as normal until you get your desired want Next features: Check if lib file is present Add Down offset + faster execution Self Encode v1.0 (to prevent modifcation) (if you want unwanted calls simply rename the function) Please use credits if ever reposting after modifying ^^ please comment your thoughts on this script thanks Submitter Crystal_Mods100x Submitted 06/08/2021 Category Templates
-
Hi everyone im requesting help here because i was making a script for a game and i could not get it to work it requires 20 shotgun ammo then it needs to be refined to 16 then i caculated the 2 numbers to offset and i got 70 (0x46), i entered the number but it does not work (it works when player glides toward the direction they are pointing toward + fast fire rate) here is the source code i did not code this all credits go towards > @AKRAMRAZA for coding the script base Thank you but here is the problem i keep getting the wrong results and it does not work -Source code function test() gg.clearResults() gg.searchNumber("20", gg.TYPE_DWORD) gg.alert('10 seconds to change ammo to 17') gg.sleep(10000) --10 seconds gg.refineNumber("16", gg.TYPE_DWORD) p = gg.getResults(1) local q = {} q[1] = {} q[1].address = p[1].address + 0x46 --address to the offset(ex: -4) to the refined result q[1].flags = gg.TYPE_FLOAT --datatype which i want to edit the value q[1].value = 1 --value i want to edit the glide value to gg.setValues(q) gg.alert('Done') gg.clearResults() end function stop() os.exit() end main = gg.choice({'Glide speed','Exit'}) if main==1 then test() end if main==2 then stop() end But what am i doing wrong? i also dont know how many results only one result comes in for the shotgun ammo is that?
-
Everything about offsets 1. What is offset ? It is a distance between something. The distance can be from lib file start + offset (distance) = value , to reach the final value, it can be distance of a value declared in a class with the start of class, it can be distance between any values. 2. I got offset like "0xFA891CC" from somewhere. How to use it? This is probably a method offset. These are the example of method : SetCoins(int coins), NextLevel(), Jump(). Methods are found in code app memory range in game guardian and the structure of them is same every time you open the game. The offset that you have is the distance of method from lib start. It can be confusing for new people to write a script to use them, so i have developed a tool called method patching library. There are around 6 kind of methods and you have to know how to work with each of them. So watch a full playlist here to learn how to hack them all. https://www.youtube.com/watch?v=KrtsCgOk0dQ&list=PLPXJyeG0N6pDpD8_Fu67fCzTpR-QrCOqV 3. How do I find offsets myself? For that you have to know what is dumping and how to dump a game. After dumping you will get a dump.cs file which can be opened with a text editor. Inside that you can find methods. Watch this video if you don't know about dumping. This video is about felid offset finding (another concept in game hacking) but the dump and offset find process is exactly same.
- 1 reply
-
1
-
- offset
- find offset
-
(and 3 more)
Tagged with:
-
Hi Guardians! Dark lord here aka "OREW" I was trying to hack a specific game and I succeeded with dumping il2cpp.so And after searching for offset and so on i fiend these value's or whatever this $hit is // Fields private IUnitController _unitController; // 0xC [CompilerGeneratedAttribute] // RVA: 0x3BBE24 Offset: 0x3BBE24 VA: 0x3BBE24 private int <PlayerId>k__BackingField; // 0x10 [CompilerGeneratedAttribute] // RVA: 0x3BBE34 Offset: 0x3BBE34 VA: 0x3BBE34 private bool <DespawnOnLoad>k__BackingField; // 0x14 private static RaycastHit2D[] rayhit; // 0x0 private Collider2D[] _sharedHitColliders; // 0x18 private static int _sharedEnemiesLayer; // 0x4 private static int _sharedWildlifeLayer; // 0x8 private static int _sharedObstaclesLayer; // 0xC private static readonly int APPrepare; // 0x10 private static readonly int APShoot; // 0x14 private static readonly int APShootPerfect; // 0x18 private static readonly int APStand; // 0x1C private static readonly int APAttack; // 0x20 private static readonly int APUseSpear; // 0x24 private static readonly int APUseShield; // 0x28 private static readonly int APIdleness; // 0x2C private static readonly int APSpeed; // 0x30 [HeaderAttribute] // RVA: 0x3BBE44 Offset: 0x3BBE44 VA: 0x3BBE44 public float maxForce; // 0x1C public float maxError; // 0x20 public int minAttempts; // 0x24 public int maxAttempts; // 0x28 public float shootPrepTime; // 0x2C public float shootIntervalTime; // 0x30 public float shootCooldownTime; // 0x34 public float playerShootCooldownTime; // 0x38 public float playerAttackCooldownTime; // 0x3C public float shootCooldownWithKnightTime; // 0x40 public float shootRange; // 0x44 public float fleeRange; // 0x48 public float towerShootRange; // 0x4C [RangeAttribute] // RVA: 0x3BBE78 Offset: 0x3BBE78 VA: 0x3BBE78 public float perfectArrowProbability; // 0x50 [RangeAttribute] // RVA: 0x3BBE90 Offset: 0x3BBE90 VA: 0x3BBE90 public float dropInWaterProbability; // 0x54 [SerializeField] // RVA: 0x3BBEA8 Offset: 0x3BBEA8 VA: 0x3BBEA8 private GameObject pseudoTarget; // 0x58 private float _nextPlayerShootTime; // 0x5C private float _nextPlayerAttackTime; // 0x60 [HeaderAttribute] // RVA: 0x3BBEB8 Offset: 0x3BBEB8 VA: 0x3BBEB8 public float walkSpeed; // 0x64 public float runSpeed; // 0x68 public float coinPickupRange; // 0x6C public float maxPursueDistance; // 0x70 public float maxLead; // 0x74 public FloatRange borderHuntRange; // 0x78 [SerializeField] // RVA: 0x3BBEEC Offset: 0x3BBEEC VA: 0x3BBEEC [TimeOfDayAttribute] // RVA: 0x3BBEEC Offset: 0x3BBEEC VA: 0x3BBEEC private float returnToWallTime; // 0x80 public bool harmless; // 0x84 public Arrow arrowPrefab; // 0x88 public RuntimeAnimatorController hunterAnimator; // 0x8C public RuntimeAnimatorController soldierAnimator; // 0x90 [HeaderAttribute] // RVA: 0x3BBF1C Offset: 0x3BBF1C VA: 0x3BBF1C public AudioEmitter climbTowerSound; // 0x94 public AudioEmitter shootSound; // 0x98 public AudioEmitter buffedShootSound; // 0x9C public AudioEmitter meleeSound; // 0xA0 [HeaderAttribute] // RVA: 0x3BBF50 Offset: 0x3BBF50 VA: 0x3BBF50 public FloatRange distanceFromWall; // 0xA4 private FloatRange _distanceFromWallModified; // 0xAC private float _guardPos; // 0xB4 public FloatRange distanceFromKnight; // 0xB8 [HideInInspector] // RVA: 0x3BBF84 Offset: 0x3BBF84 VA: 0x3BBF84 public float knightFollowDistance; // 0xC0 protected CRPCHeader parentHeaderRef; // 0xC4 protected int _setGuardRPCIndex; // 0xC8 protected int _handleGuardSlotIndex; // 0xCC protected int _requestGuardSlotIndex; // 0xD0 protected int _embarkIndex; // 0xD4 protected int _absoluteFaceIndex; // 0xD8 protected int _archerBuffedIndex; // 0xDC protected int _hideStatusIndex; // 0xE0 protected int _sendCameraFocusRequest; // 0xE4 protected int _sendControllerIndex; // 0xE8 private Animator _animator; // 0xEC private Mover _mover; // 0xF0 private Rigidbody2D _rigidbody; // 0xF4 private SpriteRenderer _spriteRenderer; // 0xF8 private Wallet _wallet; // 0xFC private Wallet _originalWallet; // 0x100 private FixedTransform _fixedTransform; // 0x104 private Character _character; // 0x108 private Damageable _damageable; // 0x10C private PushablePusher _pusher; // 0x110 private Scanner _enemyScanner; // 0x114 private Scanner _wildlifeScanner; // 0x118 private Scanner _coinScanner; // 0x11C private float _cooldown; // 0x120 private float _lastGlobalScan; // 0x124 private AnimationSync _animSyncRef; // 0x128 private float _cooldownReduction; // 0x12C private float _avoidPortalRange; // 0x130 private Coin _targetCoin; // 0x134 private Formation _currentFormation; // 0x138 private GameObject _shootingTarget; // 0x13C private GameObject _huntingTarget; // 0x140 private GuardSlot _guardSlot; // 0x144 [CompilerGeneratedAttribute] // RVA: 0x3BBF94 Offset: 0x3BBF94 VA: 0x3BBF94 private bool <inGuardSlot>k__BackingField; // 0x148 [SerializeField] // RVA: 0x3BBFA4 Offset: 0x3BBFA4 VA: 0x3BBFA4 private Side _guardSide; // 0x14C private int _guardDepth; // 0x150 private Knight _knight; // 0x154 private bool _isWearingBannerColor; // 0x158 private bool _controllableSprinting; // 0x159 private IHaglet behaviour; // 0x15C private IHaglet shoot; // 0x160 private IHaglet attack; // 0x164 private PositionSync cachedPosSync; // 0x168 private Persistent persistent; // 0x16C [CompilerGeneratedAttribute] // RVA: 0x3BBFB4 Offset: 0x3BBFB4 VA: 0x3BBFB4 private bool <IsBuffed>k__BackingField; // 0x170 [CompilerGeneratedAttribute] // RVA: 0x3BBFC4 Offset: 0x3BBFC4 VA: 0x3BBFC4 private UnlockNewRulerStatue <newRulerStatue>k__BackingField; // 0x174 [CompilerGeneratedAttribute] // RVA: 0x3BBFD4 Offset: 0x3BBFD4 VA: 0x3BBFD4 private HelPuzzlePillar <helPuzzlePillar>k__BackingField; // 0x178 private Boat _boat; // 0x17C [HeaderAttribute] // RVA: 0x3BBFE4 Offset: 0x3BBFE4 VA: 0x3BBFE4 [SerializeField] // RVA: 0x3BBFE4 Offset: 0x3BBFE4 VA: 0x3BBFE4 private float shieldSpotRange; // 0x180 [SerializeField] // RVA: 0x3BC02C Offset: 0x3BC02C VA: 0x3BC02C private float shieldScanInterval; // 0x184 private NpcShieldUser _npcShieldUser; // 0x188 private Droppable targetShield; // 0x18C private Archer.AttackMode _desiredAttackMode; // 0x190 private Archer.AttackMode _attackMode; // 0x194 [SerializeField] // RVA: 0x3BC03C Offset: 0x3BC03C VA: 0x3BC03C private float _meleeAttackRange; // 0x198 [SerializeField] // RVA: 0x3BC04C Offset: 0x3BC04C VA: 0x3BC04C private float _meleeAttackPredictAheadTime; // 0x19C [SerializeField] // RVA: 0x3BC05C Offset: 0x3BC05C VA: 0x3BC05C private float _meleeCooldown; // 0x1A0 [SerializeField] // RVA: 0x3BC06C Offset: 0x3BC06C VA: 0x3BC06C private int _meleeDamage; // 0x1A4 [SerializeField] // RVA: 0x3BC07C Offset: 0x3BC07C VA: 0x3BC07C private int _meleeMaxHitsPerAttack; // 0x1A8 private Damageable _meleeTarget; // 0x1AC private bool _meleeAttackPlaying; // 0x1B0 [SerializeField] // RVA: 0x3BC08C Offset: 0x3BC08C VA: 0x3BC08C private Rect _hitBox; // 0x1B4 [HeaderAttribute] // RVA: 0x3BC09C Offset: 0x3BC09C VA: 0x3BC09C [SerializeField] // RVA: 0x3BC09C Offset: 0x3BC09C VA: 0x3BC09C private float _switchWeaponsButtonDuration; // 0x1C4 private bool _downKeyPressed; // 0x1C8 private bool _playerAttackModeChanged; // 0x1C9 private float _switchWeaponsTimer; // 0x1CC private float _arrowLength; // 0x1D0 private const int Stand = 1; private const int FollowKnight = 2; private const int GoToTower = 4; private const int GoToWall = 8; private const int Hunt = 16; private const int GrabCoin = 32; private const int Flee = 64; private const int Held = 128; private const int Grabbed = 256; private const int Inert = 512; private const int InFormation = 1024; private const int FreeRuler = 2048; private const int GrabShield = 4096; private const int SwitchWeapons = 8192; private const int GoToOfferingPillar = 16384; private const int PlayerControl = 32768; private static readonly Formation.UnitTypes[] FormationUnitType; // 0x34 And THIS one // Fields public int hitDamage; // 0xC public int perfectDamageMultiplier; // 0x10 public bool shouldOrientate; // 0x14 public bool canBounce; // 0x15 [HeaderAttribute] // RVA: 0x3BC0E4 Offset: 0x3BC0E4 VA: 0x3BC0E4 public bool isFireArrow; // 0x16 public int damagePerTick; // 0x18 public int damageTicks; // 0x1C public float damageDelayOffset; // 0x20 public float damageDelayTime; // 0x24 [HeaderAttribute] // RVA: 0x3BC118 Offset: 0x3BC118 VA: 0x3BC118 public AudioEmitter wallHitSound; // 0x28 public AudioEmitter groundHitSound; // 0x2C public AudioEmitter waterHitSound; // 0x30 [HeaderAttribute] // RVA: 0x3BC14C Offset: 0x3BC14C VA: 0x3BC14C public GameObject archer; // 0x34 private bool _orientToVelocity; // 0x38 private bool _has***; // 0x39 private Rigidbody2D _rigidbody; // 0x3C private Collider2D _collider; // 0x40 private TrailRenderer _trail; // 0x44 private bool _perfect; // 0x48 private NetworkSoftSimulator _softSim; // 0x4C private bool authorityActive; // 0x50 // Methods // RVA: 0xCB69A0 Offset: 0xCB69A0 VA: 0xCB69A0 private void Awake() { } // RVA: 0xCB6B0C Offset: 0xCB6B0C VA: 0xCB6B0C private void OnEnable() { } // RVA: 0xCB6BF0 Offset: 0xCB6BF0 VA: 0xCB6BF0 public void DropInWater() { } // RVA: 0xCB6CA0 Offset: 0xCB6CA0 VA: 0xCB6CA0 public void PerfectShot() { } // RVA: 0xCB6BA4 Offset: 0xCB6BA4 VA: 0xCB6BA4 private void EnableTrail() { } [IteratorStateMachineAttribute] // RVA: 0x3D1404 Offset: 0x3D1404 VA: 0x3D1404 // RVA: 0xCB6C28 Offset: 0xCB6C28 VA: 0xCB6C28 private IEnumerator DropInWaterInternal() { } // RVA: 0xCB6CAC Offset: 0xCB6CAC VA: 0xCB6CAC private void OnDestroy() { } // RVA: 0xCB6D28 Offset: 0xCB6D28 VA: 0xCB6D28 private void LateUpdate() { } // RVA: 0xCB6DF8 Offset: 0xCB6DF8 VA: 0xCB6DF8 private void OnCollisionEnter2D(Collision2D collision) { } // RVA: 0xCB7630 Offset: 0xCB7630 VA: 0xCB7630 private void OnTriggerEnter2D(Collider2D collider) { } // RVA: 0xCB6E34 Offset: 0xCB6E34 VA: 0xCB6E34 private void HitObject(GameObject target, bool physicalHit) { } // RVA: 0xCB766C Offset: 0xCB766C VA: 0xCB766C Slot: 4 public void HandleAuthorityChange(bool newAuthorityState) { } // RVA: 0xCB6A94 Offset: 0xCB6A94 VA: 0xCB6A94 Slot: 5 public void RegisterWithNetworkBoss() { } // RVA: 0xCB6CB0 Offset: 0xCB6CB0 VA: 0xCB6CB0 Slot: 6 public void DeregisterWithNetworkBoss() { } // RVA: 0xCB7674 Offset: 0xCB7674 VA: 0xCB7674 Slot: 7 public void ReceiveInitialise() { } // RVA: 0xCB7868 Offset: 0xCB7868 VA: 0xCB7868 Slot: 8 public void PostRecvStop() { } // RVA: 0xCB7874 Offset: 0xCB7874 VA: 0xCB7874 public void .ctor() { } } As you see the Walkspeed showing 0x64 .. Attack speed something like it to Wtf should i do with this?! And should someone explain to me what is the difference between RVA, VA, offset..? Aren't all them offset?! And i know how to search for the offset Xa>il2cpp> offset calculator, 0CB6CAC Thx in advance
-
Version v03
1,895 downloads
You can Quickly edit lib offsets for testing hacks. Or search Public Class Field Offsets. Enter lib Offset or Method Name Select Edit Option Enter Value (Int,Float,Double,Long) Copy Arm Hex or "Script it" Perfect to quickly and easily test offsets from dump.cs Works on all lib types, Not Just Unity/libil2cpp Script is Online for easy updates. Open Source / Not Encrypted -
View File Lib Offset Hook Editor/Tester You can Quickly edit lib offsets for testing hacks. Or search Public Class Field Offsets. Enter lib Offset or Method Name Select Edit Option Enter Value (Int,Float,Double,Long) Copy Arm Hex or "Script it" Perfect to quickly and easily test offsets from dump.cs Works on all lib types, Not Just Unity/libil2cpp Script is Online for easy updates. Open Source / Not Encrypted Submitter APEXggV2 Submitted 03/26/2024 Category Tools