BullyWiiPlaza / Universal-Pointer-Searcher

An application for finding memory pointers
Apache License 2.0
24 stars 1 forks source link

Scan issues for different systems #3

Closed Urahara3000 closed 5 years ago

Urahara3000 commented 6 years ago

I recently did some testing on this new version, version 2.91, and I noticed that there are bugs on the scan part, in version 2.8, I got results for 2 consoles, Game Cube and PSX, see the image below

https://drive.google.com/file/d/15gUMc7JAwC4eisQxHcAZG8urJURL8NwG/view?usp=sharing

https://drive.google.com/file/d/1s5q_rbCL2Uf07nwX9ZFh-cN6MBpLN7M_/view?usp=sharing

but in version 2.91, I did not get any results in the scan, see the image below

https://drive.google.com/file/d/1OktJ39BFOjND9XusMYLJH85HqR5_G6C0/view?usp=sharing

https://drive.google.com/file/d/1S4jRLorR3o4DutmMqKWvKQokOrAJ6IkF/view?usp=sharing

then the bug in the Scan part counts as the first issue

I would be very grateful if you could take a look at these issues

Thank you very much in advance !

BullyWiiPlaza commented 6 years ago

Okay, thanks for the report. Please upload the memory dumps so I can try it out myself till it's fixed.

EDIT: I changed some of the code related to it now so it might already be fixed. Either way, sending the memory dumps would help.

Urahara3000 commented 6 years ago

Ok, I'll prepare the dumps folders of each console that gave scan issue and I'll send it to you, thank you very much for the attention

Urahara3000 commented 6 years ago

Here is the zipped package with 4 folders, each folder containing memory dumps for 4 different games from 4 different consoles, all these did not work using the new version 2.91, I will now test the modified and updated version to see if the scan is already working with these Dumps

Memory Dumps Link

https://drive.google.com/file/d/17bLyqJvkXUBQA8HDUxNQ9uGj5NVhNbTP/view?usp=sharing

EDIT: I just tested all these Dumps with the new updated version 2.92, and it still does not work, the results always return 0 pointers

BullyWiiPlaza commented 6 years ago

Thanks, I will investigate the issues. Some of those memory dump searches never worked because they weren't "officially" supported so it was bugged. Some bigger changes are needed to fix everything so this will take some time...

Urahara3000 commented 6 years ago

Okay, I understand that it will take a little time for everything to be ready, but I do not care, I wait the time, because I really like this program, it's the only program currently doing with mastery what it proposes to do, and I want to help you improve it even more by making it work for all emulators, I have some information here that can help you, I would say it's another report, note there:

Report based on Universal Pointer Searcher 2.91

Super Nintendo

Starting address: 00000000 (Works Fine)

Game Boy Advance

Starting address: 02000000 (Works Fine)

Playstation

Starting address: 80000000 (Don't Work, always return 0 pointers)

Nintendo 64

Starting address: 80000000 (Don't Work, always return 0 pointers)

Nintendo DS

Starting address: 02000000 (Works Fine)

Dreamcast

Starting address: 0C000000 (Works Fine)

Nintendo Game Cube/Wii - MEM1

Starting address: 80000000 (Don't Work, always return 0 pointers)

Nintendo Wii - MEM2

Starting address: 90000000 (Don't Work, always return 0 pointers)

Playstation 2

Starting address: 00000000 or 01000000 [depends on the game] (Works Fine)

PSP

Starting address: 08000000 (Works Fine)

Playstation 3

Starting address: 20000000 or 30000000 (Works Fine)

Nintendo 3DS

Starting address: 00100000 or 08000000 or 30000000 (Works Fine)

Nintendo Wii U

Starting address: 10000000 [depends on the game and region of memory] (Works Fine, but only using Pointer Maps)

As you can see, the scan problem is in the Starting address 80000000 and 90000000, the scan is not working in these addresses, but remembering that in version 2.8 was working normally, the error of scan in Wii U through Cemu 1.13.0f not yet I can explain why not return anything using Dumps, Only using Pointer Maps that return some pointers, and basically that's it, I appreciate all the attention you gave me here at Github, and I'm going to wait patiently for all the necessary modification to the super new Universal Pointer Searcher, stay with God and see you next time.

BullyWiiPlaza commented 6 years ago

Yes, the reason for the failures with addresses 80000000 and above is signedness of integers. Exactly at 80000000 it becomes negative so it's all the same issue with platforms who use that memory range. Fixing it and testing will take some time so I'll talk to you later then.

Urahara3000 commented 6 years ago

Now Scan is working great for the PSX, N64, NGC and Wii consoles in the new version 2.93, Only in case of Wii U by Cemu is that normal Dumps scan is not working, only if using Pointer Maps, is this procedure normal for Wii U ?, See the video below:

https://drive.google.com/file/d/1wFf4Izokhvdnsja9YEcv7XoXoIhH3pc_/view?usp=sharing

Anyway, thanks a lot for the correction of the initial addresses 80000000 and 90000000

BullyWiiPlaza commented 6 years ago

Yeah, thanks for the video. That's interesting and indeed a bug. I will investigate that as well. :)

Urahara3000 commented 6 years ago

Interesting, I did not know it was a bug, I just suspected, I generate the Wii U Dumps by Cemu using the x96dbg program through the Cemu Base Pointer, anyway, thank you very much for everything you've done in Universal Pointer Searcher, I'll wait calmly for his latest correction for Wii U, stay with God and see you next time

Urahara3000 commented 5 years ago

I discovered the problem here about scanning on dumps of Wii U games by Cemu, the problem was, I was not using the true base pointer, now I can find the static route in any game I test, I also tested the newer version, 3.01, I really liked it, however, I did not quite understand the function (Minimum Pointer Address), I also tried to use the function (Use Native Pointer Searcher Engine), but I could not use it because I gave an error here, see the image of the error in the image below

https://tinyurl.com/y9znerx6

I would like to use this function, another thing, I would like to add a function to manually add the value of the last offset to be searched in the scan, as well as in the CE, in some emulators it is possible to find the value of the last offset of the static route, but in general, the program is excellent, you're to be congratulated, God be with you and see you soon.

BullyWiiPlaza commented 5 years ago

Minimum Pointer Address means that it will only use addresses equal to or greater than the one you specified.

If you activate Use Native Pointer Searcher Engine and get an error like this in your screenshot, please show me all of your settings and added memory dumps so I can suggest something. You can also try Googling the error code since it is a Windows kernel/C++ error code: https://stackoverflow.com/questions/15482156 It says Integer division by zero so did you maybe specify 0 somewhere which is invalid/unhandled? Also look at the Debugging Output.

Yes, I can see about adding the last offset to be searched some time in the future. Good idea.

Urahara3000 commented 5 years ago

I did the test here in the game God of War Chain of Olympus [PSP], I was able to find the static route using the following configuration below

https://tinyurl.com/y8d5dd76

https://tinyurl.com/y97zyg95

but when I use the function (Native Pointer Searcher Engine), that error that I showed you before happens, and the error happens in any emulator using other dumps

this is the text that appears inside the debugging output:

"C:\Users\ANDREA~1\AppData\Local\Temp\PointerSearcher17483644895457977884.exe" "-m" "E:\André Alexandre\Programas\Emulator Codehacking\Dumps\God of War Chain of Olympus (Efreet) [PSP]\08BD4490.bin" "-s" "8000000" "-t" "8BD4490" "-e" "l" "-z" "4" "-a" "4" "-u" "4" "-i" "8000000" "9FFFFFC" "-g" "0" "-r" "0" "-m" "E:\André Alexandre\Programas\Emulator Codehacking\Dumps\God of War Chain of Olympus (Efreet) [PSP]\09E1CB70.bin" "-s" "8000000" "-t" "9E1CB70" "-e" "l" "-z" "4" "-a" "4" "-u" "4" "-i" "8000000" "9FFFFFC" "-g" "0" "-r" "0" "-m" "E:\André Alexandre\Programas\Emulator Codehacking\Dumps\God of War Chain of Olympus (Efreet) [PSP]\09E84AC0.bin" "-s" "8000000" "-t" "9E84AC0" "-e" "l" "-z" "4" "-a" "4" "-u" "4" "-i" "8000000" "9FFFFFC" "-g" "0" "-r" "0" "-o" "1000" "-n" "0" "-k" "1" "-d" "4" "-c" "3B9ACA00" "-v" "0" "-p" "40" "-x" "186A0"

Memory dump(s)

Memory dump file name: 08BD4490.bin Memory dump target address: 0x8BD4490 Starting address: 0x8000000 Address size: 4 Address alignment: 4 Value alignment: 4 Minimum pointer address: 8000000 Maximum pointer address: 9FFFFFC Little endian: true Generate pointer map: false Read pointer map: false

Memory dump file name: 09E1CB70.bin Memory dump target address: 0x9E1CB70 Starting address: 0x8000000 Address size: 4 Address alignment: 4 Value alignment: 4 Minimum pointer address: 8000000 Maximum pointer address: 9FFFFFC Little endian: true Generate pointer map: false Read pointer map: false

Memory dump file name: 09E84AC0.bin Memory dump target address: 0x9E84AC0 Starting address: 0x8000000 Address size: 4 Address alignment: 4 Value alignment: 4 Minimum pointer address: 8000000 Maximum pointer address: 9FFFFFC Little endian: true Generate pointer map: false Read pointer map: false

Pointer Searcher Settings Maximum pointer offset: 0x1000 Allow negative offsets: false Exclude cycles: true Maximum pointer depth: 4 Maximum memory dump chunk size: 3 Maximum pointers count: 186 Potential pointer offsets count prediction: 40 Save additional memory dump RAM: false

Parsing command line arguments took 0 second(s)

BullyWiiPlaza commented 5 years ago

Hi, Maximum memory dump chunk size: 3 This isn't fine. Can you set this to 1GB or something instead?

The GUI shows you made proper input but the debugging output does not.

Urahara3000 commented 5 years ago

Hi, but how do I change the value of this maximum memory dump chunk size out of the GUI ?

because as you saw in the image, the value is correct by the GUI, even in the configuration file the value is correct, see the image below

https://tinyurl.com/yaxy9pnt

If I have a way to change the value in a way other than the GUI, I think it would work.

BullyWiiPlaza commented 5 years ago

You can alternatively open up cmd.exe and paste the exact command shown in the debugging outout and/or modify it to your liking:

"C:\Users\ANDREA~1\AppData\Local\Temp\PointerSearcher17483644895457977884.exe" "-m" "E:\André Alexandre\Programas\Emulator Codehacking\Dumps\God of War Chain of Olympus (Efreet) [PSP]\08BD4490.bin" "-s" "8000000" "-t" "8BD4490" "-e" "l" "-z" "4" "-a" "4" "-u" "4" "-i" "8000000" "9FFFFFC" "-g" "0" "-r" "0" "-m" "E:\André Alexandre\Programas\Emulator Codehacking\Dumps\God of War Chain of Olympus (Efreet) [PSP]\09E1CB70.bin" "-s" "8000000" "-t" "9E1CB70" "-e" "l" "-z" "4" "-a" "4" "-u" "4" "-i" "8000000" "9FFFFFC" "-g" "0" "-r" "0" "-m" "E:\André Alexandre\Programas\Emulator Codehacking\Dumps\God of War Chain of Olympus (Efreet) [PSP]\09E84AC0.bin" "-s" "8000000" "-t" "9E84AC0" "-e" "l" "-z" "4" "-a" "4" "-u" "4" "-i" "8000000" "9FFFFFC" "-g" "0" "-r" "0" "-o" "1000" "-n" "0" "-k" "1" "-d" "4" "-c" "3B9ACA00" "-v" "0" "-p" "40" "-x" "186A0"

Once you press Enter, it will run the pointer search like that. If the GUI does not send the input to the native pointer searcher correctly for sure, let me know so I can fix this bug.

Urahara3000 commented 5 years ago

Hi, in what part of the command should I change the value ?, and what value should I put In ?, this part "-v" "0" ?, because I changed the value in that part and gave an error in the CMD, I put the same value inserted in the GUI, see below

https://tinyurl.com/ybk824h3

and running the command the same way before, without changing anything, opens an error window here, see below

https://tinyurl.com/y9xr94xg

it's written in the window, A problem caused the program to stop working properly. Windows will close the program and notify you if a solution is available.

BullyWiiPlaza commented 5 years ago

Changing -v is wrong because it means Save additional memory dump RAM. Here's a list of what each switch means:

// Memory dump argument switches
#define MEMORY_DUMP_FILE_PATH_INDICATOR "-m"
#define MEMORY_DUMP_STARTING_ADDRESS_INDICATOR "-s"
#define MEMORY_DUMP_TARGET_ADDRESS_INDICATOR "-t"
#define MEMORY_DUMP_ENDIAN_INDICATOR "-e"
#define MEMORY_DUMP_ADDRESS_SIZE_INDICATOR "-z"
#define MEMORY_DUMP_ADDRESS_ALIGNMENT_INDICATOR "-a"
#define MEMORY_DUMP_POINTER_ADDRESS_RANGE_INDICATOR "-i"
#define MEMORY_DUMP_WRITE_POINTER_MAP_INDICATOR "-g"
#define MEMORY_DUMP_READ_POINTER_MAP_INDICATOR "-r"
#define MEMORY_DUMP_VALUE_SIZE_ALIGNMENT_INDICATOR "-u"

// Pointer search argument switches
#define POINTER_SEARCH_MAXIMUM_POINTER_OFFSET_INDICATOR "-o"
#define POINTER_SEARCH_ALLOW_NEGATIVE_POINTER_OFFSETS_INDICATOR "-n"
#define POINTER_SEARCH_EXCLUDE_CYCLES_INDICATOR "-k"
#define POINTER_SEARCH_MAXIMUM_POINTER_DEPTH_INDICATOR "-d"
#define POINTER_SEARCH_MAXIMUM_MEMORY_DUMP_CHUNK_SIZE_INDICATOR "-c"
#define POINTER_SEARCH_SAVE_ADDITIONAL_MEMORY_DUMP_RAM_INDICATOR "-v"
#define POINTER_SEARCH_POTENTIAL_POINTER_OFFSETS_COUNT_PER_ADDRESS_PREDICTION_INDICATOR "-p"
#define POINTER_SEARCH_MAXIMUM_POINTERS_COUNT_INDICATOR "-x"
#define POINTER_SEARCH_LAST_POINTER_OFFSETS "-q"

Now that you have the list of switches, you can make sense out of the values in the command. Since you said that you made it crash, I would like to investigate. Would you please upload the memory dump(s) and tell me the exact command you used? Then I should be able to fix the crash.

Urahara3000 commented 5 years ago

Hi, OK, since you had said before that the problem was in Maximum memory dump chunk size: 3, you were right, I used the command again by the CMD, and this time, I discovered that the switch that handles the Maximum memory dump chunk size is the -c, and not the -v, thanks for the list of switches, I changed the value that was there before by the same value entered in the GUI, ("-c" "1000000000"), I executed the command again by the CMD and this time it seems to have worked out, see below exactly how it appeared in CMD:

"C:\Users\ANDREA~1\AppData\Local\Temp\PointerSearcher3293569330583509353.exe" "-m" "E:\André Alexandre\Programas\Emulator Codehacking\Dumps\God of War Chain of Olympus (Efreet) [PSP]\08BD4490.bin" "-s" "8000000" "-t" "8BD4490" "-e" "l" "-z" "4" "-a" "4" "-u" "4" "-i" "8000000" "9FFFFFC" "-g" "0" "-r" "0" "-m" "E:\André Alexandre\Programas\Emulator Codehacking\Dumps\God of War Chain of Olympus (Efreet) [PSP]\09E1CB70.bin" "-s" "8000000" "-t" "9E1CB70" "-e" "l" "-z" "4" "-a" "4" "-u" "4" "-i" "8000000" "9FFFFFC" "-g" "0" "-r" "0" "-m" "E:\André Alexandre\Programas\Emulator Codehacking\Dumps\God of War Chain of Olympus (Efreet) [PSP]\09E84AC0.bin" "-s" "8000000" "-t" "9E84AC0" "-e" "l" "-z" "4" "-a" "4" "-u" "4" "-i" "8000000" "9FFFFFC" "-g" "0" "-r" "0" "-o" "1000" "-n" "0" "-k" "1" "-d" "4" "-c" "1000000000" "-v" "0" "-p" "40" "-x" "186A0" Memory dump(s)

Memory dump file name: 08BD4490.bin Memory dump target address: 0x8BD4490 Starting address: 0x8000000 Address size: 4 Address alignment: 4 Value alignment: 4 Minimum pointer address: 8000000 Maximum pointer address: 9FFFFFC Little endian: true Generate pointer map: false Read pointer map: false

Memory dump file name: 09E1CB70.bin Memory dump target address: 0x9E1CB70 Starting address: 0x8000000 Address size: 4 Address alignment: 4 Value alignment: 4 Minimum pointer address: 8000000 Maximum pointer address: 9FFFFFC Little endian: true Generate pointer map: false Read pointer map: false

Memory dump file name: 09E84AC0.bin Memory dump target address: 0x9E84AC0 Starting address: 0x8000000 Address size: 4 Address alignment: 4 Value alignment: 4 Minimum pointer address: 8000000 Maximum pointer address: 9FFFFFC Little endian: true Generate pointer map: false Read pointer map: false

Pointer Searcher Settings Maximum pointer offset: 0x1000 Allow negative offsets: false Exclude cycles: true Maximum pointer depth: 4 Maximum memory dump chunk size: 1000000000 Maximum pointers count: 186 Potential pointer offsets count prediction: 40 Save additional memory dump RAM: false

Parsing command line arguments took 0.008 second(s)

Pointer Search

Using mapped_file Predicted pointer map size: 838860 Reading memory dump in 1 parts Processing chunk 1/1 Reading first memory dump took 0 second(s) Pointer map size prediction validation: 6.13 times the actual amount Parsing pointer map took 1.993 second(s) 136764 offset value pair(s) found Sorting pointer map took 0.007 second(s) Finding pointers with depth 1... Pointer depth took 0 second(s) Finding pointers with depth 2... Maximum pointers count of 186 reached Pointer depth took 0.001 second(s) Finding pointers with depth 3... 88 memory pointer(s) found so far Pointer depth took 0.001 second(s) Finding pointers with depth 4... 88 memory pointer(s) found so far Pointer depth took 0 second(s) Memory pointer(s) count before removing: 88 Removing invalid pointers... Using mapped_file: true Saving additional memory dump RAM: false Reading additional memory dump took 0 second(s) Reading additional memory dump took 0 second(s) Removing invalid pointers took 0.057 second(s) 0 memory pointer(s) found Pointer search took 0.065 second(s) Total execution time took 2.078 second(s)

I think the problem is the GUI that is not sending the correct value of the maximum memory dump chunk size, this is the value that the GUI is sending:

"-c" "3B9ACA00"

below is the link to download the 3 dumps used in the tests:

https://tinyurl.com/y7vrfqwn

BullyWiiPlaza commented 5 years ago

Yes, I already fixed the value sending bug. It will be part of the next update. Thank you.

Urahara3000 commented 5 years ago

You're welcome, always count on my help to perfect this wonderful program even more.

Urahara3000 commented 5 years ago

Hi, I tested the new version, this time Native Pointer Searcher worked correctly, I even managed to find two static routes of two games here that I had not been able to find before, one of PS2 and one of PSP, however, an error still occurs when I try to use Native Pointer Searcher on emulators that use the initial memory of 80000000 and 90000000, see the error window:

https://tinyurl.com/y9qtlvsh

The error occurs when I execute the command by CMD as well, if you want the dumps to do some tests, the link is below:

https://tinyurl.com/y87tf4bn

There are 3 Dumps of the Fatal Frame 4 of the Wii, the addresses of this (Health) function use 90000000 as initial memory

Is there a way to make the (Last Pointer Offsets) function optional ?, you could create a checkbox with the text (Use Last Pointer Offsets) and add it on the bottom, and if this checkbox is unchecked, the normal Native Searcher Engine scan would be performed, finding all possible offsets

Is there a way to use the (Last Pointer Offsets) function with the Java engine ?

Up to this point, the program is almost perfect, only a few final adjustments, God be with you and see you soon.

BullyWiiPlaza commented 5 years ago

Is there a way to make the (Last Pointer Offsets) function optional? Yes. If you enter nothing (e.g. a blank field) then it's disabled.

Is there a way to use the (Last Pointer Offsets) function with the Java engine? Currently not but I can implement it later.

The error occurs when I execute the command by CMD as well, if you want the dumps to do some tests, the link is below Thank you. I will investigate that. I've also been having this strange Java exception but on CMD it would run successfully. Since you say it doesn't work either I should be able to find the problem more easily.

Urahara3000 commented 5 years ago

"Yes. If you enter nothing (eg a blank field) then it's disabled", Ok, I left the field blank, but when I start the search, an error occurs, similar to the other error, see below:

https://tinyurl.com/yakeeh3j

I copied the command and used via CMD, and worked perfectly, see the command below:

"C:\Users\ANDREA~1\AppData\Local\Temp\PointerSearcher4330794264621293518.exe" "-m" "E:\André Alexandre\Programas\Emulator Codehacking\Dumps\Valkyrie Profile - Lenneth [HP P1] (PSP)\08EE0FF4.bin" "-s" "8000000" "-t" "8EE0FF4" "-e" "l" "-z" "4" "-a" "4" "-u" "4" "-i" "8000000" "9FFFFFC" "-g" "0" "-r" "0" "-m" "E:\André Alexandre\Programas\Emulator Codehacking\Dumps\Valkyrie Profile - Lenneth [HP P1] (PSP)\08EE7734.bin" "-s" "8000000" "-t" "8EE7734" "-e" "l" "-z" "4" "-a" "4" "-u" "4" "-i" "8000000" "9FFFFFC" "-g" "0" "-r" "0" "-m" "E:\André Alexandre\Programas\Emulator Codehacking\Dumps\Valkyrie Profile - Lenneth [HP P1] (PSP)\08EE7A74.bin" "-s" "8000000" "-t" "8EE7A74" "-e" "l" "-z" "4" "-a" "4" "-u" "4" "-i" "8000000" "9FFFFFC" "-g" "0" "-r" "0" "-m" "E:\André Alexandre\Programas\Emulator Codehacking\Dumps\Valkyrie Profile - Lenneth [HP P1] (PSP)\08F06834.bin" "-s" "8000000" "-t" "8F06834" "-e" "l" "-z" "4" "-a" "4" "-u" "4" "-i" "8000000" "9FFFFFC" "-g" "0" "-r" "0" "-m" "E:\André Alexandre\Programas\Emulator Codehacking\Dumps\Valkyrie Profile - Lenneth [HP P1] (PSP)\08F15274.bin" "-s" "8000000" "-t" "8F15274" "-e" "l" "-z" "4" "-a" "4" "-u" "4" "-i" "8000000" "9FFFFFC" "-g" "0" "-r" "0" "-o" "590" "-n" "0" "-k" "1" "-d" "3" "-c" "1000000000" "-v" "0" "-p" "40" "-x" "10000000" "-q" ""

when I leave the field (Last Offsets) blank, something happens that the GUI does not send the correct information

"Currently not I can implement it later", Great news !, I wait the time it takes to test this function in the Java engine

"but on CMD it would run successfully", this is strange, it did not work here via CMD with Fatal Frame 4 dumps that uses 90000000, dumps that use 80000000 the same error occurs, but the strangest thing is that via CMD, the command can be partially executed, until the error happens, see the image below:

https://tinyurl.com/yap2gwln

And this is my report for today, you can check it out later, God be with you and see you soon.

BullyWiiPlaza commented 5 years ago

via CMD, the command can be partially executed, until the error happens This is a bug since the pointer searcher crashed before completion. I found the cause and fixed it. The addresses didn't send correctly.

when I leave the field (Last Offsets) blank, something happens that the GUI does not send the correct information Leaving it empty causes the 0xC0000005 error code. I also fixed this bug now finally.

I don't really want to update the Java engine anymore since it's better to use the native one unless it does not work due to more crashes/bugs or whatever.

Let me know if you find any more issues. :)

Urahara3000 commented 5 years ago

The functions that were with bugs are running perfectly now, about the Last Offsets in java engine, I was curious how it would work, but if you're saying that this engine does not need it, it's all right, but if you decide to implement this function for the java engine in a future release, will be very welcome, I will continue the tests here, in case I find some other bug I warn you, many thanks for the corrections, stay with God and see you next time. :)

Urahara3000 commented 5 years ago

Hi, I think I found the last bug related to the native engine, whenever I add a negative offset in the field (Last Offsets), search always returns 0 results, and this happens with dumps of any game, I tested several dumps here, I recorded a video showing the bug, see below:

https://tinyurl.com/y8cwbza6

The test in the video was made using the Dumps of the game Valkyrie Profile - Lenneth (PSP), if you want to do some tests with these dumps, the download link is just below:

https://tinyurl.com/yc2d8odp

there is all the material for analysis, stay with God and until the next time. :)

BullyWiiPlaza commented 5 years ago

Thank you, I fixed the last offsets for negative values. I'm awaiting your next bug report if there even is something left but there probably is... :)

Urahara3000 commented 5 years ago

Now the (Last Offsets) function is working with negative offets normally, many thanks for the correction, I'll continue testing here, if I find another bug I'll let you know, thank you so much for everything, you saved my youtube channel, without your program, my channel could not exist anymore, in the matter of looking for offsets in Memory Dumps, your program is the best of all, congratulations on this wonderful program !!!, I would like to ask you a question, do you know how to create a program to create memory dump of a Windows process, both x86 and x64 ?, I use x96dbg here with the Scylla plugin, but the weakness of it is that you have to enter all the information again with each new dump generated, if you know how to do this program, you could consider creating it later, if you want and if you have a free time of course, God be with you and see you soon. :)

BullyWiiPlaza commented 5 years ago

Do you know how to create a program to create memory dump of a Windows process, both x86 and x64? Yes. I implemented this already in my JDuel Links Bot project but not as user controlled function. On Windows, you need to dump each individual module so you will end up having many memory dump files. I can make a program for that later because it seems like nobody is offering this kind of functionality. But the issue with this is that the pointer searcher I made does not support searching pointers on modules, yet. This is actually something I could implement still.

I assume this is your channel?

Urahara3000 commented 5 years ago

"On Windows, you need to dump each individual module so you will end up having many memory dump files", Is there a way to generate the memory dump only from the Base Module ?, the Scylla plugin works as follows, see the image below:

https://tinyurl.com/y7t3fgn4

https://tinyurl.com/y9yqzo2h

"I can make a program for that later because it seems like nobody is offering this kind of functionality", is true, so far I've found this kind of functionality only in this Scylla plugin, and can only be used by the x96dbg program, if you create a program which has the same functionality as this Scylla plugin, more simple, focused only on the creation of memory dumps, I am absolutely sure that your program will be the first and only so far, but only when you have a free time of course

"the pointer searcher I made does not support searching pointers on modules, yet", do you mean to look for pointers and offsets directly from the base module through the emulator process ?, a real-time scan ?, Wow, such a function would be wonderful, if it's really like this, I'll wait as long as it takes

"I assume this is your channel ?", Yes, this is my channel, this channel is exclusive to Trainers that only work on emulators, I've done Trainers for several classics, but to create these Trainers I need two tools, one to generate the game memory dumps and the other to search for the static routes, there I put these routes in the Trainer and it works normal, for this reason, your program works wonderfully, thank you very much again, God be with you and see you soon. :)

BullyWiiPlaza commented 5 years ago

Do you mean to look for pointers and offsets directly from the base module through the emulator process? A real-time scan? No. I mean the pointer searcher would have to support reading memory dumps from multiple modules and try to find pointers using those. Currently, memory dumps have to be supplied as single files and not as a collection of module memory dumps.

Is there a way to generate the memory dump only from the base module? Yes but for completeness all loaded modules by this process should be dumped as well. I can definitely make an easy application for this purpose and make it so that it is easily compatible with a future pointer searcher update to support multiple modules as explained above.

Urahara3000 commented 5 years ago

"I mean the pointer searcher would have to support reading memory dumps from multiple modules", Cool, I did not know this could be done

"I can definitely make an easy application for this purpose", Excellent news, I'll be waiting for this application !!!

One question, in the dump generate application will have an option to set the memory dump interval, through the initial address and the size ?

BullyWiiPlaza commented 5 years ago

I added module support. Therefore, I think I can close this topic. If there are any more requests or issues, please free to create a new GitHub issue. Since the memory dumper for Windows is a different application, it will be released/covered somewhere else.