I was looking at the /proc/<pid>/maps file for an aarch64 process running on an Android (10). This section caught my interest:

72582d2000-72582f6000 --xp 00012000 07:20 93        /apex/com.android.runtime/lib64/bionic/libm.so

According to readelf, that corresponds, as expected, to the .text section.

What does it mean for a memory section to be executable but not readable? I didn't think that was possible.


1 Answer 1


Execute-only memory (XOM) was a security feature added in Android 10 and then removed in Android 11.

According to this reference, it was implemented "as a hardening mitigation against just-in-time code reuse attacks."

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .