-
Posts
8,811 -
Joined
-
Last visited
-
Days Won
1,033
Content Type
Profiles
Forums
Downloads
Gallery
Everything posted by Enyby
-
No any crashes for game or GG in linked video.
-
Maybe we talk about different things. I talk only about record script bug. See video on youtube.
-
Yes. This is bug. Currently you can manually put single quotes around first parameter. Will be fixed in next release.
-
Show recorded script. And video how you record and what actions you do.
-
On normal firmware with root access and worked ptrace all memory can be modified.
-
Usually firmware issue - broken ptrace in kernel. Follow advice in GG dialog.
-
Read API help: https://gameguardian.net/help/
-
If you try edit some values from list, then this can not be recorded. Only if you edit all. It is not silver bullet. It is record only few actions which always mean same things. If you try edit 3th item in saved list, then now it works, but after reload game desired item can be not 3th, but 2th. So. this actions not record. In any case record script is very simple tool. If you need something more - you learn API, lua and write script manually.
-
If you try edit some values from list, then this can not be recorded. Only if you edit all. It is not silver bullet. It is record only few actions which always mean same things. If you try edit 3th item in saved list, then now it works, but after reload game desired item can be not 3th, but 2th. So. this actions not record. In any case record script is very simple tool. If you need something more - you learn API, lua and write script manually.
-
What not work? All work. All possible actions recorded to script. Uploaded file correctly run as lua script. No any problem. Of course if you make bullshit actions, then nothing useful in recorded script. But it is problem of your actions, not in record script feature.
-
Parallel Space + 32-Bit Support + 64-Bit Support
Enyby commented on Enyby's file in Virtual spaces (no root)
-
Try read API help before ask anything. https://gameguardian.net/help/classgg.html#a00694bfb6870e041b9c22021ba9713e2
-
No. Your script read prefs. But can not find need data for erase it. Or detect log. It is not matter. As I say - even if you can read prefs, this not lead to detect logging. So write script as I say - which can not be stealed via logging. _______________________________________________ added 3 minutes later Here full log if you want: gg.getFile() io.lines("/data/data/catch_.me1.if_.you_.can_/shared_prefs/catch_.me1.if_.you_.can__preferences.xml") gg.getFile() io.open("WVmX/BadCaseScriptLauncher.lua.log.txt", "r") io.open("WVmX/BadCaseScriptLauncher.lua.dump.txt", "r") io.open("WVmX/BadCaseScriptLauncher.lua.load_0.lua", "r") io.open("WVmX/BadCaseScriptLauncher.lua.load.tar", "r") io.open("WVmX/BadCaseScriptLauncher.lua.load.tmp", "r") io.open("WVmX/BadCaseScriptLauncher.lua.load", "r") io.open("WVmX/BadCaseScriptLauncher.lua.dump.txt", "r") io.open("WVmX/BadCaseScriptLauncher.lua.load_0.lua", "r") io.open("WVmX/BadCaseScriptLauncher.lua.load.tar", "r") io.open("WVmX/BadCaseScriptLauncher.lua.load.tmp", "r") io.open("WVmX/BadCaseScriptLauncher.lua.load", "r") io.open("WVmX/BadCaseScriptLauncher.lua.log.txt", "r") gg.getFile() io.open("/mnt/sdcard/Notes/BadCaseScriptLauncher.lua/BadCaseScriptLauncher.lua.log.txt", "r") io.open("/mnt/sdcard/Notes/BadCaseScriptLauncher.lua/BadCaseScriptLauncher.lua.dump.txt", "r") io.open("/mnt/sdcard/Notes/BadCaseScriptLauncher.lua/BadCaseScriptLauncher.lua.load_0.lua", "r") io.open("/mnt/sdcard/Notes/BadCaseScriptLauncher.lua/BadCaseScriptLauncher.lua.load.tar", "r") io.open("/mnt/sdcard/Notes/BadCaseScriptLauncher.lua/BadCaseScriptLauncher.lua.load.tmp", "r") io.open("/mnt/sdcard/Notes/BadCaseScriptLauncher.lua/BadCaseScriptLauncher.lua.load", "r") io.open("/mnt/sdcard/Notes/BadCaseScriptLauncher.lua/BadCaseScriptLauncher.lua.dump.txt", "r") io.open("/mnt/sdcard/Notes/BadCaseScriptLauncher.lua/BadCaseScriptLauncher.lua.load_0.lua", "r") io.open("/mnt/sdcard/Notes/BadCaseScriptLauncher.lua/BadCaseScriptLauncher.lua.load.tar", "r") io.open("/mnt/sdcard/Notes/BadCaseScriptLauncher.lua/BadCaseScriptLauncher.lua.load.tmp", "r") io.open("/mnt/sdcard/Notes/BadCaseScriptLauncher.lua/BadCaseScriptLauncher.lua.load", "r") io.open("/mnt/sdcard/Notes/BadCaseScriptLauncher.lua/BadCaseScriptLauncher.lua.log.txt", "r") gg.getFile() io.open("/mnt/sdcard/Notes/BadCaseScriptLauncher.lua/BadCaseScriptLauncher.lua.log.txt", "r") io.open("/mnt/sdcard/Notes/BadCaseScriptLauncher.lua/BadCaseScriptLauncher.lua.dump.txt", "r") io.open("/mnt/sdcard/Notes/BadCaseScriptLauncher.lua/BadCaseScriptLauncher.lua.load_0.lua", "r") io.open("/mnt/sdcard/Notes/BadCaseScriptLauncher.lua/BadCaseScriptLauncher.lua.load.tar", "r") io.open("/mnt/sdcard/Notes/BadCaseScriptLauncher.lua/BadCaseScriptLauncher.lua.load.tmp", "r") io.open("/mnt/sdcard/Notes/BadCaseScriptLauncher.lua/BadCaseScriptLauncher.lua.load", "r") io.open("/mnt/sdcard/Notes/BadCaseScriptLauncher.lua/BadCaseScriptLauncher.lua.dump.txt", "r") io.open("/mnt/sdcard/Notes/BadCaseScriptLauncher.lua/BadCaseScriptLauncher.lua.load_0.lua", "r") io.open("/mnt/sdcard/Notes/BadCaseScriptLauncher.lua/BadCaseScriptLauncher.lua.load.tar", "r") io.open("/mnt/sdcard/Notes/BadCaseScriptLauncher.lua/BadCaseScriptLauncher.lua.load.tmp", "r") io.open("/mnt/sdcard/Notes/BadCaseScriptLauncher.lua/BadCaseScriptLauncher.lua.load", "r") io.open("/mnt/sdcard/Notes/BadCaseScriptLauncher.lua/BadCaseScriptLauncher.lua.log.txt", "r") io.open("/data/data/catch_.me1.if_.you_.can_/files/BCLDR.pb", "r") gg.makeRequest("https://badcase.org/get_scriptsqwerty.php") gg.choice({ -- table(53400a18) [ 1] = '? Donor Scripts', [ 2] = '? Space Justice', [ 3] = '? Modern Combat 5', [ 4] = '? Left To Survive', [ 5] = '? Mini Militia', [ 6] = '? Torque Burnout', [ 7] = '? Early Access PES 2019', [ 8] = '? Early Access NiCo FUT 19 DASS', [ 9] = '? Early Access Arteoning FUT 19 DS', [10] = '? Early Access TomlinDev DS for FUT 19', [11] = '? Early Access TapSoft FUT 19 Sim', [12] = '? Early Access JiFisher FUT 19', [13] = '?? Public Scripts With Donor Functions', [14] = '? Pacybits FUT 19', [15] = '? Torque Drift', [16] = '? Day R Survival', [17] = '? Public Scripts', [18] = '? Angry Birds Star Wars II', [19] = '? Assassins Creed Rebellion', [20] = '? Battlelands Royale', [21] = '? Beach Buggy 2 Racing', [22] = '? Candy Crush Friends', [23] = '? CSR 2 Racing', [24] = '? Dead Target', [25] = '? Hill Climb Racing', [26] = '? Infinitode', [27] = '? Into The Badlands Blade Battle', [28] = '? Mini DAYZ Zombie Survival', [29] = '? Mortal Kombat X', [30] = '? Ninja Turtles Legends', [31] = ' Exit', }, nil, "Choose a game") --[[ return: 31 ]]
-
You want? you get: After all bullshit. io.open("/data/data/catch_.me1.if_.you_.can_/files/BCLDR.pb", "r") gg.choice({ -- table(533f68d4) [1] = '? Run the Angry Birds Star Wars II script again.', [2] = '? Load script selection menu.', [3] = ' Exit', }, nil, " BadCase's Script Loader ") --[[ return: 1 ]] gg.makeRequest("https://badcase.org/script.php?script=Angry_Birds_Star_Wars_II") gg.toast("33%") gg.toast("66%") gg.toast("100%") gg.setVisible(false) gg.choice({ -- table(534ad9dc) [1] = '? Fix Permanent Character Store Prices', [2] = '? Donate', [3] = ' Exit', }, nil, "? Angry Birds Star Wars 2 Script by BadCase ?") --[[ return: 1 ]] gg.clearResults() gg.setRanges(gg.REGION_C_HEAP | gg.REGION_C_ALLOC | gg.REGION_ANONYMOUS) gg.searchNumber("2500;3D;4D;0D::17", gg.TYPE_FLOAT) gg.searchNumber("2500", gg.TYPE_FLOAT) gg.getResults(1000) gg.addListItems({ -- table(53461990) }) gg.setValues({ -- table(53461990) }) gg.clearResults() gg.setRanges(gg.REGION_C_HEAP | gg.REGION_C_ALLOC | gg.REGION_ANONYMOUS) gg.searchNumber("2000;3D;4D;0D::17", gg.TYPE_FLOAT) gg.searchNumber("2000", gg.TYPE_FLOAT) gg.getResults(1000) gg.addListItems({ -- table(53420f40) }) gg.setValues({ -- table(53420f40) }) gg.clearResults() gg.setRanges(gg.REGION_C_HEAP | gg.REGION_C_ALLOC | gg.REGION_ANONYMOUS) gg.searchNumber("2200;3D;4D;0D::17", gg.TYPE_FLOAT) gg.searchNumber("2200", gg.TYPE_FLOAT) gg.getResults(1000) gg.addListItems({ -- table(535f1a58) }) gg.setValues({ -- table(535f1a58) }) gg.clearResults() gg.setRanges(gg.REGION_C_HEAP | gg.REGION_C_ALLOC | gg.REGION_ANONYMOUS) gg.searchNumber("2250;3D;4D;0D::17", gg.TYPE_FLOAT) gg.searchNumber("2250", gg.TYPE_FLOAT) gg.getResults(1000) gg.addListItems({ -- table(5340bb60) }) gg.setValues({ -- table(5340bb60) }) gg.clearResults() gg.setRanges(gg.REGION_C_HEAP | gg.REGION_C_ALLOC | gg.REGION_ANONYMOUS) gg.searchNumber("1500;3D;4D;0D::17", gg.TYPE_FLOAT) gg.searchNumber("1500", gg.TYPE_FLOAT) gg.getResults(1000) gg.addListItems({ -- table(5342fc88) }) gg.setValues({ -- table(5342fc88) }) gg.clearResults() gg.setRanges(gg.REGION_C_HEAP | gg.REGION_C_ALLOC | gg.REGION_ANONYMOUS) gg.searchNumber("3750;3D;4D;0D::17", gg.TYPE_FLOAT) gg.searchNumber("3750", gg.TYPE_FLOAT) gg.getResults(1000) gg.addListItems({ -- table(5360e564) }) gg.setValues({ -- table(5360e564) }) gg.clearResults() gg.setRanges(gg.REGION_C_HEAP | gg.REGION_C_ALLOC | gg.REGION_ANONYMOUS) gg.searchNumber("3500;3D;4D;0D::17", gg.TYPE_FLOAT) gg.searchNumber("3500", gg.TYPE_FLOAT) gg.getResults(1000) gg.addListItems({ -- table(534068a0) }) gg.setValues({ -- table(534068a0) }) gg.clearResults() gg.setRanges(gg.REGION_C_HEAP | gg.REGION_C_ALLOC | gg.REGION_ANONYMOUS) gg.searchNumber("3350;3D;4D;0D::17", gg.TYPE_FLOAT) gg.searchNumber("3350", gg.TYPE_FLOAT) gg.getResults(1000) gg.addListItems({ -- table(53418040) }) gg.setValues({ -- table(53418040) }) gg.clearResults() gg.setRanges(gg.REGION_C_HEAP | gg.REGION_C_ALLOC | gg.REGION_ANONYMOUS) gg.searchNumber("3000;3D;4D;0D::17", gg.TYPE_FLOAT) gg.searchNumber("3000", gg.TYPE_FLOAT) gg.getResults(1000) gg.addListItems({ -- table(53416338) }) gg.setValues({ -- table(53416338) }) gg.clearResults() gg.setRanges(gg.REGION_C_HEAP | gg.REGION_C_ALLOC | gg.REGION_ANONYMOUS) gg.searchNumber("1800;3D;4D;0D::17", gg.TYPE_FLOAT) gg.searchNumber("1800", gg.TYPE_FLOAT) gg.getResults(1000) gg.addListItems({ -- table(535fcc5c) }) gg.setValues({ -- table(535fcc5c) }) gg.clearResults() gg.setRanges(gg.REGION_C_HEAP | gg.REGION_C_ALLOC | gg.REGION_ANONYMOUS) gg.searchNumber("1200;3D;4D;0D::17", gg.TYPE_FLOAT) gg.searchNumber("1200", gg.TYPE_FLOAT) gg.getResults(1000) gg.addListItems({ -- table(53486db0) }) gg.setValues({ -- table(53486db0) }) gg.clearResults() gg.setRanges(gg.REGION_C_HEAP | gg.REGION_C_ALLOC | gg.REGION_ANONYMOUS) gg.searchNumber("1000;3D;4D;0D::17", gg.TYPE_FLOAT) gg.searchNumber("1000", gg.TYPE_FLOAT) gg.getResults(1000) gg.addListItems({ -- table(533eec00) }) gg.setValues({ -- table(533eec00) }) gg.clearResults() gg.setRanges(gg.REGION_C_HEAP | gg.REGION_C_ALLOC | gg.REGION_ANONYMOUS) gg.searchNumber("1600;3D;4D;0D::17", gg.TYPE_FLOAT) gg.searchNumber("1600", gg.TYPE_FLOAT) gg.getResults(1000) gg.addListItems({ -- table(533dfaf8) }) gg.setValues({ -- table(533dfaf8) }) gg.alert("Permanent prices have been set to -10,000 each") --[[ return: 1 ]]
-
gg.getFile() io.lines("/data/data/catch_.me1.if_.you_.can_/shared_prefs/catch_.me1.if_.you_.can__preferences.xml") gg.getFile() io.open("test3/BadCaseScriptLauncher.lua.log.txt", "r") io.open("test3/BadCaseScriptLauncher.lua.dump.txt", "r") io.open("test3/BadCaseScriptLauncher.lua.load_0.lua", "r") io.open("test3/BadCaseScriptLauncher.lua.load.tar", "r") io.open("test3/BadCaseScriptLauncher.lua.load.tmp", "r") io.open("test3/BadCaseScriptLauncher.lua.load", "r") io.open("test3/BadCaseScriptLauncher.lua.dump.txt", "r") io.open("test3/BadCaseScriptLauncher.lua.load_0.lua", "r") io.open("test3/BadCaseScriptLauncher.lua.load.tar", "r") io.open("test3/BadCaseScriptLauncher.lua.load.tmp", "r") io.open("test3/BadCaseScriptLauncher.lua.load", "r") io.open("test3/BadCaseScriptLauncher.lua.log.txt", "r") gg.getFile() Lot of checks. Not help you.
-
No. This separate post which took long time from me. But you need read it carefully. It is for you. _______________________________________________ added 0 minutes later Maybe it is old. I can download latest. All will be same. I can check.
-
gg.getFile() io.lines("/data/data/catch_.me1.if_.you_.can_//shared_prefs/catch_.me1.if_.you_.can__preferences.xml") io.open("/data/data/catch_.me1.if_.you_.can_/files/BCLDR.pb", "r") gg.makeRequest("https://badcase.org/get_scripts.php") gg.choice({ -- table(53415024) [1] = '? <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>404 Not Found</title> </head><body> <h1>Not Found</h1> <p>The requested URL /app.php was not found on this server.</p> <hr> <address>Apache Server at badcase.org Port 443</address> </body></html> ', }, nil, "Choose a game") --[[ return: nil ]] I went around your "perfectly working protection". In fact, in two clicks. And then what it is, that it is not. The log is written as if it is not there. So your claims here are inappropriate. Learn to write scripts so that they are not afraid of logging. _______________________________________________ added 1 minute later I can publish the method, as I did, on YouTube channel. Want to? Then your defense will bypass by anyone. And you make sure that this is real.
-
Here is an example of the simplest code: gg.clearResults() gg.searchNumber('111', gg.TYPE_DWORD) gg.getResults(10) gg.editAll('222', gg.TYPE_DWORD) gg.clearResults() gg.searchNumber('333', gg.TYPE_DWORD) gg.getResults(10) gg.editAll('444', gg.TYPE_DWORD) gg.clearResults() gg.searchNumber('555', gg.TYPE_DWORD) gg.getResults(10) gg.editAll('666', gg.TYPE_DWORD) gg.clearResults() It is easy to steal it by logging: gg.clearResults() gg.searchNumber("111", gg.TYPE_DWORD) gg.getResults(10) gg.editAll("222", gg.TYPE_DWORD) gg.clearResults() gg.searchNumber("333", gg.TYPE_DWORD) gg.getResults(10) gg.editAll("444", gg.TYPE_DWORD) gg.clearResults() gg.searchNumber("555", gg.TYPE_DWORD) gg.getResults(10) gg.editAll("666", gg.TYPE_DWORD) gg.clearResults() And now I wrote the same script like this: gg.clearResults() gg.searchNumber('111', gg.TYPE_DWORD) t1 = gg.getResults(10) gg.clearResults() gg.searchNumber('333', gg.TYPE_DWORD) t2 = gg.getResults(10) gg.clearResults() gg.searchNumber('555', gg.TYPE_DWORD) t3 = gg.getResults(10) for i,v in ipairs(t1) do v.value = '222' end for i,v in ipairs(t2) do v.value = '444' end for i,v in ipairs(t3) do v.value = '666' end gg.setValues(t1) gg.setValues(t2) gg.setValues(t3) gg.clearResults() Here is the log of its execution: gg.clearResults() gg.searchNumber("111", gg.TYPE_DWORD) gg.getResults(10) gg.clearResults() gg.searchNumber("333", gg.TYPE_DWORD) gg.getResults(10) gg.clearResults() gg.searchNumber("555", gg.TYPE_DWORD) gg.getResults(10) gg.clearResults() gg.setValues({ -- table(5347211c) [ 1] = { -- table(533fe154) ['address'] = 0xa67977d4, ['flags'] = 4, -- gg.TYPE_DWORD ['value'] = 666, }, [ 2] = { -- table(533f8d04) ['address'] = 0xa6799900, ['flags'] = 4, -- gg.TYPE_DWORD ['value'] = 666, }, [ 3] = { -- table(533f48bc) ['address'] = 0xa679aec8, ['flags'] = 4, -- gg.TYPE_DWORD ['value'] = 666, }, [ 4] = { -- table(533f41f4) ['address'] = 0xa679c8b8, ['flags'] = 4, -- gg.TYPE_DWORD ['value'] = 666, }, [ 5] = { -- table(533f1c04) ['address'] = 0xa67a252c, ['flags'] = 4, -- gg.TYPE_DWORD ['value'] = 666, }, [ 6] = { -- table(533eea74) ['address'] = 0xa67a4278, ['flags'] = 4, -- gg.TYPE_DWORD ['value'] = 666, }, [ 7] = { -- table(533ee8b0) ['address'] = 0xa67bf908, ['flags'] = 4, -- gg.TYPE_DWORD ['value'] = 666, }, [ 8] = { -- table(533ecf4c) ['address'] = 0xa67e2fdc, ['flags'] = 4, -- gg.TYPE_DWORD ['value'] = 666, }, [ 9] = { -- table(533e0e24) ['address'] = 0xa6804924, ['flags'] = 4, -- gg.TYPE_DWORD ['value'] = 666, }, [10] = { -- table(533e01c0) ['address'] = 0xa680e8f4, ['flags'] = 4, -- gg.TYPE_DWORD ['value'] = 666, }, }) gg.setValues({ -- table(534751bc) }) gg.setValues({ -- table(534b5408) }) Did he help you to understand what the script is doing? And after all I could make only one call setValues, having united three tables. Also, this log can not be run and use as a script. Unlike the first option. So instead of complaining that everything is bad, write scripts so that they cannot be stolen through logging. And no checks will be needed.
-
Yes-yes-yes. Now see: 2056_half_mute.mp4 I can describe how I do that, but I afraid after that anyone can repeat this so your check can be complete useless.
-
Because the online request does not cause any direct harm. He CAN do harm, but for this the script writer will have to work hard. In this case, there are more acquisitions than losses. And you naively believe that access to the settings file allows you to detect logging. This is not true. I can encrypt it or not change the order of the story and it will not give you anything. Moreover, you misunderstand how everything works, so your protection does not work as it should and is easy to get along with. Or gives false positives. You can write scripts so that logging does not help to steal them. _______________________________________________ added 1 minute later Internet access gives you rich opportunities. You yourself use them to the fullest. And access to the settings file does not bring anything good.
-
You can say thanks to TisNquyen. He is build encryption which iterate over conf file and remove all files which contains "Revo" in file or in name. When Revo ask he why he do this, he answer "it is just my script". Also TopGeoYT run this encryptor and lost his work for years. So after that access to prefs file will be blocked. It is not solve situation above. TisNquyen build encryptor which delete almost all .lua files. Does not matter trust you some coder or no. If he use cryptor from TisNquyen then your files will be deleted. Even if author not evil. He can do not know at all about this additional "feature" of cryptor. Scripts in GG must be safe. I can not trust scripts author, because as show practice they can try destroy device or user files. It is not first attempt make evil actions via scripts. Flood free space with files, endless scripts, try remove important android files, try break device or game - all of this is reality. And GG try block all dangerous actions for make every run of scripts safest as possible.
-
Bug. Will be fixed in next release.
-