-
Posts
663 -
Joined
-
Last visited
-
Days Won
16
Content Type
Profiles
Forums
Downloads
Gallery
Everything posted by nok1a
-
But if you did a nearby search of 500 you should be able to find another group search that is better and more static.
-
no, maybe check igameguardian forum. or IOS modding forums.
-
No, it's from libunity.so. There is no field offset for it in the dump.cs.
- 3 replies
-
1
-
- Speed
- speed hack
-
(and 3 more)
Tagged with:
-
Welcome, your having issues with setting up bluestack? Old tutorial:
-
https://gameguardian.net/forum/topic/37633-how-to-edit-keyvalues-of-xml-files-within-the-shared_ref-folder-using-gg/
-
Welcome
-
Can you explain step by step how i need to use the script, i don't know all this assembly editing. And i want to test it out. Editing this is not enough for it to work: It's not even the assembly editing that is the problem. First i want to make sure the script finds the right method. Btw i am sure it took quite some work to make the script but i don't get the purpose. It's supposed to modify methods no ?
- 1 comment
-
- Method to hide Album
- arm64-v8a
-
(and 2 more)
Tagged with:
-
Your right. It's per object. So each time a new player enters the match you must search there xyz as well. This can be fuxed with a script or maybe we find another but better value
-
I mean, i think you can find the other ones as well. Not sure. Would have to test it out. Your sure the value is only for one skin? When i edited it there was no issue shooting you or my alt account.
-
Let me know if works. And if need anything else
-
I am not sure if what i did is same as yours. I took the xyz coordinates of the colider of the other player: 0.10576991737F;0.12057503313F;0.10601880401F:9 See if this group search works. However i don't think this increase the hitbox. Just the collider of the object because i am not able to come closer to the enemy then the distance of it's collider. But the damage is there. Im not sure if this group search applies to all characters. For all i know every collider attached to different type of character has a different size.
-
Is it possible that you need 3 float values for this to work?
-
You right, meta and lib are protected. Is why you can't dump it, but i see the symbol names so normally it should give you the class and field name. But i don't think we should care about their protection. Personally i consider that a modding problem. And i don't do modding. We just try to find the good oil pointers. Can you explain me how you find this hitbox so i can properly replicate? When do i do unknown search, do i need to bit in hitrange or is it just the marker that has to aim on the body? Do i increase, decrease? When?
-
You don't really need to. But did it gave you the field and class name? If so you can then search it with this script: Field Offset Finder (#yyzay1k) Or if you know class name and field you can make your own script, which perhaps looks a bit like this: Finding and changing the field offset using the game Guardian script (#48ezjg21)
-
I understand. I don't think it's bad to see if this value you found can be found with field finder: Class name and Field offset searcher (#by23kt0q) And then build a script based on that.
-
I'm surprised this actually works. Used to try this on other games but the anticheat detected it. Is it a Unity game?
-
ah, it only works with gg.getResults(). gg.loadResults(sortedFields) gg.getResults(gg.getResultsCount()) gg.editAll('15', gg.TYPE_FLOAT)
-
local sortedFields = {} local filter = gg.getValues(WeaponBalanceComponent_reloadIterationTime) for i, v in ipairs(filter) do if (v.value <= 500) and (v.value >= 0.0001) then sortedFields[#sortedFields + 1] = {address = v.address, flags = gg.TYPE_FLOAT} end end gg.loadResults(sortedFields) gg.editAll('15', gg.TYPE_FLOAT)
-
https://gameguardian.net/help/classgg.html#a5f859e6f707b2336152411b19fea7603
-
Yes, i mean that you only keep the values that are most likely not gone make the game crash when editing. For example these values here you most likely don't want to edit because they are pointers, and editing them wrong might cause a crash: On the other hand you probably want to edit these values that have a reasonable range to represent your gun values: So you need to write code that like filter out the values which are not higher then 500 but more then 0.0001 for example: function WeaponBalanceComponent() gg.clearResults() searchString(Class_WeaponBalanceComponent) gg.searchPointer(0) local instances_WeaponBalanceComponent = gg.getResults(gg.getResultsCount()) gg.clearResults() local WeaponBalanceComponent_reloadIterationTime = {} for i, v in ipairs(instances_WeaponBalanceComponent) do WeaponBalanceComponent_reloadIterationTime[i] = {address = v.address + offset_reloadIterationTime, flags = gg.TYPE_FLOAT} end local sortedFields = {} local filter = gg.getValues(WeaponBalanceComponent_reloadIterationTime) for i, v in ipairs(filter) do if (v.value <= 500) and (v.value >= 0.0001) then sortedFields[#sortedFields + 1] = {address = v.address, flags = gg.TYPE_FLOAT} end end gg.loadResults(sortedFields) end WeaponBalanceComponent() Yes, the solution i have you can be applied to any game i guess that doesn't has weird protection, like hidding global-metadata.dat or scrambling the symbols all over the memory.
-
Yeah oke i also forgot that this script was made before i knew about the searchPointer() function. I removed the assembly check thing as we don't need it. function metaDataOffsets() -- Will give you start and end range of the global-metadata lib which resides in region Other. startAddressDat = 0 endAddressDat = 0 local rangesDat = gg.getRangesList("global-metadata.dat") for i, v in ipairs(rangesDat) do if v.state == "O" then startAddressDat = v.start -- start endAddressDat = rangesDat[i]["end"] -- end break end end end metaDataOffsets() -- string names function stringNames() Class_WeaponBalanceComponent = "h00576561706f6e42616c616e6365436f6d706f6e656e7400" end stringNames() function searchString(className) -- takes class name, searches in the range of the global-metadata.dat, and returns class pointer gg.clearResults() gg.searchNumber(className, gg.TYPE_BYTE, nil, nil, startAddressDat, endAddressDat) -- start and end range gg.searchPointer(0) local a = gg.getResults(5) for i, v in ipairs(a) do v.address = v.address - classOffset -- classOffset: 32bit = 0x8 | 64bit = 0x10 end gg.loadResults(a) end function isProcess64Bit() -- we only call this function once. It will check if the final address that gg.getRangesList is more then 32 bits. If so your game is running on 64 bit. Else it´s 32. local regions = gg.getRangesList() local lastAddress = regions[#regions]["end"] return (lastAddress >> 32) ~= 0 end function validISA() -- we store result in the variable "instructionSetArchitecture" (Maybe given it a shorter name does not hurt, lol) instructionSetArchitecture = 0 if isProcess64Bit() == true then -- calling isProcess64Bit() instructionSetArchitecture = 64 else instructionSetArchitecture = 32 end return instructionSetArchitecture end validISA() function instructionsOffset() if instructionSetArchitecture == 32 then -- if true then 32 bit else 64 bit hexConvert = 0xFFFFFFFF -- You need this for safely perform pointer searches on 32 bit. dataType = 4 -- on 32 bit when performing pointer search you do it using gg.TYPE_DWORD (4). classOffset = 0x8 -- when performing pointer search on second character of string you must do a -0x8 to reach class pointer. else dataType = 32 -- on 62 bit when performing pointer search you do it using gg.TYPE_QWORD (32). classOffset = 0x10 -- when performing pointer search on second character of string you must do a -0x10 to reach class pointer. end end instructionsOffset() -- put here function for field offsets of your specific class function offset_weaponBalanceComponent() if instructionSetArchitecture == 32 then -- offset_reloadIterationTime = 0x48 else offset_reloadIterationTime = 0x48 end end offset_weaponBalanceComponent() -- the function for your class which will load all instances and it's field. You might need to add some filtering option function WeaponBalanceComponent() gg.clearResults() searchString(Class_WeaponBalanceComponent) gg.searchPointer(0) local instances_WeaponBalanceComponent = gg.getResults(gg.getResultsCount()) gg.clearResults() local WeaponBalanceComponent_reloadIterationTime = {} for i, v in ipairs(instances_WeaponBalanceComponent) do WeaponBalanceComponent_reloadIterationTime[i] = {address = v.address + offset_reloadIterationTime, flags = gg.TYPE_FLOAT} end gg.loadResults(WeaponBalanceComponent_reloadIterationTime) end WeaponBalanceComponent()
-
Which game is this? Can you give field and class name and send script