function wait_for_action()
[Link](false)
while true do
[Link](500)
if [Link]()then
break
end
end
end
function selectconditions(encrypted)
if encrypted == 1 then
encryptedchoice = [Link]({'Encrypted'},nil,'Is the value encrypted?')
if encryptedchoice[1] then
encrypted = 1
else
encrypted = 0
end
end
signs =
{gg.SIGN_EQUAL,gg.SIGN_NOT_EQUAL,gg.SIGN_GREATER_,gg.SIGN_LESS,gg.SIGN_GREATER_
OR_EQUAL,gg.SIGN_LESS_OR_EQUAL}
signchoice = [Link]({'=',' ≠','>','<',' ≥','≤'},nil,'What condition?')
i = 0
while not signchoice[i] do
i = i + 1
end
sign = signs[i]
end
function selecttype()
menu =
[Link]({'Auto','Dword','Float','Double','Word','Byte','Qword','Xor'},ni
l,'What type to search?')
if menu == nil then
else
if menu[1] then
a = 1
type = gg.TYPE_AUTO
end
if menu[2] then
a = 1
type = gg.TYPE_DWORD
end
if menu[3] then
a = 1
type = gg.TYPE_FLOAT
end
if menu[4] then
a = 1
type = gg.TYPE_DOUBLE
end
if menu[5] then
a = 1
type = gg.TYPE_WORD
end
if menu[6] then
a = 1
type = gg.TYPE_BYTE
end
if menu[7] then
a = 1
type = gg.TYPE_QWORD
end
if menu[8] then
a = 1
type = gg.TYPE_XOR
end
end
while a == 0 do
a = 0
menu =
[Link]({'Auto','Dword','Float','Double','Word','Byte','Qword','Xor',},n
il,'What type to search?')
if menu == nil then
else
if menu[1] then
a = 1
type = gg.TYPE_AUTO
end
if menu[2] then
a = 1
type = gg.TYPE_DWORD
end
if menu[3] then
a = 1
type = gg.TYPE_FLOAT
end
if menu[4] then
a = 1
type = gg.TYPE_DOUBLE
end
if menu[5] then
a = 1
type = gg.TYPE_WORD
end
if menu[6] then
a = 1
type = gg.TYPE_BYTE
end
if menu[7] then
a = 1
type = gg.TYPE_QWORD
end
if menu[8] then
a = 1
type = gg.TYPE_XOR
end
end
end
end
function selectranges()
menu = [Link]({'Jh: Java heap','Ch: C++ heap','Ca: C++ alloc','Cd: C++
.data','Cb: C++ .bss','PS:PPSSPP','A: Anonymous','J: Java','S: Stack','A:
Ashmen','V: Video','O: Other','B: Bad','Xa: Code app','Xs: Code
system','Reset','All'},nil,"Select memory ranges. If you don’t know what this
is, select “All”.")
ranges = ""
if menu[1] then
ranges = ranges .. "gg.REGION_JAVA_HEAP | "
end
if menu[2] then
ranges = ranges .. "gg.REGION_C_HEAP | "
end
if menu[3] then
ranges = ranges .. "gg.REGION_C_ALLOC | "
end
if menu[4] then
ranges = ranges .. "gg.REGION_C_DATA | "
end
if menu[5] then
a = 1
type = gg.TYPE_WORD
end
if menu[6] then
a = 1
type = gg.TYPE_BYTE
end
if menu[7] then
a = 1
type = gg.TYPE_QWORD
end
if menu[8] then
a = 1
type = gg.TYPE_XOR
end
[Link](ranges)
end
function findtypeabandoned()
if 0 == 1 then
new = [Link]({[1] = 'What do you want to visually change your id to?'},
{[1] = '0'},
{[1] = 'text'})
value2 = [Link]({[1] = 'Find a value. Make sure the value is not very
common.'},
{[1] = '0'},
{[1] = 'text'})
high = 0
hightype = "(Failed to find data type, try again)"
names = {'DWORD','FLOAT','DOUBLE','WORD'}
types = {gg.TYPE_DWORD,gg.TYPE_FLOAT,gg.TYPE_DOUBLE,gg.TYPE_WORD}
i = 0
while i < 4 do
i = i + 1
[Link](tonumber(value1[1]),types[i])
results = 0
if [Link]() < 5 then
if [Link]() > 0 then
results = 1
end
end
[Link](tonumber(value2[1]),types[i])
results2 = 0
if [Link]() < 5 then
if [Link]() > 0 then
results2 = 1
end
end
score = results + results2
if score > high then
high = score
hightype = names[i]
end
end
[Link]('These types of values should be in data type ' .. hightype .. '!')
end
end
function searchandrefine()
[Link]()
selecttype()
selectconditions(1)
value = [Link]({[1] = 'What is the value?'},
{[1] = '0'},
{[1] = 'text'})
[Link](value[1], type, encrypted, sign)
while [Link]() > 10 do
[Link]('Make the value change, then click the gameguardian icon.')
wait_for_action()
[Link](value[1], type, encrypted, sign)
value = [Link]({[1] = 'What has the value changed to?'},
{[1] = '0'},
{[1] = 'text'})
end
if [Link]() == 0 then
continue = {false}
else
continue = [Link]({'Continue'},nil,'There are ' .. [Link]()
.. ' results left. Would you like to continue refining?')
if continue == nil then
continue = {false}
end
end
while continue[1] == true do
[Link]('Make the value change, then click the gameguardian icon.')
wait_for_action()
[Link](value[1], type, encrypted, sign)
value = [Link]({[1] = 'What has the value changed to?'},
{[1] = '0'},
{[1] = 'text'})
if [Link]() < 2 then
break
end
if [Link]() == 0 then
continue = {0}
else
continue = [Link]({'Continue'},nil,'There are ' .. [Link]()
.. ' results left. Would you like to continue refining?')
if continue == nil then
continue = {false}
end
end
end
if [Link]() == 0 then
[Link]('Uh-oh, nothing found! Try searching again!')
else
[Link]('Refined to ' .. [Link]() .. 'results!')
end
if [Link]() > 1 then
choice = [Link]({'Edit all','Find which one is the one you want','Back
to menu'},nil,'What would you like to do now?')
if choice == nil then
mainmenu()
else
if choice[1] then
edit()
end
if choice[2] then
increment()
end
if choice[3] then
mainmenu()
end
end
else
choice = [Link]({'Edit','Back to menu'},nil,'What would you like to do
now?')
if choice == nil then
mainmenu()
else
if choice[1] then
edit()
end
if choice[2] then
mainmenu()
end
end
end
end
function findboolean()
selecttype()
choice = [Link]({'On','Off'},nil,'Is it currently on or off?')
if choice == nil then
[Link]('Select one!')
findboolean()
else
if choice[1] then
boolean = 1
end
if choice[2] then
boolean = 0
[Link]()
[Link](boolean,type)
[Link]('Just toggle on and off and click the gameguardian icon until the
value is found!')
while [Link]() > 100 do
wait_for_action()
if boolean == 1 then
boolean = 0
else
boolean = 1
end
[Link](boolean,type)
end
continue = [Link]({'Continue'},nil,'There are ' .. [Link]()
.. 'results left. Would you like to continue refining?')
while continue[1] or [Link]() < 2 do
wait_for_action()
if boolean == 1 then
boolean = 0
else
boolean = 1
end
[Link](boolean,type)
continue = [Link]({'Continue'},nil,'There are ' .. [Link]()
.. 'results left. Would you like to continue refining?')
end
end
if [Link]() == 0 then
[Link]('Uh-oh, nothing found! Try searching again!')
else
[Link]('Yay, value has been found! Do IDK what with it!')
end
end
end
searchandrefine()