## 1 Introduction  
With the development of embedded systems toward intelligence and networking, more and more embedded devices have recently been used in many security-sensitive fields, such as modern industry, transportation, aerospace, and military fields [1, 2, 3]. However, these embedded systems access more networks and devices, which means more potential security threats, such as code injection attacks (CIAs) [4], code reuse attacks (CRAs) [5], hardware Trojan (HT) [6], buffer overflow attacks [7], and side-channel attacks [8]. Generally, these threats mainly arise from untrusted IPs, vulnerable hardware and software, and insecure communications with other devices [1]. By tampering with key data (including opcodes, global variables, dynamic data, etc.) or hijacking the control flow of the program, attackers can use these threats to achieve their goals, including system functions changing, information leakage, and worse system damage. Therefore, to cope with these security challenges, the embedded system designer needs to propose a novel embedded system protection method which can resist multiple security attacks with relatively low resource overhead and performance overhead [2, 3]. The key data and control flow of embedded systems during program execution are the main targets of attackers. Therefore, the data integrity (DI) and control flow integrity (CFI) of embedded systems must be guaranteed. Malicious attacks can be divided into hardware-level attacks and software-level attacks based on their sources [1]. Hardware Trojan attacks are one of the typical representatives of hardware-level attacks [6]. An HT hidden in the internal logic of the System-on-Chip (SoC) is pre-designed to be activatedthrough certain parameters to perform specific functions, such as destroying key data and hijacking the control flow. Software-level attacks mainly use security vulnerabilities to damage the DI or CFI of embedded systems by CIAs [4] or CRAs [5], thereby destroying instruction execution or hijacking the control flow. To defend against these attacks, various software- or hardware-based protection technologies have been proposed to monitor the DI and the CFI of embedded systems when the program is executed. Compared with the software-based methods, hardware-assisted security-monitoring methods use fewer processor resources and have faster processing speeds [9]. Therefore, our research is based on hardware-assisted security-monitoring technology. In 2018, members of our lab proposed a hardware security method for monitoring code integrity, and the performance overhead is less than 3.45% according to the selected benchmarks [10]. Later, they proposed a hardware-enhanced protection method that protects the integrity and confidentiality of dynamic data at runtime with a performance overhead of less than 2.27% [11]. In the past two years, other members of our lab have made several optimizations to the hardware-assisted security-monitoring unit to reduce the performance overhead to about 2% while protecting the data integrity of embedded systems [1; 2; 3]. However, after testing, these approaches have struggled to detect attacks against the control flow integrity. Therefore, we added jump address monitoring to the original DI protection mechanism, which could protect the CFI of test programs to some extent, but the performance loss increases to about 9% [12]. This paper takes the data integrity and control flow integrity of the execution program as the main protection objects, focusing on the analysis of the hardware Trojan, code reuse attacks, and buffer overflow attacks on the tampering behavior of key data and the operation of hijacking the control flow. Furthermore, the hybrid information integrity-monitoring architecture (HIIMA) is proposed to protect embedded systems' key data from being tampered with key data or their control flow hijacked by an attacker when executing the program. The basic block (BB) divided according to the jump instruction is the minimum monitoring granularity of HIIMA.