View previous topic :: View next topic |
Author |
Message |
Rydian Grandmaster Cheater Supreme
Reputation: 31
Joined: 17 Sep 2012 Posts: 1358
|
Posted: Tue Nov 06, 2012 1:18 pm Post subject: Suggestion: Pointer Scan Filtering |
|
|
Could it be possible to filter pointer scan results (after a (re)scan is done)? Sometimes the final offset for a multi-level pointer is obvious (shows up in the "what writes to" logger), so being able to filter out results that don't have that offset as the last one would make finding the right pointer path easier.
In addition, sometimes the base value is known, but not the offsets, so sorting by base would be good too (in addition to certain offsets).
Or, at the very least, sort the individual columns so we can find ones involving certain offsets easier?
|
|
Back to top |
|
 |
Dark Byte Site Admin
Reputation: 470
Joined: 09 May 2003 Posts: 25796 Location: The netherlands
|
Posted: Tue Nov 06, 2012 1:51 pm Post subject: |
|
|
check the checkbox "Must end with offsets" and fill in the offsets it should end with
base pointer must be in range... is supposed to filter that but I heard it'snot working
And I may add sorting of individual columns but understand that it will take a LOOONG time.
The time it takes to do one full rescan, multiplied by the number of pointers in the list
So, if it takes 1 minute for a rescan, and you have 2 million addresses, it will take 2 million minutes, roughly 3.8 years
_________________
Do not ask me about online cheats. I don't know any and wont help finding them.
Like my help? Join me on Patreon so i can keep helping |
|
Back to top |
|
 |
Rydian Grandmaster Cheater Supreme
Reputation: 31
Joined: 17 Sep 2012 Posts: 1358
|
Posted: Tue Nov 06, 2012 2:57 pm Post subject: |
|
|
I'm talking about sorting via columns like you would in an excel spreadsheet or something, clicking the headers to sort ascending/descending. The current form doesn't do that (at least not in 6.2).
|
|
Back to top |
|
 |
Dark Byte Site Admin
Reputation: 470
Joined: 09 May 2003 Posts: 25796 Location: The netherlands
|
Posted: Tue Nov 06, 2012 3:34 pm Post subject: |
|
|
Yes, that's what i'm talking about. Sorting the offsets will take a few years to finish
_________________
Do not ask me about online cheats. I don't know any and wont help finding them.
Like my help? Join me on Patreon so i can keep helping |
|
Back to top |
|
 |
mgr.inz.Player I post too much
Reputation: 222
Joined: 07 Nov 2008 Posts: 4438 Location: W kraju nad Wisla. UTC+01:00
|
Posted: Tue Nov 06, 2012 4:02 pm Post subject: |
|
|
OK, but sometimes we get only 200 pointers and rescan takes 0.1 seconds.
We can add sort option if there is maximum 200 pointers. It should take only 20 seconds.
Edit:
can we sort those pointers without rescanning?
Like this:
1) export all 1000'000 pointers to txt file
this format per line (e.g. for level 4):
module+offset, offset0, offset1, offset2, offset3
All offsets have fixed length; offset A should be 00A, if we are using "maximum offset value: 2048"
modulename+00000000,000,000,000,000
So it take 37bytes per line, file should have 37'000'000 bytes
2) we can sort lines inside this file with "sort" tool from "GNU Coreutils"
3) we can use "grep" from "GNU Coreutils" to cut all not needed offsets patterns (e.g. we don't want 123,456,123)
or to get only pointers with 123,456,123 in the middle.
4) import txt file and convert it back to PTR file.
_________________
|
|
Back to top |
|
 |
jgoemat Master Cheater
Reputation: 23
Joined: 25 Sep 2011 Posts: 264
|
Posted: Wed Nov 07, 2012 1:15 am Post subject: |
|
|
I'd like to be able to set the base address for each scan. Sometimes there's a static pointer I know from another scan, but sometimes I'd like to use a pointer I found with other methods. For instance Cargo Commander is JITcompiled and there isn't really a static pointer I can go back to but I can find one changing base pointer that has many other pointers in it.
Also XCOM has one array of about 400 structure pointers, I can find that relatively easy or by using a static pointer but by that time it is already 3 levels deep from the static base with many other results pointing to the same thing from other static bases or from other offsets than I use. If I could start with the static I know and only use 2-3 levels from there it would be very fast and more accurate.
Thanks!
|
|
Back to top |
|
 |
Dark Byte Site Admin
Reputation: 470
Joined: 09 May 2003 Posts: 25796 Location: The netherlands
|
Posted: Wed Nov 07, 2012 3:55 am Post subject: |
|
|
For that use the structure spider (that is basically a pointerscanner where it starts from the base address instead of the target)
In the base region enter the static address. (or better the address the static address points to, since it always does a structsize check from the base given)
Leave the compare to region empty if you don't care about that
Then tick "Pointer must be in range" and fill in twice the exact address
It will then scan and return all the paths to the specific pointer address
(Rescan can be a bit buggy though, I'll need to fix that)
_________________
Do not ask me about online cheats. I don't know any and wont help finding them.
Like my help? Join me on Patreon so i can keep helping |
|
Back to top |
|
 |
mgr.inz.Player I post too much
Reputation: 222
Joined: 07 Nov 2008 Posts: 4438 Location: W kraju nad Wisla. UTC+01:00
|
Posted: Wed Nov 07, 2012 3:26 pm Post subject: |
|
|
@Dark Byte,
So, the "exporting and importing pointers txt files" idea isn't such great? (fifth post)
_________________
|
|
Back to top |
|
 |
Dark Byte Site Admin
Reputation: 470
Joined: 09 May 2003 Posts: 25796 Location: The netherlands
|
Posted: Wed Nov 07, 2012 8:19 pm Post subject: |
|
|
I don't think so.
First going through the whole list converting every offset to a string and write that to a textfile will already take a considerable amount of time
And then sorting using a secondary sorter will take about the same time as previously mentioned if I did it inside ce itself, with the added overhead of parsing the wanted column strings from a line, and converting that to an integer and then compare if it's bigger then a previous line
It's better to keep it binary for best efficiency
_________________
Do not ask me about online cheats. I don't know any and wont help finding them.
Like my help? Join me on Patreon so i can keep helping |
|
Back to top |
|
 |
Csimbi I post too much
Reputation: 97
Joined: 14 Jul 2007 Posts: 3325
|
Posted: Wed Nov 07, 2012 8:42 pm Post subject: |
|
|
mgr.inz.Player wrote: | We can add sort option if there is maximum 200 pointers. It should take only 20 seconds.
...
2) we can sort lines inside this file with "sort" tool from "GNU Coreutils"
|
20 seconds for 200 pointers sounds VERY slow (qsort is your friend), especially when threaded; you're comparing integers, not strings.
No need to install anything. In windows command line you can use this on text files:
Code: | sort < infile > outfile |
It's buffered, so it should yield fairly decent speeds.
As a last resort, I could add sorting to the pointer filter I posted earlier (it reads through all pointers anyway) - though it would be still limited. Anyway, I'd prefer sorting on the UI.
If someone's dumb enough to attempt sorting them when there are 200+ entries, they deserve to wait.
|
|
Back to top |
|
 |
mgr.inz.Player I post too much
Reputation: 222
Joined: 07 Nov 2008 Posts: 4438 Location: W kraju nad Wisla. UTC+01:00
|
Posted: Wed Nov 07, 2012 9:09 pm Post subject: |
|
|
Quote: | And then sorting using a secondary sorter will take about the same time |
On my PC 230MB txt file with 6'006'216 lines is sorted within 1minute and 40 seconds.
One line with 4level pointer has 37bytes
230MB txt file with 6'006'216 lines -> about 38 bytes per line
1minute 40seconds versus 6 million minutes (11,3 years)
@Csimbi, sort from win or sort from unix. Both work fast.
I'm using GNU because of other tools: grep, sed, gawk, bash, xargs,...
_________________
|
|
Back to top |
|
 |
Rydian Grandmaster Cheater Supreme
Reputation: 31
Joined: 17 Sep 2012 Posts: 1358
|
Posted: Wed Nov 07, 2012 10:53 pm Post subject: |
|
|
Dark Byte wrote: | Yes, that's what i'm talking about. Sorting the offsets will take a few years to finish | Well I'm not meaning this for when the offsets go off the visible spectrum (as looking through them manually isn't an option then anyways), it'd be used when the results are within a human-sortable range, like mgr said ~200 or less.
|
|
Back to top |
|
 |
Csimbi I post too much
Reputation: 97
Joined: 14 Jul 2007 Posts: 3325
|
Posted: Wed Nov 07, 2012 11:18 pm Post subject: |
|
|
mgr.inz.Player wrote: | 1minute 40seconds versus 6 million minutes (11,3 years)
...
@Csimbi, sort from win or sort from unix. Both work fast.
I'm using GNU because of other tools: grep, sed, gawk, bash, xargs,... |
Is that an SSD drive or a regular HDD?
Imagine how fast it would be if all that was done in the memory.
...
Makes sense, I am merely pointing out that just to use sort there is no need to install those.
|
|
Back to top |
|
 |
mgr.inz.Player I post too much
Reputation: 222
Joined: 07 Nov 2008 Posts: 4438 Location: W kraju nad Wisla. UTC+01:00
|
Posted: Thu Nov 08, 2012 8:03 am Post subject: |
|
|
Csimbi wrote: | Is that an SSD drive or a regular HDD?
|
Regular SATA Hdd.
Csimbi wrote: | Imagine how fast it would be if all that was done in the memory. |
Probably. But, exporting to txt file could be handy not only for sorting.
We can use txt files with other tools like grep gawk etc..
_________________
|
|
Back to top |
|
 |
creamlapine How do I cheat?
Reputation: 0
Joined: 05 Jan 2017 Posts: 1
|
Posted: Thu Jan 05, 2017 12:10 pm Post subject: Filtering Results |
|
|
Would it be possible to filter the results of a pointer scan to a specific application(s)? Like the specific game you are playing. Cause I get a lot of useless results from Adobe Air.
|
|
Back to top |
|
 |
|