-
Posts
630 -
Joined
-
Last visited
-
Days Won
13
Content Type
Profiles
Forums
Downloads
Gallery
Everything posted by nok1a
-
Nah it's not that. My device is not rooted. The game just isn't supported on my device even if you download the APK it crashes.
-
Perhaps. Then it is a problem for me as i won't be able to dump it at runtime with the devices i have.
-
dump.cs
-
Did you dump at runtime? I installed the apk but i can't play the game as it not compatible with my device. So i just extracted the lib/meta from the zip files. It's this game right?: https://apkpure.com/pixel-idle-saga/com.fygame.pis/download/2.1.0
-
Those are offsets from the base of a lib i guess? I can't open the game and check for my self with GG but why your dump looks so weird. Is this done with a mobile dumper? I dunno if that's protection but i can't find these variables in my dump. Probably if you put the lib in a disassembler tool you might find answers.
-
there is no GG script like il2cppdumper with GG. There is script to dump the libs individually: libil2cpp.so and metadata.dat dumping script (#rpaaz4p) When using il2cppd dumper mistakes can happen. It's not big deal. Try again. Or what you mean? Did you try doing it correctly and still got an error?
- 1 reply
-
1
-
Did you try freezing the value: Cannot freeze value on ROVU (#53wy7htf)
-
https://gameguardian.net/help/classgg.html
-
I will not continue updating this script, i don't have the time for it unfortunately. To occupied with work. And at this point it's just a game of hide and seek. It's better you learn to find it your self.
-
Oh, you want the value to return to original state when the user exit the script?
-
It's not clear what you want to do
-
I guess that you selected the default execution path. This happens when you open a process for the first time, then GG will select a default path with the package name of the selected process. Navigate to the path where you have your downloaded Lua script and select it. Then execute it.
-
The speed value that the script finds is from libunity.so. You won't find it in the dump.cs.
-
Hmm, game had an update? Which version your on.
- 11 replies
-
- ToF
- Tower of Fantasy
-
(and 1 more)
Tagged with:
-
Personally i think it's more easy readable to do offsets in hex then in decimal. if v.x64 then t=32 o=8 o2=16 o3=24 else t=4 o=4 o2=8 o3=12 end Since your working with memory addresses which are all visually shown in hexadecimal, and when doing offset calculation with GG it displays in hexadecimal as well. Better get used to it. Why are you calling 2 times same table? code=gg.getValues(code) meta=gg.getValues(meta) if #(code)==0 or #(meta)==0 then print("×× ERROR FINDING CORRECT POINTERS ××") gg.setVisible(true) os.exit() return end code=gg.getValues(code) meta=gg.getValues(meta) It won't change anything, if the length of the table is 0. If it would be 0 the script exits. And if not 0, table will remain same as before your if statement.
- 13 comments
-
- registration
- offsets
- (and 5 more)
-
Usually right when the logo appears i tab to main menu so that process runs in background. It kind of freezes and give me more time to dump the files.
-
Not sure, but can you send deobfuscated version of the speed hack script?
-
- 13 comments
-
- registration
- offsets
- (and 5 more)
-
- 13 comments
-
- registration
- offsets
- (and 5 more)
-
- 13 comments
-
- registration
- offsets
- (and 5 more)
-
I don't know, I would pick a game and do something simple like look for ammo value and change it with GG manually. Then try to make a Lua script for it. Download a simple Lua script from the forum and try to understand how it is making changes to the game. There is some nice documentation we use: https://gameguardian.net/help/classgg.html
-
Oke, i think there is a lot to fix. I can test it if needed before you update. This code is for sure ruining the result it self: code=code[1].value-xAPEXx[*****] code=string.format("%X",tostring(code)) if not v.x64 then code=string.sub(code,-8,-1) find0=nil find0=string.find(code,"0") if find0~=nil and find0==1 then code=string.sub(code,-7,-1) end find0=nil find0=string.find(code,"0") if find0~=nil and find0==1 then code=string.sub(code,-6,-1) end end print("Code = 0x"..code) meta=meta[1].value-xAPEXx[*****] meta=string.format("%X",tostring(meta)) if not v.x64 then meta=string.sub(meta,-8,-1) find0=nil find0=string.find(meta,"0") if find0~=nil and find0==1 then meta=string.sub(meta,-7,-1) end find0=nil find0=string.find(meta,"0") if find0~=nil and find0==1 then meta=string.sub(meta,-6,-1) end end print("Meta = 0x"..meta) Also why checking if the libil2cpp.so library exists. It's irrelevant i think because your only using the global-metadata.dat.
- 13 comments
-
- registration
- offsets
- (and 5 more)
-
- 13 comments
-
- registration
- offsets
- (and 5 more)
-
- 13 comments
-
- registration
- offsets
- (and 5 more)
-
Can you try this: function class_Pointer() local range = gg.getRangesList("global-metadata.dat") -- get dll pointer UserProfile gg.setRanges(gg.REGION_OTHER) gg.searchNumber("h00 55 73 65 72 50 72 6F 66 69 6C 65 2E 49 6E 66 72 61 73 74 72 75 63 74 75 72 65 2E 64 6C 6C 00", gg.TYPE_BYTE, nil, nil, range[1].start, range[1]["end"]) -- UserProfile.Infrastructure.dll local char_UserProfile = gg.getResults(2) gg.setRanges(gg.REGION_ANONYMOUS) gg.clearResults() gg.searchNumber(char_UserProfile[2].address, gg.TYPE_QWORD) local pointerCheck = gg.getResults(1) gg.clearResults() -- get class pointer JourneyProgress gg.setRanges(gg.REGION_OTHER) gg.searchNumber("h00 4A 6F 75 72 6E 65 79 50 72 6F 67 72 65 73 73 00", gg.TYPE_BYTE, nil, nil, range[1].start, range[1]["end"]) -- JourneyProgress local char_Journey = gg.getResults(2) gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber(char_Journey[2].address, gg.TYPE_QWORD) local t = gg.getResults(gg.getResultsCount()) for i, v in ipairs(t) do v.address = v.address - 0x10 end t = gg.getValues(t) local class_Pointer_JourneyProcess = {} for i, v in ipairs(t) do if v.value == pointerCheck[1].address then class_Pointer_JourneyProcess[#class_Pointer_JourneyProcess + 1] = v.address end end gg.clearResults() return class_Pointer_JourneyProcess end local class_Pointer_JourneyProcess = class_Pointer() function field_numberOfCompletedJourney(input) local Level = input gg.searchNumber(class_Pointer_JourneyProcess[1], gg.TYPE_QWORD) local t = gg.getResults(gg.getResultsCount()) for i, v in ipairs(t) do v.address = v.address + 0x190 v.flags = gg.TYPE_DWORD end t = gg.getValues(t) local numberOfCompletedJourney = {} for i, v in ipairs(t) do if v.value == (tonumber(Level[1]) - 1) then numberOfCompletedJourney[#numberOfCompletedJourney + 1] = t[i] end end if #numberOfCompletedJourney == 0 then gg.toast("Level not found, did you input correct level?") gg.sleep(100) else local LevelSet = gg.prompt( {'Input desired Level to edit to'}, {[1]=''}, {[1]='number'} ) for i, v in ipairs(numberOfCompletedJourney) do v.value = tonumber(LevelSet[1]) - 1 end gg.setValues(numberOfCompletedJourney) gg.toast("Level set, go in game and back to lobby for apply the change visually") end gg.clearResults() end function start() local Level = gg.prompt( {'Input your current Level'}, {[1]=''}, {[1]='number'} ) if Level == nil then gg.toast("No input") else local nonNumb = 0 for i in string.gmatch(Level[1], "%U") do local char = string.byte(i) if char < 0x30 or char > 0x39 then nonNumb = nonNumb + 1 end if nonNumb ~= 0 then gg.toast("This is not a number") else field_numberOfCompletedJourney(Level) break end end end end while (true) do if gg.isVisible() then gg.setVisible(false) start() end gg.sleep(100) end