10.4.0-29: Difference between revisions
Line 14: | Line 14: | ||
[[3DS_System_Flaws#Kernel11|memchunkhax2]] was fixed by reading the [[MemoryBlockHeader]] next pointer before it is mapped to userland. | [[3DS_System_Flaws#Kernel11|memchunkhax2]] was fixed by reading the [[MemoryBlockHeader]] next pointer before it is mapped to userland. | ||
The only updated FIRM sysmodules were fs and loader, for fs only a version-field in .code was updated used with a debug NOP-instruction. The loader process .text was previously 0x331C-bytes, it's now 0x36F0-bytes. | The only updated FIRM sysmodules were fs and loader, for fs only a version-field in .code was updated used with a debug NOP-instruction. | ||
====loader==== | |||
The loader process .text was previously 0x331C-bytes, it's now 0x36F0-bytes. | |||
All code changes: | |||
* Some code using svcGetSystemTick was added, this appears to be debug code that wasn't disabled(the output from this is never used). | |||
* L_140022b8(L_14002234 in previous loader version): This is the function which calls L_140025f0. Code was added between the code which loads the memregion value from exheader, and the func call for mapping it(L_140025f0). This new code determines what to pass for the L_140025f0 insp4 flag. By default the value passed for that flag is 0. | |||
** When the process memregion is APPLICATION, the programID is for a CTR title, and the uniqueid matches the eShop system-application(''all'' regions including CHN), the flag is set to 1. | |||
** When the process memregion is SYSTEM, the flag is set to 1 when the reslimit_category is not LIB_APPLET. | |||
* L_140025f0(L_140024e4 in previous loader version) now calls another function(L_14002670) instead of svcControlMemory directly, for mapping the codebin memory. The insp4 flag from the L_140025f0 input is passed to L_14002670 as sp0. | |||
* L_14002670: New function used for mapping the codebin. When the insp0 flag is zero, this does the normal memory-mapping, otherwise a special memory-mapping codepath is used. This codepath still uses the same memregion specified in the exheader. | |||
===NS=== | ===NS=== |