Git Product home page Git Product logo

universal-pointer-searcher's Introduction

Note:

My new Universal Pointer Searcher Engine has been released. It's an updated pointer searcher with more features, strict quality control through automated regression testing and ease of use via the command line. Please check it out here and provide your feedback to help make this project even better. Thank you.

What does this do?

This project aims to provide a fast and platform-independent pointer searcher to aid cheat code and mod tool creation. It was originally developed and tested to function with Nintendo Wii U memory dumps but should be compatible with other platforms as well due to having highly configurable options.

Why is searching pointers useful?

Many memory addresses in processes or video games are not static. Hence, they change regularly. Using memory dumps and this application you can find static routes to destination addresses, so-called pointers or pointer expressions.

Which features does this program have to offer?

  • Negative pointer offsets
  • Selectable byte order
  • Unlimited pointer depth searches
  • Customizable starting address
  • Customizable maximum pointer offset
  • Unlimited memory dumps
  • Generating and working with pointer maps
  • Restricted base offset range to reduce pointer results
  • Sorting pointers by different criteria
  • Configurable maximum memory chunk size for low RAM users
  • Many more...

Where do I download a compiled version?

Here.

How do I execute the JAR file?

Since this software is Java-based, you need to have JRE 8 or higher installed on your machine. On Windows, a simple double-click on the JAR file should suffice. On Unix, run the command java -jar "Universal-Pointer-Searcher.jar".

I started the application. How do I use it to find pointers?

A tutorial can be found here.

Why does the program not start or stop right after I start a search?

You're most likely running out of memory. You need to have at least as much RAM available as the full size of one of the RAM dumps you're using. If your machine does not have enough RAM, consider using smaller memory dumps or try Mr. Mysterio's Wii U Pointer Searcher. Also, if you run into freezing/lag issues before hitting your RAM limit, passing the -Xmx VM argument followed by your total available PC RAM (e.g. 16g for 16GB) can be helpful since it disables the general memory limit imposed by default by Java.

Also, I recommend using a 64-bit JRE because it supports more than 4GB of RAM being assigned to the process. Some searches will not finish if you have less memory than that.

Pointer searching is still too slow. How to speed it up?

  • You can cut off bytes from your memory dump(s) at the beginning and at the end but make sure to keep all potential pointer base addresses and target addresses within. Make sure to increase the memory dump starting address accordingly if you cut off bytes at the beginning
  • Using a higher pointer depth significantly slows down performance so do not use it if you want the search to complete faster
  • Reduce the maximum offset since it makes search intervals bigger and thus can increase searching time by a lot
  • De-select allowing negative offsets since it basically doubles the maximum offset
  • Tick the native pointer searcher option instead of using the Java-based one

What are pointer maps and what do they do?

Pointer maps are files containing addresses and their values from the memory dump. Only potential pointers are listed. The pointer map file can also be used to perform pointer searches. Once you created a pointer map, you can theoretically delete the memory dump to save storage space on your PC and loading the pointer map by the pointer searcher may be faster than entire memory dumps. These are the advantages of using pointer maps.

How fast is this pointer searcher? Isn't Java suboptimal for tasks like this?

Kind of but the application is still quite fast. It uses optimized algorithms which matters more than a simple language choice. I however recommend you to always use the native pointer searcher option if possible since it outperforms the Java engine in terms of speed and memory usage. Furthermore, for that reason, only the native pointer searcher will be developed further. The Java-based pointer searcher engine is still significantly faster and more configurable than Mr. Mysterio's Pointer Searcher but has higher memory usage.

Who gets credit for the creation of this application?

BullyWiiPlaza

universal-pointer-searcher's People

Contributors

bullywiiplaza avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

thek0tyara

universal-pointer-searcher's Issues

Add Memory Dumps Folder option generates 0 pointers

I've noticed that the option to load an entire folder of dumps results in 0 pointers being shown. Changing none of the other settings, but removing all addresses and adding them individually fixes the issue. I can upload a zip with the dumps if you need.

No pointers found regression

There is an issue in Scan of this new version 3.3, whenever I scan, it does not return any results, in version 3.2 it works normal, I recorded a video showing a test with both versions, side by side, the dumps used were the Zelda BotW game for the function of No Freezing, see the video in the link below:

https://tinyurl.com/yyp9unb6

the dumps used in the video are at the link below:

https://tinyurl.com/y26c4863

when I have a free time and can analyze this error, I would greatly appreciate it, God be with you and see you soon.

Write pointers to HDD when running out of memory to keep going

This is an issue I've been running into a lot that I think has to do with using too high of an offset range.

Sometimes when searching for pointers, the computer will just freeze and require holding in the power button to reset. I'm pretty sure it can happen fairly consistently when I raise the offset range to 10000 or so, but doesn't always. I'll try to get to a point where I can save all my work and be ok with the computer crashing a few times to test what's exactly making it crash, but I know it usually happens when I haven't had any luck finding anything useful and try increasing things a bit to sweep a few more pointers up. The only things I really ever increase is offset min/max and max depth. Everything else is pretty much never touched.

Does the "Target address outside of memory dump bounds" input validation even make sense?

I noticed here that some games of Cemu and RPCS3 use Base Pointer from the beginning of the memory, example:

in the Bleach game of RPCS3 I find the temporary health address at (33B2A0506)

and its Base Pointer is at the beginning of the memory (30073D354)

3(3B2A0506) and its Base Pointer in 3(0073D354)

however, to achieve this result, I had to generate dumps of 1 GB in size, because 00000000 up to 40000000 is 1 GB in size

now my question comes, is there a possibility to use a smaller dump, with 256 MB ?

there is the possibility to search for address 33B2A0506 only in the first memory block of RPCS3 (00000000-10000000), without the possibility of giving the error (Target Address outside of Memory Dump Bounds) ?

if that possibility exists it would be wonderful for these emulators, stay with God and see you next time !

Add Memory Dumps Folder (Disabled)

I have already tested the new version, it is much better, I was able to analyze a dump of Cemu's Full RAM, in the other version was giving error with the 1 GB dump, however, the (Add Memory Dumps Folder) option is disabled, now I can no longer add an entire dumps folder, could you re-enable this option ?

Display Issues with Win10 display scaling options

The display kind of.... freaks out when using Windows 10's display scaling options... it's hard to explain, so picture maybe? It's simple enough to change the scaling back to 100% and fixes the issue, but everything looks so tiny, especially text T.T

Any idea how to keep this from happening? Buttons and things reappear if the mouse is scrolled over them, I guess because they update the colors on mouseover. But text doesn't really appear unless it's highlighted.
image

Changing Offset ranges breaks searches

Edit: The first few posts have incorrect info. New info begins at comment 10. #10 (comment)


Trying to search for pointers with depths larger than 2 seems to break the searches and displays 0 results. I saw a thread from last year with this same issue, but it seems to be broken again.

Set to search for pointer depths 1-2
image
Set to search for pointer depths 1-3
image

Issues with Edit Button and Negative Offsets Display

Hi again my friend, I've been testing the new version of the program today, it's even better, however, I think I found 2 issues:

First issue: When I click the (Edit) button, the (Target Address) field and the (Confirm) button are disabled.

Below are 2 comparison images between version 3.5 and 3.8:

3.5 = https://tinyurl.com/yy9r94xj

3.8 = https://tinyurl.com/y6odwdmn

Second issue: When I look for routes with negative offsets, they no longer appear with the signal - before them.

Below are 2 comparison images between version 3.5 and 3.8:

3.5 = https://tinyurl.com/y4zm48rz

3.8 = https://tinyurl.com/y359czbb

From what I tested here, I think it was just these 2, stay with God and until next time.

Recognize the .dmp format when parsing folders

Scan still does not work on Emulator Dumps, another detail, the option (Add Memory Dumps/Pointer Maps Folder) is not working with the .dmp file format, works only in .bin format, could you add the .dmp format in this option ?

God be with you and see you soon.

Feature request: Right click to paste in textboxes

Would it be possible to add the option to right click for copy/paste addresses, etc. into the text boxes when adding and editing dumps? Ctrl+V works just fine, so it's not a major issue but it'd be awesome if it could be added in next time you update the code. Mainly because I don't always have my keyboard with me. XD

Scan issues for different systems

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 !

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.