Netinfo Security ›› 2026, Vol. 26 ›› Issue (9): 1435-1446.doi: 10.3969/j.issn.1671-1122.2026.09.009

Previous Articles     Next Articles

Program semantics-driven indirect call target recognition method

Meng Hui1(), Xu Jiaxing2   

  1. 1 School of Public Security Information Technology and Intelligence, Criminal Investigation Police University of China, Shenyang 110854, China
    2 School of Software and Microelectronics, Peking University, Beijing 102600, China
  • Received:2026-05-18 Online:2026-09-10 Published:2026-09-30
  • Contact: Meng Hui E-mail:1441209123@qq.com

Abstract:

Indirect call is widely used in system software to implement dynamic program behavior, but it hinders the construction of accurate control-flow graphs, which underpins many static analyses and system-hardening techniques. Modern compilers can’t identify indirect-call targets by default, while most existing methods rely only on type information and produce many false positives. This paper proposed a program semantics-driven indirect call target recognition method called HRefIC. Due to the fact that effective targets were easier to reach the call point, the statistical results of 1000 randomly selected effective targets in Linux kernel, Bash, and MySQL showed that 57.4% of the call distances are 0, and 81.9% of the call distances do not exceed 2. There was usually a correlation between the caller, the called, and different objectives of the same indirect call, with 78.95% of valid objectives being similar to the caller’s function name. HRefIC integrated data flow, path, semantic, and text similarity information based on this, further refining the coarse-grained target obtained from type analysis. At the same time, on-demand design was adopted to control overhead, and multi-layer rules were used to reduce false alarm rates. The experimental results show that compared with traditional type analysis based on function signatures, HRefIC reduces the average number of targets by 98.6%, 94.4%, and 95.0% on Linux kernel, Bash, and MySQL, respectively, and further reduces by 38% to 66% compared to MLTA. In addition, HRefIC can also serve semantic error detection, using this method to discover 8 new errors in the Linux kernel.

Key words: static analysis, taint analysis, indirect-call target, function pointer, control-flow integrity

CLC Number: