Jump to content
  • 0

pointersearch not taking ranges


Platonic

Question

Hi, Having issue with using pointersearch.
It's not working as i want to. when i have a result in region Xa and do pointer search in region Cd it doesn't happen.
First it changes the region to Cd. then when pointer search happens it takes the region in which current address is located. which is Xa.

local old = gg.getRanges()
gg.searchNumber('h 3C 00 80 E2 1E FF 2F E1 F0 4F 2D E9 04 D0 4D E2 00 50 A0 E1 DC 00 9F E5 DC 40 9F E5')
gg.refineNumber('h 3C')
gg.getResults(1)
gg.clearResults()

--[[
gg.searchPointer(50, gg.setRanges(gg.REGION_C_DATA))-- range is set, but address is not found
]]

--[[
gg.setRanges(gg.REGION_C_DATA) -- range is set, but returns to range of current address
gg.searchPointer(50)
]]


At the moment with current scripting knowledge i tried to make alternative in which the address of the table is used as search.

local old = gg.getRanges()
gg.searchNumber('h 3C 00 80 E2 1E FF 2F E1 F0 4F 2D E9 04 D0 4D E2 00 50 A0 E1 DC 00 9F E5 DC 40 9F E5', gg.TYPE_BYTE)
gg.refineNumber('h 3C', gg.TYPE_BYTE)


-- ARM
a = gg.getResults(1)
gg.searchNumber(a[1].address, 4, gg.setRanges(8 | -2080896), gg.clearResults())  -- Ranges: 8 = C++_.DATA | -2080896 = Other 
a = gg.getResults(1)
gg.searchNumber(a[1].address + 0xC, 4, gg.setRanges(4 | 32), gg.clearResults())  -- Ranges: 4 = Anonymous | 32 = C++_Alloc
a = gg.getResults(1)
a[1].address = a[1].address + 0xB0

 for i = 0, 15 do
 a[1].address = a[1].address + 0x4
 a[1].flags = gg.TYPE_FLOAT
gg.addListItems(a)
 end
 
 results = gg.getListItems()
 gg.loadResults(results)
 gg.refineNumber(1, gg.TYPE_FLOAT)
 gg.setRanges(old)

But this will most likely get me in trouble in the future. There is for sure a better way. IF someone has some educational way for improve this script and get the ranges somehow. Please let me know. I thought about the possibility of adding range as parameter int the pointersearch but i return without success, i am not even sure if that's possible. If someone has a efficient way and can explain me how works then greatly appreciated. i really wane get to start learning the gg Lua scripting. Thank you.

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

yea. i have faced that issue too. here you can try my way.

 

gg.cle

gg.clearResults()
gg.setRanges(gg.REGION_ANONYMOUS)
gg.searchNumber(your value, type)

--here, lets pretend you want the pointers in Ca. use gg.lodResults() to be able to set right range.

local res = gg.getResults(12345)
gg.loadResults(res)
gg.setRanges(gg.REGION_C_ALLOC)
gg.searchPointer(0)

--Done.

This solved my problem thanks to cmp.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

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