Jump to content

LUA scripting


Enyby
 Share

Recommended Posts

On 7/20/2017 at 8:50 PM, Enyby said:

Build 5559:

GameGuardian.5559.apk

It think you made a typo, it's 5561 actually:

Screenshot_20170722-082448.thumb.png.465a729e458d4b8e55b9ea559030baf1.png

Some request:

1_Can we have a command to edit a certain value in search results?

We have "editAll" command but sometimes it's critical to only edit one value from founded values, cuz others are fake and crash the game, something like this:

[code] [edit] = function: edit /* gg.edit(value number in results,string value, int type) [/code]

example we have 4 value and we want to edit the third value to 1000 we do this then:

 gg.edit(3,1000,gg.TYPE_DWORD) 

 

2_can we have the ability to save a value to saved list? Not just for saving, for adding other addressess based on that address from offsets.

_______________________________________________
added 1 minute later
5 hours ago, congadey said:

about 5561 not 5559

Yes, you are right. In "about" it's 5561 not 5599. Thanks for telling.

Link to comment
Share on other sites

  • Administrators
1 minute ago, Backlift said:

It think you made a typo, it's 5561 actually:

No. I made rebuild. Build number increased but it is does not matter.

_______________________________________________
added 3 minutes later
2 minutes ago, Backlift said:

1_Can we have a command to edit a certain value in search results?

Use
 

local tbl = gg.getResults(10)
print(tbl)
local item = tbl[3]
item.value = '123'
gg.setValues({item})

 

Link to comment
Share on other sites

  • Administrators
6 minutes ago, Backlift said:

can we have the ability to save a value to saved list? Not just for saving, for adding other addressess based on that address from offsets.

Now - no. We have plans about work with saved lists in future.

Link to comment
Share on other sites

  • Administrators

Updated gg table:

Spoiler

gg =   table(538aa1ec): {
       [BUILD] = 5713
       [CACHE_DIR] = /data/data/catch_.me_.if_.you_.can_/cache
       [EXT_CACHE_DIR] = /mnt/sdcard/Android/data/catch_.me_.if_.you_.can_/cache
       [EXT_FILES_DIR] = /mnt/sdcard/Android/data/catch_.me_.if_.you_.can_/files
       [FILES_DIR] = /data/data/catch_.me_.if_.you_.can_/files
       [PACKAGE] = catch_.me_.if_.you_.can_
       [REGION_ANONYMOUS] = 32
       [REGION_ASHMEM] = 524288
       [REGION_BAD] = 131072
       [REGION_CODE_APP] = 16384
       [REGION_CODE_SYS] = 32768
       [REGION_C_ALLOC] = 4
       [REGION_C_BSS] = 16
       [REGION_C_DATA] = 8
       [REGION_C_HEAP] = 1
       [REGION_JAVA] = 65536
       [REGION_JAVA_HEAP] = 2
       [REGION_OTHER] = -1032320
       [REGION_PPSSPP] = 262144
       [REGION_STACK] = 64
       [SIGN_EQUAL] = 536870912
       [SIGN_INEQUAL] = 268435456
       [SIGN_LARGER] = 67108864
       [SIGN_SMALLER] = 134217728
       [TYPE_AUTO] = 127
       [TYPE_BYTE] = 1
       [TYPE_DOUBLE] = 64
       [TYPE_DWORD] = 4
       [TYPE_FLOAT] = 16
       [TYPE_QWORD] = 32
       [TYPE_WORD] = 2
       [TYPE_XOR] = 8
       [VERSION] = 8.29.0
       [VERSION_INT] = 82900
       [alert] = function: alert /* gg.alert(string text[, string positive[, string negative[, string neutral]]]) -> int: 0 = cancel, 1 = positive, 2 = negative, 3 = neutral */
       [choice] = function: choice /* gg.choice(table items[, string selected]) -> string || nil */
       [clearResults] = function: clearResults /* gg.clearResults() -> nil */
       [copyMemory] = function: copyMemory /* gg.copyMemory(long from, long to, int bytes) -> true || string with error */
       [dumpMemory] = function: dumpMemory /* gg.dumpMemory(long from, long to, string dir) -> true || string with error */
       [editAll] = function: editAll /* gg.editAll(string value, int type) -> count of changed || string with error */
       [getRanges] = function: getRanges /* gg.getRanges() -> int */
       [getResultCount] = function: getResultCount /* gg.getResultCount() -> long */
       [getResults] = function: getResults /* gg.getResults(int count) -> array || string with error */
       [getSelectedPackage] = function: getSelectedPackage /* gg.getSelectedPackage() -> string || nil */
       [getSpeed] = function: getSpeed /* gg.getSpeed() -> double */
       [getValuesRange] = function: getValuesRange /* gg.getValuesRange(table values) -> table || string with error */
       [getValues] = function: getValues /* gg.getValues(table values) -> table || string with error */
       [gotoAddress] = function: gotoAddress /* gg.gotoAddress(long address) -> nil */
       [isPackageInstalled] = function: isPackageInstalled /* gg.isPackageInstalled(string pkg) -> bool */
       [isProcessPaused] = function: isProcessPaused /* gg.isProcessPaused() -> bool */
       [isVisible] = function: isVisible /* gg.isVisible() -> bool */
       [multiChoice] = function: multiChoice /* gg.choice(table items[, table selection]) -> table || nil */
       [processKill] = function: processKill /* gg.processKill() -> bool */
       [processPause] = function: processPause /* gg.processPause() -> bool */
       [processResume] = function: processResume /* gg.processResume() -> bool */
       [processToggle] = function: processToggle /* gg.processToggle() -> bool */
       [prompt] = function: prompt /* gg.prompt(table prompts[, table defaults[, table types]]) -> nil || table with keys from prompts and values from inputs */
       [removeResults] = function: removeResults /* gg.removeResults(table results) -> true || string with error */
       [searchAddress] = function: searchAddress /* gg.searchAddress(string text[, long mask[, int type[, int sign[, long memoryFrom[, long memoryTo]]]]]) -> true || string with error */
       [searchFuzzy] = function: searchFuzzy /* gg.searchFuzzy([string difference[, int type[, int sign[, long memoryFrom[, long memoryTo]]]]]) -> true || string with error */
       [searchNumber] = function: searchNumber /* gg.searchNumber(string text[, int type[, bool encrypted[, int sign[, long memoryFrom[, long memoryTo]]]]]) -> true || string with error */
       [setRanges] = function: setRanges /* gg.setRanges(int ranges) -> nil */
       [setSpeed] = function: setSpeed /* gg.setSpeed(double speed) -> true || string with error */
       [setValues] = function: setValues /* gg.setValues(table values) -> true || string with error */
       [setVisible] = function: setVisible /* gg.setVisible(bool visible) -> nil */
       [sleep] = function: sleep /* gg.sleep(int milliseconds) -> nil */
       [startFuzzy] = function: startFuzzy /* gg.startFuzzy([int type[, long memoryFrom[, long memoryTo]]]) -> true || string with error */
       [timeJump] = function: timeJump /* gg.timeJump(string time) -> true || string with error */
       [toast] = function: toast /* gg.toast(string text[, bool fast]) -> nil */
}

 

 

Link to comment
Share on other sites

4 hours ago, Enyby said:

Updated gg table:

  Hide contents


gg =   table(538aa1ec): {
       [BUILD] = 5713
       [CACHE_DIR] = /data/data/catch_.me_.if_.you_.can_/cache
       [EXT_CACHE_DIR] = /mnt/sdcard/Android/data/catch_.me_.if_.you_.can_/cache
       [EXT_FILES_DIR] = /mnt/sdcard/Android/data/catch_.me_.if_.you_.can_/files
       [FILES_DIR] = /data/data/catch_.me_.if_.you_.can_/files
       [PACKAGE] = catch_.me_.if_.you_.can_
       [REGION_ANONYMOUS] = 32
       [REGION_ASHMEM] = 524288
       [REGION_BAD] = 131072
       [REGION_CODE_APP] = 16384
       [REGION_CODE_SYS] = 32768
       [REGION_C_ALLOC] = 4
       [REGION_C_BSS] = 16
       [REGION_C_DATA] = 8
       [REGION_C_HEAP] = 1
       [REGION_JAVA] = 65536
       [REGION_JAVA_HEAP] = 2
       [REGION_OTHER] = -1032320
       [REGION_PPSSPP] = 262144
       [REGION_STACK] = 64
       [SIGN_EQUAL] = 536870912
       [SIGN_INEQUAL] = 268435456
       [SIGN_LARGER] = 67108864
       [SIGN_SMALLER] = 134217728
       [TYPE_AUTO] = 127
       [TYPE_BYTE] = 1
       [TYPE_DOUBLE] = 64
       [TYPE_DWORD] = 4
       [TYPE_FLOAT] = 16
       [TYPE_QWORD] = 32
       [TYPE_WORD] = 2
       [TYPE_XOR] = 8
       [VERSION] = 8.29.0
       [VERSION_INT] = 82900
       [alert] = function: alert /* gg.alert(string text[, string positive[, string negative[, string neutral]]]) -> int: 0 = cancel, 1 = positive, 2 = negative, 3 = neutral */
       [choice] = function: choice /* gg.choice(table items[, string selected]) -> string || nil */
       [clearResults] = function: clearResults /* gg.clearResults() -> nil */
       [copyMemory] = function: copyMemory /* gg.copyMemory(long from, long to, int bytes) -> true || string with error */
       [dumpMemory] = function: dumpMemory /* gg.dumpMemory(long from, long to, string dir) -> true || string with error */
       [editAll] = function: editAll /* gg.editAll(string value, int type) -> count of changed || string with error */
       [getRanges] = function: getRanges /* gg.getRanges() -> int */
       [getResultCount] = function: getResultCount /* gg.getResultCount() -> long */
       [getResults] = function: getResults /* gg.getResults(int count) -> array || string with error */
       [getSelectedPackage] = function: getSelectedPackage /* gg.getSelectedPackage() -> string || nil */
       [getSpeed] = function: getSpeed /* gg.getSpeed() -> double */
       [getValuesRange] = function: getValuesRange /* gg.getValuesRange(table values) -> table || string with error */
       [getValues] = function: getValues /* gg.getValues(table values) -> table || string with error */
       [gotoAddress] = function: gotoAddress /* gg.gotoAddress(long address) -> nil */
       [isPackageInstalled] = function: isPackageInstalled /* gg.isPackageInstalled(string pkg) -> bool */
       [isProcessPaused] = function: isProcessPaused /* gg.isProcessPaused() -> bool */
       [isVisible] = function: isVisible /* gg.isVisible() -> bool */
       [multiChoice] = function: multiChoice /* gg.choice(table items[, table selection]) -> table || nil */
       [processKill] = function: processKill /* gg.processKill() -> bool */
       [processPause] = function: processPause /* gg.processPause() -> bool */
       [processResume] = function: processResume /* gg.processResume() -> bool */
       [processToggle] = function: processToggle /* gg.processToggle() -> bool */
       [prompt] = function: prompt /* gg.prompt(table prompts[, table defaults[, table types]]) -> nil || table with keys from prompts and values from inputs */
       [removeResults] = function: removeResults /* gg.removeResults(table results) -> true || string with error */
       [searchAddress] = function: searchAddress /* gg.searchAddress(string text[, long mask[, int type[, int sign[, long memoryFrom[, long memoryTo]]]]]) -> true || string with error */
       [searchFuzzy] = function: searchFuzzy /* gg.searchFuzzy([string difference[, int type[, int sign[, long memoryFrom[, long memoryTo]]]]]) -> true || string with error */
       [searchNumber] = function: searchNumber /* gg.searchNumber(string text[, int type[, bool encrypted[, int sign[, long memoryFrom[, long memoryTo]]]]]) -> true || string with error */
       [setRanges] = function: setRanges /* gg.setRanges(int ranges) -> nil */
       [setSpeed] = function: setSpeed /* gg.setSpeed(double speed) -> true || string with error */
       [setValues] = function: setValues /* gg.setValues(table values) -> true || string with error */
       [setVisible] = function: setVisible /* gg.setVisible(bool visible) -> nil */
       [sleep] = function: sleep /* gg.sleep(int milliseconds) -> nil */
       [startFuzzy] = function: startFuzzy /* gg.startFuzzy([int type[, long memoryFrom[, long memoryTo]]]) -> true || string with error */
       [timeJump] = function: timeJump /* gg.timeJump(string time) -> true || string with error */
       [toast] = function: toast /* gg.toast(string text[, bool fast]) -> nil */
}

 

 

Finally and official Update, Hope So Further Update Include much More Functions and Features.

Link to comment
Share on other sites

  • Administrators
On 21.07.2017 at 4:00 PM, Backlift said:

User MAY want to hack only one value , for this instance of the game

print(gg.choice({'1', 'cat', 'dog', 'racoon', 'bear'}))
print(gg.choice({'2', 'cat', 'dog', 'racoon', 'bear'}, 3))
print(gg.choice({'3', 'cat', 'dog', 'racoon', 'bear'}, 30))
print(gg.multiChoice({'4', 'cat', 'dog', 'racoon', 'bear'}, {true, false, true}))
print(gg.multiChoice({'5', 'cat', 'dog', 'racoon', 'bear'}))

 

scr_1500880002.jpg

scr_1500880009.jpg

scr_1500880015.jpg

scr_1500880020.jpg

scr_1500880031.jpg

scr_1500880039.jpg

Link to comment
Share on other sites

1 hour ago, Enyby said:

print(gg.choice({'1', 'cat', 'dog', 'racoon', 'bear'}))

print(gg.choice({'2', 'cat', 'dog', 'racoon', 'bear'}, 3))

print(gg.choice({'3', 'cat', 'dog', 'racoon', 'bear'}, 30))

print(gg.multiChoice({'4', 'cat', 'dog', 'racoon', 'bear'}, {true, false, true}))

print(gg.multiChoice({'5', 'cat', 'dog', 'racoon', 'bear'}))

That awesome now its looking like we can finally create  more advance and complicated lua scripts

Link to comment
Share on other sites

2 minutes ago, Aufar_R said:

How to remove results using the script?...

I really need an example. Thank you.

you can use gg.clearResults()                              --By using so it clear's the list of searched results

::research::
v = gg.prompt({i='Enter value'}, {i='0'})
gg.searchNumber(v['i'], gg.TYPE_DWORD, true, gg.SIGN_EQUAL, 0, -1)
if gg.getResultCount() == 1 then
   gg.editAll('10000', gg.TYPE_DWORD) 
   gg.alert('Hacking Done!, Enjoy') 
   gg.clearResults()
   os.exit()
   else gg.alert('Too much values found, Go to game and change the value, then open gameguardian window again')
  goto research
   end 

it not a complete example but can work

Link to comment
Share on other sites

  • Administrators
43 minutes ago, Aufar_R said:

I really need an example.

-- first search
gg.clearResults()
gg.searchNumber ('10', gg.TYPE_DWORD)

-- refine search for existsing results
gg.searchNumber ('10', gg.TYPE_DWORD)

 

Link to comment
Share on other sites

12 minutes ago, Enyby said:

-- first search
gg.clearResults()
gg.searchNumber ('10', gg.TYPE_DWORD)

-- refine search for existsing results
gg.searchNumber ('10', gg.TYPE_DWORD)

 

now that's an example ?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.