Jump to content

Map script arbitrary code execution: Difference between revisions

no edit summary
>Torchickens
(Created page with "'''Map script arbitrary code execution''' is an arbitrary code execution method in {{RBY}}, usually requiring the expanded item pack. ==Summary== Item 42 and item 42'...")
 
No edit summary
 
(2 intermediate revisions by 2 users not shown)
Line 1:
'''Map script arbitrary code execution''' is an [[arbitrary code execution]] method in {{RBY}}, usually requiring the [[expanded item pack]]. In speedrunning communities, it is also called APJM<ref>[https://pastebin.com/T5gHcAtb blue 151 full roaming items list - Pastebin]</ref>, and can be used as a type of arbitrary code execution or a specified [[unintended ROM code execution]], so is typically not allowed.
 
==Summary==
Item 42 and item 42's quantity control wMapScriptPtr (D36E-F in {{RB}} and D36D-E in {{Yellow}}), with the index number of item 42 being the first byte to a little-endian pointer, and item 42's quantity as the second. TheseThis addresses[[word]] containcontains the current map script (not to be confused with [[glitch meta-map script activation|the meta-map script]] which is not controlled by wMapScriptPtr).
 
This script is run continuously after the menu is closed. The address can be changed to viableone itemscorresponding to a different item slot, such as Water Stone x 211x211 (Thunderstone x 211x211 in Yellow) to make the script point to item 3 (D322/D321).
 
This is an efficient way of arbitrary code execution, but the items in slot 42 will be wiped after leaving the map, so it may be a good idea to swap the original map script back in before moving to a new map.
 
==See also==
#[[Expanded bag item documentation (Generation I)]]
 
==References==
<references/>
[[Category:Generation I glitches]]
[[Category:Arbitrary code execution]]
Cookies help us deliver our services. By using our services, you agree to our use of cookies.