My English is very poor, I used the machine translation, I hope you can read it
I mean, the code works with ASLR
noaslr.skprx plugin does not work in this game
Step 1:Recording and Dumping
I recorded the data and dumped memory multiple times with ASLR, like this
View attachment 341345
Step 2:Moving Segment
Normal,Seg0 starts at 0x81000000
Seg0 ends followed by Seg1,
Seg1 ends followed by Memory data,
with ASLR Seg0 and Seg1 addresses are random,memory data is relatively fixed,
View attachment 341346
So we move the random Seg0 and SEG1 to the fixed position,keep memory data,
multiple dumps can be compared.
I am referring to eboot.bin to determine the fixed address of Seg0 and Seg1
View attachment 341347
Step 3: (important) Fix Pointer
record dump Seg0 and Seg1 shift offsets
subtract the corresponding offsets from the pointers to Seg0 and Seg1
For example in dump0
pointer 0x825BCAD4 points to 0x81040DC8
address 0x81040DC8 in the range of Seg0
Seg0 was moved from 0x81071FD0 to 0x81000000 when repairing,shift offset is 0x71FD0
the pointer 0x825BCAD4 should point from 0x81040DC8 to 0x80FCEDF8 (0x81040DC8-0x71FD0)
Finally, We eliminated the impact of ASLR on dumps by fixing,
make it possible to search for pointers belonging to Seg0 and Seg1 between multiple dumps to create B200 type code
View attachment 341348