Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1.8 Alphas #94

Open
zorgiepoo opened this issue Dec 22, 2023 · 4 comments
Open

1.8 Alphas #94

zorgiepoo opened this issue Dec 22, 2023 · 4 comments

Comments

@zorgiepoo
Copy link
Owner

zorgiepoo commented Dec 22, 2023

I released the first alpha build of Bit Slicer 1.8 in the Releases page. The overall additions and bug fixes are listed there.

It adds a new mode to search for addresses, or also known as pointers to variables. Unfortunately I don't have time at the moment to give a proper demonstration but I will jot some explanation here. UI workflows may be subject to change and searching is not fully optimized yet. This is overall pretty experimental and there are probably bugs.

The main purpose of searching for addresses is to find a more-static address of a variable that persists across e.g, the player re-spawning, or the a new game starting, or an app having been restarted. So this mode allows you to find variables whose address is composed of reading other pointers/addresses and offsets.

After you find the value of an address, you can switch from searching 'value's to searching 'address'es in the toolbar. Sometimes Bit Slicer will intelligently pre-populate the address to search for in the search field but otherwise you can "Search Pointers to Variable" in the menubar or right-click.

This mode starts with searching pointers with 1 level deep (may subject to change). If you do this search it will return variables whose address is [base] + offset. If you don't find any statics (Bit Slicer pops them up in the results first), you can increase the levels to 2 and search again, and so on. In this process you may be able to eliminate false variables between levels. Or you can just start at a high level (like 4 or 5) but the search will take longer and generate a lot more noise. You can also change the offset comparison to = when increasing the max level by 1 if you get the offset from watching read/write accesses to the base address (hold down option to watch for the base address); this will result in less false results. Lastly you can also change back to searching values when you invalidate the current address; for example, if you relaunch the game and want to narrow those results by the new value.

There's a filter enabled by default currently. It excludes static data from system binaries and only looks at heap/stack data. To disable it if it's problematic (no UI shown yet or decided what plan is here):

defaults write com.zgcoder.BitSlicer ZGDisableAddressFilterOptions -bool YES

Currently requires 10.14 but may bump to 10.15 later. Address searches don't work for 32 bit targets.

Pointer searching tutorial is updated on https://github.com/zorgiepoo/Bit-Slicer/wiki/Pointers

@zorgiepoo
Copy link
Owner Author

Alpha 2 is out with some few bug fixes.

@zorgiepoo
Copy link
Owner Author

Updated pointer searching guide https://github.com/zorgiepoo/Bit-Slicer/wiki/Pointers

@zorgiepoo
Copy link
Owner Author

zorgiepoo commented Apr 13, 2024

Alpha 3 is out with additional/advanced options for address searches including finding negative offsets (some of other options are in the advanced options in the bottom left of the search window). Some other bug fixes are included.

@zorgiepoo
Copy link
Owner Author

Alpha 4 is out and it adds the ability to assign labels to variables, which may be referenced by other variables or through scripting.

Documentation links for 1.8:
Searching for Pointers
Labeled variables

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant