Jump to content
  • 0

Can a group search be done for encrypted value or any other way to speed up the process?


Question

Posted (edited)

Hello,

The value I need is encrypted.  So I perform a search on the exact value and I check the "value is encrypted" option. Then I do the usual decrease, refine....etc until I find the correct value. I know it's encrypted because if I don't use the "value is encrypted" option I can't find it.  My question is, how can I speed up or automate the process? Normally for a non-encrypted value I would perform a group search and then create a script and done. But unfortunately in this case the value is encrypted and once I type in my group search the "value is encrypted option" disappears. And no matter what I use for a group search does not find the value. So when I close and reopen the game I am forced to repeat the whole search then decrease then refine process every time which is time consuming. Any trick to speed up or automate this situation?  Thank you very much

Edited by Sami1982

Recommended Posts

  • 0
Posted (edited)
8 minutes ago, nok1a said:

Yeah when using searchPointer() you have to specify the regions before you load the results in the result list. The regions at the first line should be the region where you try finding your group search, but i am not sure if your group search is always in the same region. Then when pointer searching you have to only specify the region where the pointer is which i think was region Ca or A.

I am really going blind here Lol. Please please help me fix my script and this will be the last thing I ask you for. Honest to God man.

😊d. 👼

 

8 minutes ago, nok1a said:

Yeah when using searchPointer() you have to specify the regions before you load the results in the result list. The regions at the first line should be the region where you try finding your group search, but i am not sure if your group search is always in the same region. Then when pointer searching you have to only specify the region where the pointer is which i think was region Ca or A.

I noticed in your script you only specified regions in the first line.  

So could you tell me what I need to add and where to add it to make my script do what your script does?

Edited by Sami1982
  • 0
Posted (edited)
2 hours ago, Sami1982 said:

 

local sensitivity = {}
for i, v in ipairs(t) do
  sensitivity[i] = {address = v.address + 0x8, flags = gg.TYPE_FLOAT}
end
sensitivity = gg.getValues(sensitivity)

 

Your telling GG to store the value at offset at 0x8 in data type float. This means that

if sensitivity[i].value == 256 then

is same as this:

if 3.5873240686715317E-43 == 256 then

This will return false. Change the type to dword.

You should use print the print function to check out what are in those tables.

For example print(sensitivity)imagen.thumb.png.de6f4e649107a0bd5633d2d1568d4d98.png

It will print your table and then you have a bit of insight of what is happening.

Edited by nok1a
added more info
  • 0
Posted (edited)
2 hours ago, Sami1982 said:

 

sensitivity = gg.getValues(sensitivity)
local healthPointer = {}
for i = 1, #sensitivity do
  if sensitivity[i].value == 256 then
    healthPointer[i] = {address = t[i].address, flags = gg.TYPE_DWORD}
  end
end

 

You as well need to add the offset from your start address to the address that you want to perform apointer search on, the one below the 1.0 float value.

2129724285_Capturadepantalla2024-01-07010511.thumb.png.69d01cc03fa36553961c3af3bcbd053b.png

Then all you have to do is add the last part of the code which was to load the table in the result list and perform a pointer search and do +0x4

Edited by nok1a
  • 0
Posted (edited)
4 minutes ago, nok1a said:

You as well need to add the offset from your start address to the address that you want to perform apointer search on, the one below the 1.0 float value.

2129724285_Capturadepantalla2024-01-07010511.thumb.png.69d01cc03fa36553961c3af3bcbd053b.png

I don't understand this part.....where does this show in your script?

 

Also btw, I just realized even your script sometimes randomly fails...it gives me the incorrect address. Is this normal?

Edited by Sami1982
  • 0
Posted
8 minutes ago, Sami1982 said:

I don't understand this part.....where does this show in your script?

It wasn't in the script because i was already at the right address to perform the pointer search on to get to health value. Your at a different pointer then mine using your group search.

1236910159_Capturadepantalla2024-01-07012545.thumb.png.1fd01f57e28d3f85ca8160062f0bee23.png

The table t contains those 4 results you had from performing a pointer search on that one address you had from your group search. You already addedan offset of 0x8 to all those addresses to get to the address that is supposed to hold the value 256 and you stored the new addresses in the table (sensitivity). use print(sensitivity) for see what's in the table.

Only problem is that your doing it for all the 4 addresses in the result list while you only have to do it for the one address in region Anonymous. That's why specify the regions as accurate as possible in which you want find the pointers in in or it will already bring issues.

The way you added 0x8 to do the addresses you now do the same for the table t in a loop.

healthPointer[i] = {address = t[i].address, flags = gg.TYPE_DWORD}

add the offset from your start address to the address on which you want to perform the pointer search on to get the health value.

 

 

 

  • 0
Posted (edited)
7 minutes ago, nok1a said:

It wasn't in the script because i was already at the right address to perform the pointer search on to get to health value. Your at a different pointer then mine using your group search.

1236910159_Capturadepantalla2024-01-07012545.thumb.png.1fd01f57e28d3f85ca8160062f0bee23.png

The table t contains those 4 results you had from performing a pointer search on that one address you had from your group search. You already addedan offset of 0x8 to all those addresses to get to the address that is supposed to hold the value 256 and you stored the new addresses in the table (sensitivity). use print(sensitivity) for see what's in the table.

Only problem is that your doing it for all the 4 addresses in the result list while you only have to do it for the one address in region Anonymous. That's why specify the regions as accurate as possible in which you want find the pointers in in or it will already bring issues.

The way you added 0x8 to do the addresses you now do the same for the table t in a loop.

healthPointer[i] = {address = t[i].address, flags = gg.TYPE_DWORD}

add the offset from your start address to the address on which you want to perform the pointer search on to get the health value.

 

 

 

Sorry man I am still confused lol.  I already have this line:

healthPointer[i] = {address = t[i].address, flags = gg.TYPE_DWORD}

and I don't understand how to write this out:

                         add the offset from your start address to the address on                          which you want to perform the  pointer search on to get the                          health value.

 

Sorry if I am asking for a little hand-holding because it's something new and a bit advanced for me

Edited by Sami1982
  • 0
Posted
18 minutes ago, Sami1982 said:

That's why specify the regions as accurate as possible in which you want find the pointers in in or it will already bring issues.

Why did I run into this issue?  I simply chose the same 3 regions that you had in your script. I chose them in both the emulator and my phone. 

  • 0
Posted (edited)
27 minutes ago, Sami1982 said:

 

healthPointer[i] = {address = t[i].address + 0x18, flags = gg.TYPE_DWORD}

 

I am not sure if this makes sense?

1556897009_Capturadepantalla2024-01-07012545.thumb.png.906cfe7f2ea6fc0ed00e36af5ec5ef8c.png

Edited by nok1a
added the offset
  • 0
Posted
2 minutes ago, nok1a said:

I am not sure if this makes sense?

1556897009_Capturadepantalla2024-01-07012545.thumb.png.906cfe7f2ea6fc0ed00e36af5ec5ef8c.png

Yes I understand what you mean by offsets 0x4, 0x8, 0xc, 0x10....etc but I don't know how to write it out in the script. Like the syntax and where it should go.

Also alot of points are getting skipped (lost in translation lol)....So I will write everything here one shot....

1) Your script randomly fails sometimes (i.e. it doesn't give the correct address). Why? Is it normal to happen once in a while?

2) When you said "That's why specify the regions as accurate as possible in which you want find the pointers in in or it will already bring issues"

 

Why did I run into this issue?  I simply chose the same 3 regions that you had in your script. I chose them in both the emulator and my phone. 

 

  • 0
Posted
20 minutes ago, nok1a said:
healthPointer[i] = {address = t[i].address + 0x18, flags = gg.TYPE_DWORD}

 

Oh i just saw this sorry lol.  But it is is resulting in an error 😞

GG error.jpg

  • 0
Posted (edited)
19 minutes ago, Sami1982 said:

Yes I understand what you mean by offsets 0x4, 0x8, 0xc, 0x10....etc but I don't know how to write it out in the script. Like the syntax and where it should go.

 

Oke i understand, so the problem here is the scripting.

I can't explain scripting that well compared to other members in the forum. But you should start by running the print() function to print out your tables and have some understanding of what the script is doing. Use --[[ ]] to ignore most of your code and let GG does it thing line by line. Start with doing the group search, then refine and then store the results in a new table named "t" and print it out...something like this.

gg.searchNumber("-1,049,624,576A;1,092,616,192A;1,082,130,432A;1,056,964,608A;1,062,333,317A::73", gg.TYPE_DWORD)
gg.refineNumber("-1,049,624,576A", gg.TYPE_DWORD)
local t = gg.getResults(10)
print(t)

Then analyze what GG respond. Make sure GG ignores the rest of the code by placing it as a comment:

Also check in the GG scripting documentation what it is that you writted

 

Edited by nok1a
  • 0
Posted (edited)
16 minutes ago, nok1a said:

Oke i understand, so the problem here is the scripting.

I can't explain scripting that well compared to other members in the forum. But you should start by running the print() function to print out your tables and have some understanding of what the script is doing. Use --[[ ]] to ignore most of your code and let GG does it thing line by line. Start with doing the group search, then refine and then store the results in a new table named "t" and print it out...something like this.

local t = gg.getResults(10)
print(t)

Then analyze what GG respond. Make sure GG ignores the rest of the code by placing it as a comment:

Also check in the GG scripting documentation what it is that you writted

 

Oh maaaan I was so close to finishing this script lol.  Could you please please just fix it for me like you did yesterday and make me happy    😁It's just one small piece left. 

By the way I've reached my maximum posts for today. I will send you the script tomorrow. Thanks again

Edited by Sami1982
  • 0
Posted
6 minutes ago, Sami1982 said:

Oh i just saw this sorry lol.  But it is is resulting in an error 😞

GG error.jpg

You typed some character near the brackets that's not supposed to be there or the device saved the file wrong. Happened to me sometimes and then i get that error.

  • 0
Posted
8 minutes ago, Sami1982 said:

Oh maaaan I was so close to finishing this script lol.  Could you please please just fix it for me like you did yesterday and make me happy    😁It's just one small piece left. 

I could. To be honest i have no idea about your understanding of GG Lua scripting. But you should learn it. You would get basics quickly for write a GG script and it's user friendly.

Can you send the script you currently have.

  • 0
Posted (edited)
20 hours ago, nok1a said:

I could. To be honest i have no idea about your understanding of GG Lua scripting. But you should learn it. You would get basics quickly for write a GG script and it's user friendly.

Can you send the script you currently have.

Sorry for the late response. Not sure if you saw but I edited my last post last night to inform you that I've reached my maximum number of posts for yesterday.  This restriction in the forum is so annoying by the way lol.  Anyhow, it  finally worked when you gave me this line:

healthPointer[i] = {address = t[i].address + 0x18, flags = gg.TYPE_DWORD}

The reason I was gettin an error was because silly me (due to being so late into the night and my eyes had turned into rocks and my brain had frozen lol)  I had a "multiplied by" sign in 0x18 which also looks like the letter X LOL.

Also, I know how to write basic scripts but coding pertaining to pointers and offsets in a script is something new to me. But I will try to learn it. You have been wonderful about all of this and I will never forget what you taught me and the favors you did for me

But you never answered those 2 questions for me:

1) Even your script randomly fails sometimes (i.e. it doesn't give the correct address). Why? Is it normal to happen once in a while?

2) When you said "That's why specify the regions as accurate as possible in which you want find the pointers in in or it will already bring issues"

Why did I run into this issue?  I simply chose the same 3 regions that you had in your script. I chose them in both the emulator and my phone.

Edited by Sami1982

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
×
×
  • 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.