I am new to Security testing and I am working on a 64-bit ARM server. We are using ARM TrustZone technology.

Is it possible for me to check if I am in the Secure world or the Normal world? How do I test the above scenario?

As a tester assuming I am in Normal world can you give some inputs to access application running in Secure world?

1 Answer 1


Check the NS bit in the SCR register (it's the same register on ARMv7 and ARMv8). You need to be in a privileged mode (i.e. EL1 and above). (Monitor mode (EL3) is secure regardless of the value of the NS bit but if you need to ask you aren't running code in monitor mode.)

It's a bit odd that you'd need to test that because typically the two worlds would be running different operating systems (if the secure world is used at all).

Whether a normal world application can communicate with a secure world application entirely depends on what operating systems are running in the normal world and in the secure world. The normal world operating system (EL1 NS) can issue an SMC instruction to switch to secure mode (via the monitor), which works roughly like SVC to make a system call from user to kernel.

You must log in to answer this question.

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