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

Implement "Advanced RATS Protection System" #6

Open
VitorVilela7 opened this issue May 16, 2019 · 2 comments
Open

Implement "Advanced RATS Protection System" #6

VitorVilela7 opened this issue May 16, 2019 · 2 comments
Assignees

Comments

@VitorVilela7
Copy link
Owner

On complex data structures ROM corruption is a thing that can easily happen.

Because UberASM Tool has many different ways of managing data, including ones written by third party users, there's always a risk of part of the ROM data getting corrupted.

Write a system for mapping all RATS tags on the ROM which is executed when the ROM is just loaded and before the ROM is saved, for monitoring and tracking potential known issues or new ones generated because of some .asm file.

@randomdude999
Copy link

Can you bring an example of the kinds of corruption this could fix?
Also, counting all the rats tags on rom load is sensible, but I feel like you should be able to use asar's getwrittenblocks api to find the changes a patch does.

@VitorVilela7
Copy link
Owner Author

Late response but the idea is it being an additional layer of checking where all RATS tags are scanned before the ROM is manipulated and after it is, having an image of the differences and with that allowing UberASM Tool better control of the all blocks modified and yup, using getwrittenblocks api from Asar is a nice plus for data comparison.

There were recent cases on some SMW hacks of certain RATS tags getting erased and while I have thought that UberASM Tool had something to do, one of them had just the regular uberASM patch instead of the tool version. But because users can insert external data and manipulate freecode labels without checking for data leakage, I think it would be important to UberASM Tool monitor them and throw an error if a certain block is not added to the protect block list.

Everything is just speculation for now, of course.

Scanning for all RATS tag on the beginning might be a good speed boost in case too many RATS scans are done, since by doing a full scan at the beginning you will know ahead all freespace blocks available and using the asar api it will let you also monitor for changes and have much more control in the end.

Everything is just ideas for now.

@VitorVilela7 VitorVilela7 self-assigned this Jul 14, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants