<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.1 20151215//EN" "http://jats.nlm.nih.gov/publishing/1.1/JATS-journalpublishing1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" xml:lang="en" article-type="research-article" dtd-version="1.1">
<front>
<journal-meta>
<journal-id journal-id-type="pmc">CMC</journal-id>
<journal-id journal-id-type="nlm-ta">CMC</journal-id>
<journal-id journal-id-type="publisher-id">CMC</journal-id>
<journal-title-group>
<journal-title>Computers, Materials &#x0026; Continua</journal-title>
</journal-title-group>
<issn pub-type="epub">1546-2226</issn>
<issn pub-type="ppub">1546-2218</issn>
<publisher>
<publisher-name>Tech Science Press</publisher-name>
<publisher-loc>USA</publisher-loc>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">67636</article-id>
<article-id pub-id-type="doi">10.32604/cmc.2025.067636</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Article</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>MemHookNet: Real-Time Multi-Class Heap Anomaly Detection with Log Hooking</article-title>
<alt-title alt-title-type="left-running-head">MemHookNet: Real-Time Multi-Class Heap Anomaly Detection with Log Hooking</alt-title>
<alt-title alt-title-type="right-running-head">MemHookNet: Real-Time Multi-Class Heap Anomaly Detection with Log Hooking</alt-title>
</title-group>
<contrib-group>
<contrib id="author-1" contrib-type="author">
<name name-style="western"><surname>Wang</surname><given-names>Siyi</given-names></name></contrib>
<contrib id="author-2" contrib-type="author" corresp="yes">
<name name-style="western"><surname>Zhuang</surname><given-names>Yan</given-names></name><email>yan.zhuang@zzu.edu.cn</email></contrib>
<contrib id="author-3" contrib-type="author">
<name name-style="western"><surname>Zhou</surname><given-names>Zhizhuang</given-names></name></contrib>
<contrib id="author-4" contrib-type="author">
<name name-style="western"><surname>Wang</surname><given-names>Xinhao</given-names></name></contrib>
<contrib id="author-5" contrib-type="author">
<name name-style="western"><surname>Li</surname><given-names>Menglan</given-names></name></contrib>
<aff id="aff-1"><institution>School of Cyber Science and Engineering, Zhengzhou University</institution>, <addr-line>Zhengzhou, 450002</addr-line>, <country>China</country></aff>
</contrib-group>
<author-notes>
<corresp id="cor1"><label>&#x002A;</label>Corresponding Author: Yan Zhuang. Email: <email>yan.zhuang@zzu.edu.cn</email></corresp>
</author-notes>
<pub-date date-type="collection" publication-format="electronic">
<year>2025</year></pub-date>
<pub-date date-type="pub" publication-format="electronic">
<day>23</day><month>09</month><year>2025</year></pub-date>
<volume>85</volume>
<issue>2</issue>
<fpage>3041</fpage>
<lpage>3066</lpage>
<history>
<date date-type="received">
<day>08</day>
<month>5</month>
<year>2025</year>
</date>
<date date-type="accepted">
<day>08</day>
<month>7</month>
<year>2025</year>
</date>
</history>
<permissions>
<copyright-statement>&#x00A9; 2025 The Authors.</copyright-statement>
<copyright-year>2025</copyright-year>
<copyright-holder>Published by Tech Science Press.</copyright-holder>
<license xlink:href="https://creativecommons.org/licenses/by/4.0/">
<license-p>This work is licensed under a <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</ext-link>, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
</license>
</permissions>
<self-uri content-type="pdf" xlink:href="TSP_CMC_67636.pdf"></self-uri>
<abstract>
<p>Heap memory anomalies, such as Use-After-Free (UAF), Double-Free, and Memory Leaks, pose critical security threats including system crashes, data leakage, and remote exploits. Existing methods often fail to handle multiple anomaly types and meet real-time detection demands. To address these challenges, this paper proposes MemHookNet, a real-time multi-class heap anomaly detection framework that combines log hooking with deep learning. Without modifying source code, MemHookNet non-intrusively captures memory operation logs at runtime and transforms them into structured sequences encoding operation types, pointer identifiers, thread context, memory sizes, and temporal intervals. A sliding-window Long Short-Term Memory (LSTM) module efficiently filters out suspicious segments, which are then transformed into pointer access graphs for classification using a GATv2-based model. Experimental results demonstrate that MemHookNet achieves 82.2% accuracy and 81.5% recall with an average inference time of 15 ms, outperforming DeepLog and GLAD-PAW by 11.7% in accuracy and reducing latency by over 80%.</p>
</abstract>
<kwd-group kwd-group-type="author">
<kwd>Use-after-free detection</kwd>
<kwd>heap memory vulnerabilities</kwd>
<kwd>log analysis</kwd>
<kwd>memory leak detection</kwd>
<kwd>graph neural network</kwd>
</kwd-group>
<funding-group>
<award-group id="awg1">
<funding-source>Open Foundation of Key Laboratory of Cyberspace Security</funding-source>
<award-id>KLCS20240211</award-id>
</award-group>
</funding-group>
</article-meta>
</front>
<body>
<sec id="s1">
<label>1</label>
<title>Introduction</title>
<p>Dynamic heap memory allocation plays a critical role in enhancing the flexibility and resource efficiency of modern software systems. However, this mechanism also introduces severe security vulnerabilities, such as Use-After-Free (UAF) [<xref ref-type="bibr" rid="ref-1">1</xref>,<xref ref-type="bibr" rid="ref-2">2</xref>], Double-Free [<xref ref-type="bibr" rid="ref-3">3</xref>], and Memory Leaks [<xref ref-type="bibr" rid="ref-4">4</xref>]. These anomalies are commonly exploited by attackers to trigger system crashes, data leakage, and even remote code execution. Among these, UAF vulnerabilities are particularly challenging to detect due to their temporal dependency and cross-thread behavior, which can easily bypass traditional static or runtime defenses [<xref ref-type="bibr" rid="ref-5">5</xref>].</p>
<p>To mitigate such threats, detection techniques are classified into static analysis, dynamic monitoring, and hybrid approaches. Static analysis tools [<xref ref-type="bibr" rid="ref-6">6</xref>] like Cppcheck and Flawfinder detect memory issues at the code level but often generate false positives due to a lack of runtime context. Dynamic tools [<xref ref-type="bibr" rid="ref-7">7</xref>], such as Valgrind and AddressSanitizer, capture heap behaviors at runtime, offering better accuracy but at the cost of substantial performance overhead. Hybrid approaches [<xref ref-type="bibr" rid="ref-8">8</xref>] combine these techniques but often complicate deployment.</p>
<p>Given these limitations, log-based anomaly detection has recently emerged as a promising alternative. By capturing runtime memory operation logs, such approaches offer a lightweight and scalable means to model program behavior. These logs naturally exhibit sequential and semantic patterns, making them well-suited for learning-based anomaly detection. Deep learning models such as Long Short-Term Memory (LSTM) networks and Graph Neural Networks (GNNs) have shown strong capabilities in modeling temporal and structural dependencies, respectively. However, most existing methods [<xref ref-type="bibr" rid="ref-9">9</xref>&#x2013;<xref ref-type="bibr" rid="ref-11">11</xref>] are constrained to binary classification tasks [<xref ref-type="bibr" rid="ref-12">12</xref>], rely on offline analysis [<xref ref-type="bibr" rid="ref-8">8</xref>], or adopt single-model inference strategies [<xref ref-type="bibr" rid="ref-13">13</xref>,<xref ref-type="bibr" rid="ref-14">14</xref>], thereby failing to meet the demands of real-time, multi-class detection in real-world environments. Additionally, while recent graph-based models have demonstrated success in multi-class detection for image and spatial data [<xref ref-type="bibr" rid="ref-15">15</xref>,<xref ref-type="bibr" rid="ref-16">16</xref>], they often depend on high-level feature reconstruction and are ill-suited for analyzing runtime memory logs due to modality mismatches and latency constraints.</p>
<p>Log-based anomaly detection has emerged as a prominent technique in recent years, leveraging runtime memory operation logs for behavior modeling [<xref ref-type="bibr" rid="ref-17">17</xref>]. These logs inherently contain sequential and semantic information, making them suitable for learning-based detection. Deep learning models, such as Long Short-Term Memory (LSTM) networks and Graph Neural Networks (GNNs), have demonstrated strong potential in capturing temporal and structural dependencies. However, existing approaches are mostly limited to binary classification, offline analysis, and single-model inference, failing to meet the practical demands for real-time, multi-class detection in real-world systems.</p>
<p>To address these limitations, we propose MemHookNet (Memory Hook-guided Network), a novel end-to-end framework for real-time multi-class heap memory anomaly detection. MemHookNet integrates temporal and structural modeling through a dual-path architecture. At runtime, memory operations such as malloc, free, and memcpy are intercepted using a lightweight LD_PRELOAD hook mechanism. A sliding-window LSTM module first filters out benign sequences. Suspicious segments are then converted into structured pointer access graphs by a semantic-enhanced graph builder. These graphs are finally classified using a graph attention network (MemGATClassifier) for fine-grained anomaly recognition across UAF, Double-Free, Memory Leak, and normal behaviors.</p>
<p>The main contributions of this paper are summarized as follows:
<list list-type="bullet">
<list-item>
<p>We propose MemHookNet, a unified temporal-structural framework for multi-class heap memory anomaly detection. It addresses the limitations of previous methods by achieving high accuracy, strong scalability, and low runtime overhead in real-world environments. Experimental results show that MemHookNet attains an accuracy of 82.2%, outperforming state-of-the-art baselines such as DeepLog (70.5%) and GLAD-PAW (81.2%).</p></list-item>
<list-item>
<p>We design a non-intrusive runtime memory logging mechanism based on LD_PRELOAD, capable of capturing multi-threaded heap behaviors in real time. This design minimizes performance impact during execution. As reported in <xref ref-type="sec" rid="s5">Section 5</xref>, the system achieves an average inference time of 15 ms, representing a substantial improvement over traditional analysis tools like Valgrind.</p></list-item>
<list-item>
<p>We introduce a lightweight LSTM-based prefiltering module for log sequence screening, which significantly improves processing efficiency while maintaining high recall performance.</p></list-item>
<list-item>
<p>We further construct semantic pointer access graphs using MemLogGraphBuilder, and perform graph-level classification through MemGATClassifier, an attention-based graph neural network. This graph-based representation enables the model to effectively capture both temporal and structural dependencies of heap memory anomalies. The proposed classifier achieves an AUC-ROC of 94.7%, considerably outperforming other graph-based methods such as Logs2Graphs (70.2%) and conventional GCN-based models.</p></list-item>
</list></p>
<p>In summary, MemHookNet transforms the traditional &#x201C;offline &#x002B; binary&#x201D; detection paradigm into a &#x201C;real-time &#x002B; multi-class &#x002B; deployable&#x201D; solution. With high precision, scalability, and engineering applicability, our framework offers a practical approach to securing dynamic memory usage in modern software systems.</p>
</sec>
<sec id="s2">
<label>2</label>
<title>Related Work</title>
<p>In recent years, significant progress has been made in the field of heap memory anomaly detection, particularly in detecting UAF vulnerabilities. Existing methods for detecting heap memory vulnerabilities can be broadly categorized into four types: static analysis, dynamic detection with specialized mechanisms, hybrid analysis systems, and log-driven deep learning approaches. This section systematically reviews each of these categories, emphasizing their respective strengths and limitations.</p>
<sec id="s2_1">
<label>2.1</label>
<title>Traditional Detection Techniques for Heap Vulnerabilities</title>
<p>Static analysis tools detect memory issues by modeling source code or intermediate representations before execution. While they scale well, they lack runtime awareness. For example, Zhang et al. [<xref ref-type="bibr" rid="ref-18">18</xref>] proposed UAFX, which uses alias analysis and partial-order constraints to detect complex UAF vulnerabilities in the Linux kernel, addressing some limitations of traditional tools. However, UAFX heavily depends on path modeling and alias resolution, which face scalability issues like path explosion. Common tools like Cppcheck [<xref ref-type="bibr" rid="ref-19">19</xref>] and Flawfinder [<xref ref-type="bibr" rid="ref-20">20</xref>] perform efficient rule-based scans but cannot capture deep semantic relationships, particularly in multi-threaded or non-deterministic paths. In summary, while static analysis is useful for early-stage scanning, it lacks the precision and granularity needed for real-time detection, especially for vulnerabilities dependent on timing or thread interleaving.</p>
<p>Dynamic detection monitors actual memory behavior during execution using tools like Valgrind [<xref ref-type="bibr" rid="ref-21">21</xref>] and AddressSanitizer (ASan) [<xref ref-type="bibr" rid="ref-22">22</xref>], which detect UAFs and buffer overflows with red-zone techniques, though at a high performance cost (2-5x runtime overhead). Several specialized mechanisms have been proposed to improve efficiency. For example, Lee et al. [<xref ref-type="bibr" rid="ref-13">13</xref>] introduced Dangling Pointer Nullification (DPN), which nullifies references during object deallocation to prevent UAF exploits, but it is ineffective against pointer aliasing. Van Der Kouwe et al. [<xref ref-type="bibr" rid="ref-23">23</xref>] proposed DangSan, which reclaims dangling pointers using background threads, though it suffers from delayed detection. Gorter et al. [<xref ref-type="bibr" rid="ref-24">24</xref>] presented DangZero, employing a One-Time Allocation (OTA) strategy for high-precision detection by directly accessing user-space page tables, but it requires significant deployment support. Ahn et al. [<xref ref-type="bibr" rid="ref-25">25</xref>] introduced BUDAlloc, which combines user-space and kernel-level cooperation to reduce overhead, improving adaptability. UAF-GUARD [<xref ref-type="bibr" rid="ref-14">14</xref>] uses fine-grained memory permissions to block illegal memory accesses with high precision but introduces additional runtime overhead, making it less suitable for lightweight or performance-sensitive applications. Despite their high accuracy, most dynamic detection methods rely on privileged instructions, kernel modifications, or custom allocators, complicating deployment and limiting generalizability across software ecosystems.</p>
<p>In conclusion, both static and dynamic approaches face inherent trade-offs: Static analysis offers high efficiency but lacks temporal and concurrency awareness; Dynamic detection provides better precision but suffers from significant performance costs and deployment complexity. This motivates the need for a lightweight, real-time, and semantically expressive alternative, which we explore in subsequent sections.</p>
</sec>
<sec id="s2_2">
<label>2.2</label>
<title>Hybrid Analysis Systems</title>
<p>Hybrid analysis aims to balance detection coverage and behavioral precision by combining static and dynamic techniques. Although platforms like Angr [<xref ref-type="bibr" rid="ref-26">26</xref>] and Driller [<xref ref-type="bibr" rid="ref-27">27</xref>] demonstrate strong capability through symbolic execution and path exploration, their reliance on SMT solvers and complex analysis pipelines significantly limits real-time deployment and scalability in high-frequency online systems.</p>
</sec>
<sec id="s2_3">
<label>2.3</label>
<title>Log-Driven Deep Learning-Based Methods</title>
<p>Recent advances in deep learning [<xref ref-type="bibr" rid="ref-28">28</xref>] have fueled interest in anomaly detection based on runtime logs. LSTM-based models, such as DeepLog [<xref ref-type="bibr" rid="ref-9">9</xref>], effectively learn normal log sequences and identify deviations. However, these models are limited by their inability to capture structural relationships between events. To enhance contextual awareness, LogAnomaly [<xref ref-type="bibr" rid="ref-10">10</xref>] introduces event embeddings and log templates, yet it still relies on binary classification and lacks multi-class granularity.</p>
<p>To address these limitations, recent studies have integrated graph neural networks (GNNs) into log-based frameworks. Logs2Graphs [<xref ref-type="bibr" rid="ref-11">11</xref>] transforms log windows into weighted graphs for GCN-based detection, but suffers from limited classification accuracy. GLAD-PAW [<xref ref-type="bibr" rid="ref-29">29</xref>] and DeepIraLog [<xref ref-type="bibr" rid="ref-30">30</xref>] enhance structural analysis with attention mechanisms and heterogeneous graph modeling, improving interpretability but introducing significant pipeline complexity, hindering real-time use.</p>
<p>Despite growing interest in structure-aware models, most log-driven methods remain constrained to offline settings, binary classification, and single-stage inference, falling short of the demands for real-time, multi-class heap anomaly detection.</p>
</sec>
<sec id="s2_4">
<label>2.4</label>
<title>Summary and Insights</title>
<p>In summary, the current methods for detecting heap vulnerabilities face several common limitations:
<list list-type="bullet">
<list-item>
<p><bold>Offline Operation:</bold> Many existing systems operate offline, failing to meet the real-time response requirements that are critical for modern memory anomaly detection.</p></list-item>
<list-item>
<p><bold>Limited Feature Modeling:</bold> Traditional models often rely on single-dimensional features, focusing either on temporal or structural characteristics, while ignoring the rich and multi-dimensional behavioral semantics required for detecting complex anomalies like UAF, Double-Free, and Memory Leak.</p></list-item>
<list-item>
<p><bold>Invasive Data Collection:</bold> A significant number of existing mechanisms for data collection are invasive or resource-heavy, limiting their deployment in production environments where low overhead is crucial.</p></list-item>
<list-item>
<p><bold>Binary Classification:</bold> Most of these approaches are designed for binary classification tasks, making them inadequate for real-world scenarios where multiple types of memory anomalies (such as UAF, Double-Free, and Memory Leak) must be detected simultaneously.</p></list-item>
</list></p>
<p>These limitations highlight a clear gap for a deployable, real-time, multi-class detection framework. The next section introduces MemHookNet, our proposed approach that addresses these challenges via hybrid temporal-structural deep modeling.</p>
</sec>
</sec>
<sec id="s3">
<label>3</label>
<title>Design of MemHookNet for Memory Anomaly Detection</title>
<p>To address the limitations discussed in <xref ref-type="sec" rid="s2_4">Section 2.4</xref>, We propose MemHookNet, a lightweight and deployable framework that integrates sequence modeling and graph reasoning in a dual-path architecture for real-time, multi-class heap anomaly detection. It achieves high accuracy with minimal overhead.</p>
<sec id="s3_1">
<label>3.1</label>
<title>System Architecture</title>
<p>MemHookNet adopts a four-stage pipeline: log collection, temporal filtering, graph construction, and multi-class classification (<xref ref-type="fig" rid="fig-1">Fig. 1</xref>). At runtime, a HOOK module intercepts memory operations (e.g., malloc, free) and generates structured logs. A sliding-window LSTM model pre-filters suspicious sequences. Those exceeding a threshold are transformed into memory access graphs and classified by a GAT-based network across four categories: Normal, UAF, Double-Free, and Memory Leak.</p>
<fig id="fig-1">
<label>Figure 1</label>
<caption>
<title>System architecture of MemHookNet for heap memory anomaly detection</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_67636-fig-1.tif"/>
</fig>
<p>Algorithm 1 illustrates the real-time workflow of log collection, filtering, and classification.</p>
<p>To provide a clear execution overview, Algorithm 1 illustrates the system&#x2019;s runtime flow, detailing how memory logs are collected, filtered, transformed, and ultimately classified in a real-time processing loop.
<list list-type="bullet">
<list-item>
<p><bold>Steps 1&#x2013;2:</bold> The system is initialized by loading the HOOK module, which intercepts memory operations and logs them in a structured format.</p></list-item>
<list-item>
<p><bold>Steps 3&#x2013;5:</bold> Sliding windows are continuously generated from the incoming logs and passed through an LSTM-based filter to predict anomaly probabilities.</p></list-item>
<list-item>
<p><bold>Step 6:</bold> If the LSTM output exceeds a predefined threshold, the log window is considered suspicious and forwarded to the graph construction module.</p></list-item>
<list-item>
<p><bold>Steps 7&#x2013;10:</bold> The suspicious log is transformed into a pointer-based graph and classified by a GNN. If the result indicates a high-risk anomaly, a predefined response is triggered (e.g., logging, alerting, or blocking).</p></list-item>
</list></p>
<fig id="fig-12">
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_67636-fig-12.tif"/>
</fig>
</sec>
<sec id="s3_2">
<label>3.2</label>
<title>HOOK Log Collection Module</title>
<p>The HOOK module non-intrusively intercepts and logs heap memory operations (e.g., malloc, free) in real time, providing high-quality temporal input for downstream analysis.</p>
<p>To achieve transparent interception, the module leverages the <monospace>LD_PRELOAD</monospace> [<xref ref-type="bibr" rid="ref-31">31</xref>] mechanism to inject logging hooks at the user level. It uses thread-safe logging strategies to preserve ordering, and includes lightweight pointer lifecycle tracking for anomalies such as UAF and Double-Free.</p>
<p>Each operation is recorded in structured fields (e.g., operation type, pointer ID, thread ID, memory size, timestamp), enabling accurate sequence modeling and graph construction.</p>
<p>Overall, the HOOK module is lightweight, stable, and incurs negligible runtime overhead, making it suitable for high-frequency heap monitoring in practical systems.</p>
</sec>
<sec id="s3_3">
<label>3.3</label>
<title>Log Window and LSTM Pre-Filtering Module</title>
<p>To enhance detection recall while minimizing computational overhead, MemHookNet integrates a lightweight temporal pre-filtering mechanism within the log stream processing pipeline. This module utilizes state-preserving LSTM [<xref ref-type="bibr" rid="ref-32">32</xref>,<xref ref-type="bibr" rid="ref-33">33</xref>] networks to efficiently process sliding windows of log data, enabling rapid filtering of potential anomalies from continuous memory operation sequences. The LSTM model has been enhanced to ensure memory retention across different windows, allowing for better temporal context and dependency modeling.</p>
<p>In addition, the model employs a multi-scale sliding window mechanism, simultaneously training models with window sizes of 10, 20, and 30. This multi-scale approach helps capture different patterns of anomalies that may span across different window lengths, improving the robustness of the detection process. The log sequences are segmented into fixed-length operation fragments, with each fragment containing five key fields: operation type (op_type), pointer identifier (ptr_id), thread identifier (tid_id), allocated memory size (size), and the time interval between adjacent operations (time_delta). These fields are discretized and normalized before being input into a multi-class LSTM network.</p>
<p>The LSTM architecture, MulticlassLSTM, includes three embedding layers [<xref ref-type="bibr" rid="ref-34">34</xref>], each encoding operation type, pointer ID, and thread ID, with an embedding dimension of 16. The core of the model consists of a two-layer bidirectional LSTM with 64 units per layer and Dropout [<xref ref-type="bibr" rid="ref-35">35</xref>] (set to 0.3) to prevent overfitting. This design allows the model to capture long-term dependencies and generalize across the various temporal patterns in memory access logs. The output is passed through a fully connected layer and processed by a Softmax function to generate predictions for identifying normal and suspicious behaviors (e.g., UAF, Double-Free, Memory Leak [<xref ref-type="bibr" rid="ref-36">36</xref>]). The training uses a Label Smoothing Cross-Entropy loss function with Early Stopping, evaluated using macro F1-score and accuracy [<xref ref-type="bibr" rid="ref-37">37</xref>] to ensure robustness and generalization.</p>
<p>During inference, the system computes the probability distribution for each log window across the four behavior categories and applies an adjustable confidence threshold (default &#x003D; 0.6). If the prediction probability for any anomaly category in a given window exceeds this threshold, the segment is flagged as suspicious behavior and proceeds to the graph modeling stage. If the threshold is not met, the segment is discarded, conserving computational resources for subsequent processing stages. This design reduces GNN invocation frequency while preserving high recall, offering an efficient front-end filter.</p>
<p><xref ref-type="fig" rid="fig-2">Fig. 2</xref> illustrates the architecture of the Log Window and LSTM Pre-filtering Module, showing how log windows are processed by the LSTM model, followed by threshold-based classification to identify suspicious behavior.</p>
<fig id="fig-2">
<label>Figure 2</label>
<caption>
<title>Log window and LSTM pre-filtering module architecture</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_67636-fig-2.tif"/>
</fig>
</sec>
<sec id="s3_4">
<label>3.4</label>
<title>MemLogGraphBuilder: Graph Construction Module</title>
<p>MemHookNet captures structural dependencies by transforming suspicious logs into memory behavior graphs, built on LSTM-filtered segments. These graphs represent pointer access paths, thread collaboration, and temporal logic, providing structured input for the downstream graph neural network. Each unique pointer identifier (ptr_id) within a sliding window is treated as a node in the graph. Each node is assigned a 14-dimensional feature vector, including: a 6-dimensional one-hot encoding of the operation type, normalized allocation size, thread ID, operation frequency, relative position to the most recent malloc, and time intervals between operations. These features characterize the behavior and context of the pointer object within the current log segment.</p>
<p>For edge construction, the system defines three types of semantically meaningful relationships:
<list list-type="bullet">
<list-item>
<p><bold>Access edges: </bold>Represent multiple accesses to the same pointer, reflecting the usage trajectory during its lifecycle.</p></list-item>
<list-item>
<p><bold>Same-thread edges (same_tid):</bold> Connect consecutive operations within the same thread to preserve intra-thread temporal ordering.</p></list-item>
<list-item>
<p><bold>Temporal sequence edges (time_seq):</bold> Maintain the global chronological order of log entries</p></list-item>
</list></p>
<p>To enhance the graph&#x2019;s learnability, each edge is also annotated with a 6-dimensional edge feature vector, which includes: one-hot encoded edge type, pointer consistency, thread consistency, and normalized time differences. These edge attributes improve the model&#x2019;s ability to perceive operational semantics and relationships.</p>
<p>Finally, the graph samples are exported in a standard JSON triplet format, containing node features (nodes.json), edge relationships (edges.json), and corresponding labels (label.txt). These graph objects can be directly utilized by the graph neural network module for training and inference. Through this module, linear log sequences are effectively transformed into structurally expressive graph representations, laying the foundation for fine-grained classification of complex heap memory behaviors.</p>
</sec>
<sec id="s3_5">
<label>3.5</label>
<title>MemGATClassifier: Graph Neural Network Module</title>
<p>The MemGATClassifier, as the core discriminative module of the MemHookNet framework, is responsible for performing multi-class classification of memory access behaviors that are represented in graph structures. This module takes advantage of the structural modeling capabilities of GNNs and integrates an attention mechanism to capture the operational semantics and thread dependencies between nodes in the graph. This enables accurate classification of four behavior categories: Normal, UAF, Double-Free, and Memory Leak.</p>
<p>To enhance the model&#x2019;s ability to capture structural semantics, MemHookNet adopts the GATv2 [<xref ref-type="bibr" rid="ref-38">38</xref>&#x2013;<xref ref-type="bibr" rid="ref-40">40</xref>] as its backbone architecture. GATv2 differs from traditional GCNs by introducing learnable attention mechanisms during the feature aggregation phase. This allows the model to adaptively identify the most critical adjacent nodes for classification, enhancing its capacity to model complex dependency patterns in pointer behavior graphs. The architecture of the MemGATClassifier is detailed in <xref ref-type="table" rid="table-1">Table 1</xref>, encompassing input feature encoding, graph convolution layers, graph-level pooling, fully connected classifiers, and the design of the loss function. The overall structural workflow is illustrated in <xref ref-type="fig" rid="fig-3">Fig. 3</xref>.</p>
<table-wrap id="table-1">
<label>Table 1</label>
<caption>
<title>MemGATClassifier detection model structure</title>
</caption>
<table>
<colgroup>
<col/>
<col/>
</colgroup>
<thead>
<tr>
<th>Module</th>
<th>Configuration description</th>
</tr>
</thead>
<tbody>
<tr>
<td>Input</td>
<td>Node Features: 14 dimensions (operation &#x002B; statistical context), Edge Features: 6 dimensions (one-hot &#x002B; semantic encoding)</td>
</tr>
<tr>
<td>Network structure</td>
<td>Two-layer GATv2Conv, heads &#x003D; 8, hidden &#x003D; 64, dropout &#x003D; 0.3</td>
</tr>
<tr>
<td>Pooling method</td>
<td>Global Mean Pooling (Graph-level aggregation)</td>
</tr>
<tr>
<td>Regularization</td>
<td>LayerNorm &#x002B; ReLU</td>
</tr>
<tr>
<td>Output layer</td>
<td>Fully connected layer &#x002B; Softmax, outputs probabilities for four behavior categories</td>
</tr>
<tr>
<td>Loss function</td>
<td>FocalLoss (<inline-formula id="ieqn-6"><mml:math id="mml-ieqn-6"><mml:mrow><mml:mi mathvariant="normal">&#x03B3;</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mn>1.5</mml:mn></mml:math></inline-formula>), supports class imbalance sample weighting</td>
</tr>
<tr>
<td>Optimizer</td>
<td>Adam, learning rate &#x003D; 0.001</td>
</tr>
<tr>
<td>Framework</td>
<td>Based on PyTorch Geometric, uses <monospace>convert_to_data_object</monospace> to construct PyG graph objects</td>
</tr>
<tr>
<td>Training strategy</td>
<td>Supports Early Stopping, evaluation metrics: Macro-F1, Recall, AUC</td>
</tr>
</tbody>
</table>
</table-wrap><fig id="fig-3">
<label>Figure 3</label>
<caption>
<title>MemGATClassifier detects the model structure</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_67636-fig-3.tif"/>
</fig>
<p>During the inference process, the model aggregates neighboring features for each node based on attention weights and generates a unified semantic representation through graph-level pooling. It then outputs the probability distribution for each graph sample across the four behavior categories. If the prediction probability for any behavior category exceeds a specified threshold (e.g., UAF category &#x003E; 0.7), the system triggers a series of security response mechanisms, including:
<list list-type="bullet">
<list-item>
<p><bold>Anomaly Log Archiving:</bold> High-risk graph samples and their classification results are recorded locally for subsequent auditing and analysis.</p></list-item>
<list-item>
<p><bold>Program Behavior Blocking:</bold> When protection mode is enabled, the system can automatically interrupt related processes to prevent abnormal heap operations from evolving into actual attacks.</p></list-item>
<list-item>
<p><bold>Security Event Reporting:</bold> Detection results can be integrated into an operations platform, supporting real-time alerts, graphical displays, and behavioral trend analysis.</p></list-item>
</list></p>
<p>By integrating graph structure discrimination with risk response mechanisms, MemGATClassifier not only performs multi-class classification of heap memory behaviors but also supports immediate disposal strategies based on model outputs. This creates a feedback loop from detection to defense, providing solid potential for practical deployment.</p>
<p>To evaluate the adaptability of various GNNs for memory vulnerability detection, we compared mainstream models (see <xref ref-type="table" rid="table-2">Table 2</xref>). Given the sparse nature of log graphs, asymmetric access dependencies, and varying importance of critical nodes, we chose the Graph Attention Network (GAT) for its ability to automatically identify key access nodes, distinguish pointer/thread IDs in different access paths (e.g., malloc vs. free vs. access), and provide a simple structure that is easy to train and deploy. Additionally, GAT&#x2019;s decoupling from the LSTM module offers flexibility in model combinations, enhancing its suitability for this task.</p>
<table-wrap id="table-2">
<label>Table 2</label>
<caption>
<title>Comparison of common GNN models for heap vulnerability detection</title>
</caption>
<table>
<colgroup>
<col align="center"/>
<col align="center" />
<col align="center"/>
</colgroup>
<thead>
<tr>
<th align="center">GNN type</th>
<th align="center" >Suitability for heap vulnerability detection</th>
<th align="center">Reason</th>
</tr>
</thead>
<tbody>
<tr>
<td>GCN</td>
<td><inline-formula id="ieqn-7"><mml:math id="mml-ieqn-7"><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula> Moderate</td>
<td>All neighbors are treated equally, unable to capture &#x201C;key access nodes&#x201D;</td>
</tr>
<tr>
<td>GraphSAGE</td>
<td>Can be used</td>
<td>Supports large graphs but treats neighbors equally</td>
</tr>
<tr>
<td>GGNN</td>
<td><inline-formula id="ieqn-8"><mml:math id="mml-ieqn-8"><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula> Too complex</td>
<td>Involves GRU-based control, difficult to deploy for inference</td>
</tr>
<tr>
<td>GAE/VGAE</td>
<td><inline-formula id="ieqn-9"><mml:math id="mml-ieqn-9"><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula> Not suitable</td>
<td>Unsupervised learning, not suitable for tasks requiring labeled data</td>
</tr>
<tr>
<td>ST-GNN/DynamicGNN</td>
<td><inline-formula id="ieqn-10"><mml:math id="mml-ieqn-10"><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula> Overly complex</td>
<td>Requires sequential data, doesn&#x2019;t support dynamic graph construction</td>
</tr>
<tr>
<td>GAT (Selected)</td>
<td>Extremely suitable</td>
<td>Automatically learns key access nodes, simple structure, and strong expressive power</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>In contrast, traditional GCN treats neighbors equally, while GraphSAGE lacks sufficient expressive power. Gated Graph Neural Network(GGNN) and Spatio-Temporal Graph Neural Network(ST-GNN) have excessively high construction and training costs, and GAE/VGAE are not suitable for supervised classification tasks. Therefore, GAT is the optimal choice, balancing accuracy and engineering feasibility.</p>
<p>To summarize, the MemGATClassifier not only achieves high-accuracy classification of heap memory anomalies but also enables system-level behavior auditing and defense linkage through its highly interpretable attention mechanism. This, when combined with the LSTM module that captures temporal features, forms a robust &#x201C;time-structure&#x201D; dual modeling capability for memory anomaly detection, providing a solid foundation for system deployment and model generalization.</p>
</sec>
</sec>
<sec id="s4">
<label>4</label>
<title>Experimental Design and Implementation</title>
<p>In order to comprehensively evaluate the performance of the proposed MemHookNet framework in multi-class heap memory anomaly detection, this chapter presents a systematic experimental design covering multiple dimensions, including experimental procedures, data construction, model training, comparison schemes, and ablation analysis. The entire experimental process strictly follows the system architecture described in <xref ref-type="sec" rid="s3">Section 3</xref> (see <xref ref-type="fig" rid="fig-1">Fig. 1</xref>), covering four key stages: log collection, sliding window filtering, graph structure construction, and multi-class behavior classification. Each stage is designed to ensure high reproducibility while also considering the feasibility and deployment-friendly aspects of the engineering implementation. This provides a solid foundation for the application of the model in real-world system environments. In this chapter, we will detail the experimental environment configuration, data processing logic, training strategy setup, and the specific implementation details of the comparison experiments.</p>
<sec id="s4_1">
<label>4.1</label>
<title>Experimental Environment Setup</title>
<p>All experiments were conducted in a unified local hardware and software platform environment, with specific configurations shown in <xref ref-type="table" rid="table-3">Table 3</xref>. The system model implementation and training were carried out using the PyTorch and PyTorch Geometric frameworks, and the experiments were deployed on a workstation environment with Graphics Processing Unit (GPU) acceleration to ensure efficient training and inference performance.</p>
<table-wrap id="table-3">
<label>Table 3</label>
<caption>
<title>Experimental platform configuration</title>
</caption>
<table>
<colgroup>
<col/>
<col/>
</colgroup>
<thead>
<tr>
<th>Item</th>
<th>Configuration description</th>
</tr>
</thead>
<tbody>
<tr>
<td>Operating system</td>
<td>Ubuntu 22.04 LTS</td>
</tr>
<tr>
<td>Processor</td>
<td>Intel Core i7-12700H <inline-formula id="ieqn-11"><mml:math id="mml-ieqn-11"><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula> 16 threads</td>
</tr>
<tr>
<td>GPU</td>
<td>NVIDIA RTX 3060 Laptop GPU (6 GB VRAM)</td>
</tr>
<tr>
<td>Memory</td>
<td>32 GB DDR4</td>
</tr>
<tr>
<td>Python version</td>
<td>Python 3.9 (Anaconda environment)</td>
</tr>
<tr>
<td>Key Dependencies</td>
<td>PyTorch 2.1, PyTorch Geometric 2.3, scikit-learn, etc.</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="s4_2">
<label>4.2</label>
<title>Experimental Environment Setup</title>
<p>To facilitate reproducible experimentation and ensure consistency across different processing stages, we designed a standardized logging procedure to structure intercepted memory operations into training-ready sequences. In our experiments, we extracted memory operation logs by executing vulnerable programs from the SARD dataset, using the LD_PRELOAD technique to intercept heap memory operations such as malloc, free, and memcpy during runtime. The resulting structured logs were used as the primary input for training and evaluating the MemHookNet framework.</p>
<p>This interception process is implemented via the LD_PRELOAD &#x002B; dlsym mechanism, which transparently hijacks key memory management functions and monitors heap activity without modifying the original source code. The pseudocode for the memory log collection and structuring process is presented in Algorithm 2, which outlines how each intercepted memory operation is formatted into a consistent structure. Specifically, the system dynamically resolves the address of each target function, extracts the operation type, pointer address, thread ID, allocation size, and timestamp, and encodes this information into a unified log entry. These structured logs serve as the foundational input for the downstream sequence modeling and graph construction modules.</p>
<fig id="fig-13">
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_67636-fig-13.tif"/>
</fig>
<p>To ensure consistency in input formatting across both sequence modeling and graph modeling, each memory operation log entry is formalized as the following quintuple: To ensure consistency in input formatting across both sequence modeling and graph modeling, each memory operation log entry is formalized as the following quintuple. See <xref ref-type="disp-formula" rid="eqn-1">Eq. (1)</xref>:
<disp-formula id="eqn-1"><label>(1)</label><mml:math id="mml-eqn-1" display="block"><mml:msub><mml:mi>L</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo fence="false" stretchy="false">&#x27E8;</mml:mo><mml:mi>p</mml:mi><mml:mi mathvariant="normal">&#x005F;</mml:mi><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mi>p</mml:mi><mml:mi>t</mml:mi><mml:mi>r</mml:mi><mml:mi mathvariant="normal">&#x005F;</mml:mi><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mi mathvariant="normal">&#x005F;</mml:mi><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mi>s</mml:mi><mml:mi>i</mml:mi><mml:mi>z</mml:mi><mml:mi>e</mml:mi><mml:mi mathvariant="normal">&#x005F;</mml:mi><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">&#x0394;</mml:mi><mml:mi>t</mml:mi><mml:mo fence="false" stretchy="false">&#x27E9;</mml:mo></mml:math></disp-formula>where:
<list list-type="bullet">
<list-item>
<p>op_type: Operation type;</p></list-item>
<list-item>
<p>ptr_id: Memory pointer ID (uniquely identified after hashing);</p></list-item>
<list-item>
<p>tid_id: Thread ID;</p></list-item>
<list-item>
<p>size: Memory size of the operation (in bytes);</p></list-item>
<list-item>
<p>time_delta: Time interval from the previous operation.</p></list-item>
</list></p>
<p>The final complete log stream is represented as <inline-formula id="ieqn-14"><mml:math id="mml-ieqn-14"><mml:mrow><mml:mi>L</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>L</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>L</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>L</mml:mi><mml:mi>T</mml:mi></mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mo>.</mml:mo></mml:math></inline-formula></p>
<p>This structured definition provides mathematical consistency to support sliding window segmentation, sequence encoding, and graph modeling.</p>
<sec id="s4_2_1">
<label>4.2.1</label>
<title>Log Collection and Operation</title>
<p>The raw data used in this system is collected by the hook interception module, which performs non-intrusive hijacking of memory management functions via the LD_PRELOAD mechanism (as detailed in <xref ref-type="sec" rid="s3_2">Section 3.2</xref>). To enhance the reproducibility and transparency of the experiments, we publicly provide the complete collection framework, runtime scripts, and test examples. The core directory structure is illustrated in <xref ref-type="fig" rid="fig-4">Fig. 4</xref>.</p>
<fig id="fig-4">
<label>Figure 4</label>
<caption>
<title>File composition of the HOOK-based logging module</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_67636-fig-4.tif"/>
</fig>
<p>During the experiment, test cases are executed by launching the target program with the command: <monospace>LD_PRELOAD&#x003D;./malloc_hook.so./target_program</monospace></p>
<p>which enables automatic recording of runtime memory operations. This process generates a raw log file named <monospace>malloc_log_raw.txt</monospace>. The collected logs cover typical memory usage scenarios, including valid malloc/free operations, as well as abnormal cases such as reuse, UAF, Double-Free, and memory leaks. The <monospace>process_logs.sh</monospace> script is used to parse the raw logs into structured CSV or JSON files, which serve as input for the subsequent sequence modeling and graph construction modules.</p>
</sec>
<sec id="s4_2_2">
<label>4.2.2</label>
<title>Sliding Window Sample Generation</title>
<p>The system uses a sliding window mechanism (window size N &#x003D; 10) to segment the time-ordered logs, generating standardized LSTM input samples. Each sequence sample includes the following five fields: operation type (op_type), pointer ID (ptr_id), thread ID (tid_id), memory size (size), and time difference between adjacent operations (time_delta). After discretization and normalization, these fields are input into the sequence model. The sample labels are generated through rule matching and manual verification, covering four categories of heap memory behaviors: Normal, UAF, Double-Free, and Memory Leak. This process ensures consistency and accuracy in labeling the anomalous samples in the training dataset.</p>
<p>For windows identified as suspicious by the LSTM model, the system uses the custom-developed MemLogGraphBuilder to construct corresponding graph structure samples, capturing the semantic relationships between potential pointer operations. Each graph sample contains the following feature information:
<list list-type="bullet">
<list-item>
<p>Node Features: 14 dimensions, including one-hot encoding of operation type, operation frequency, thread normalization value, memory size statistics, and pointer usage count.</p></list-item>
<list-item>
<p>Edge Features: 6 dimensions, encoding structural semantics such as access order, thread consistency, pointer consistency, and time intervals.</p></list-item>
</list></p>
<p>The final graph samples are output in standard JSON format, consisting of three files: nodes.json, edges.json, and label.txt, which can be directly used as input for the MemGATClassifier.</p>
</sec>
</sec>
<sec id="s4_3">
<label>4.3</label>
<title>Model Training Configuration</title>
<p>This section provides a detailed explanation of the two core models in the MemHookNet system: the LSTM sequence classifier and the GNN graph classifier. It covers their network architectures, training strategies, and loss functions, aiming to demonstrate the design rationale and implementation details of each module in addressing the multi-class heap memory behavior detection task.</p>
<sec id="s4_3_1">
<label>4.3.1</label>
<title>Time-Series Model (LSTM)</title>
<p>The sequence model is used for quick screening and preliminary classification of memory operation sequences within the sliding window. The input consists of a sequence of five fields from each log fragment, where op_type, ptr_id, and tid are mapped to 16-dimensional dense vectors through embedding layers. These embedding vectors are then passed into a two-layer bidirectional LSTM network (hidden size &#x003D; 64), with Dropout (p &#x003D; 0.3) applied to reduce the risk of overfitting. The network ultimately outputs the probability distribution of four types of heap memory behaviors via a fully connected layer &#x002B; Softmax.</p>
<p>The model&#x2019;s loss function uses Label Smoothing CrossEntropy, which includes a smoothing term to increase the model&#x2019;s tolerance for samples near the class boundaries. During training, we use the Early Stopping strategy (patience &#x003D; 5) to prevent overfitting, with a batch size of 32.</p>
<p>To address the issue of class imbalance, where anomalous categories (e.g., UAF and Leak) are much less frequent than normal behaviors, we introduce a class-weighting mechanism during training. Specifically, we set the class weighting factor in the loss function according to the frequency distribution of each class in the training set, enabling the model to focus more on the predictions for minority classes. Additionally, we experimented with a sliding window-based fragment resampling strategy, oversampling UAF and Leak fragments to increase their visibility during training and further enhance the model&#x2019;s ability to recognize low-frequency anomalies.</p>
<p><xref ref-type="disp-formula" rid="eqn-2">Eqs. (2)</xref> and <xref ref-type="disp-formula" rid="eqn-3">(3)</xref> is the forward propagation formula.
<disp-formula id="eqn-2"><label>(2)</label><mml:math id="mml-eqn-2" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:msub><mml:mi>h</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mtext>LSTM</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<disp-formula id="eqn-3"><label>(3)</label><mml:math id="mml-eqn-3" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:mrow><mml:mover><mml:mi>y</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mtext>Softmax</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>W</mml:mi><mml:msub><mml:mi>h</mml:mi><mml:mi>T</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mi>b</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
</sec>
<sec id="s4_3_2">
<label>4.3.2</label>
<title>Graph Neural Network Model (MemGATClassifier)</title>
<p>The graph classification module is responsible for performing fine-grained behavior recognition on the constructed log graphs. To enhance the model&#x2019;s ability to capture complex operational dependencies, we adopt an improved Graph Attention Network, specifically GATv2, and build a two-layer GATv2Conv-based classifier.</p>
<p>The input to this module includes node features (14 dimensions) and edge features (6 dimensions). The edge features are embedded using an edge_encoder, which is then integrated into the attention mechanism. This results in an edge-aware attention propagation strategy that enhances relational modeling during message passing. Each graph convolutional layer is implemented using the GATv2Conv module from the PyTorch Geometric framework. The forward propagation process is as follows: x &#x003D; self.conv1(x, edge_index, edge_emb);x &#x003D; self.conv2(x, edge_index, edge_emb).</p>
<p>The features of the final node are aggregated using global_mean_pool, and the graph-level features are passed into the final layer to predict four behavior categories: Normal, UAF, Double-Free, and Leak:
<disp-formula id="eqn-4"><label>(4)</label><mml:math id="mml-eqn-4" display="block"><mml:mrow><mml:mover><mml:mi>y</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mtext>Softmax</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>W</mml:mi><mml:mrow><mml:mi>f</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:msub><mml:mo>&#x22C5;</mml:mo><mml:msub><mml:mi>H</mml:mi><mml:mrow><mml:mrow><mml:mtext>graph</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mi>b</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></disp-formula></p>
<p>To address class imbalance issues (e.g., UAF/Leak samples), Focal Loss is employed as the loss function, which is formulated as:
<disp-formula id="eqn-5"><label>(5)</label><mml:math id="mml-eqn-5" display="block"><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:mrow><mml:mtext>focal</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mi>&#x03B1;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>p</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mi>&#x03B3;</mml:mi></mml:mrow></mml:msup><mml:mi>log</mml:mi><mml:mo>&#x2061;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>p</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:mspace width="1em" /><mml:mi>&#x03B3;</mml:mi><mml:mo>=</mml:mo><mml:mn>1.5</mml:mn></mml:math></disp-formula></p>
<p>The model is trained using the Adam optimizer (learning rate <inline-formula id="ieqn-15"><mml:math id="mml-ieqn-15"><mml:mi>&#x03B1;</mml:mi></mml:math></inline-formula>), and the evaluation metrics include Accuracy, MacroF1, Recall, and AUC. To further analyze the model&#x2019;s component, we designed a shuffling experiment in <xref ref-type="sec" rid="s5">Section 5</xref> to conduct systematic evaluation and measure the model&#x2019;s overall performance in real-world systems.</p>
</sec>
</sec>
<sec id="s4_4">
<label>4.4</label>
<title>Comparison Scheme Design</title>
<p>To objectively evaluate the performance of MemHookNet for multi-class heap memory anomaly detection, we selected four representative baselines covering time-series, structural, and hybrid modeling paradigms: DeepLog, Logs2Graphs, LogAnomaly, and GLAD-PAW, as illustrated in <xref ref-type="fig" rid="fig-5">Fig. 5</xref>. These models were re-implemented using official code and trained under identical conditions (dataset, hardware, and hyperparameter settings) to ensure fair comparison.</p>

<p><list list-type="bullet">
<list-item>
<p>DeepLog: A classic log sequence prediction model based on LSTM, widely used in general anomaly detection scenarios;</p></list-item>
<list-item>
<p>Logs2Graphs: A method that represents log dependencies via graph construction, using GCN for graph-level classification;</p></list-item>
<list-item>
<p>LogAnomaly: Introduces semantic enhancement and custom template matching strategies, integrating LSTM and graph learning structures;</p></list-item>
<list-item>
<p>GLAD-PAW: Uses GCN to capture local dependency structures, combined with Transformer for long-range context modeling.</p></list-item>
</list></p>
<fig id="fig-5">
<label>Figure 5</label>
<caption>
<title>Comparison of processing flows of different model architectures</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_67636-fig-5.tif"/>
</fig>
<p><xref ref-type="fig" rid="fig-5">Fig. 5</xref> compares their input processing pipelines, model architectures, and output strategies. We observe that MemHookNet uniquely combines temporal filtering and structural modeling, enabling superior detection of complex heap anomalies.</p>
<p>This comparative analysis highlights MemHookNet&#x2019;s advantages in multi-class recognition, real-time response, and adaptability. Its ability to effectively detect Use-After-Free, Double-Free, and Memory Leak anomalies with minimal computational overhead makes it a competitive solution for practical deployment in security-critical environments.</p>
</sec>
<sec id="s4_5">
<label>4.5</label>
<title>Ablation Study Design</title>
<p>To further examine the individual contributions of each core component in the MemHookNet framework, we conducted a series of ablation experiments. These experiments aim to isolate the impact of three key modules&#x2014;LSTM-based sequence filtering, graph construction with attention, and HOOK-based log interception&#x2014;on the overall anomaly detection performance. The study includes four experimental variants and the full model configuration, as detailed in <xref ref-type="table" rid="table-4">Table 4</xref>.</p>
<table-wrap id="table-4">
<label>Table 4</label>
<caption>
<title>Ablation experiment settings for different model variants</title>
</caption>
<table>
<colgroup>
<col align="center"/>
<col align="center"/>
<col align="center"/>
</colgroup>
<thead>
<tr>
<th align="center">Model ID</th>
<th align="center">Name</th>
<th align="center">Description and characteristics</th>
</tr>
</thead>
<tbody>
<tr>
<td>B1</td>
<td>LSTM-only</td>
<td>Uses only the LSTM model to perform multi-class classification on log sequences</td>
</tr>
<tr>
<td>B2</td>
<td>GCN-Graph</td>
<td>Graph classification model based on traditional GCN, without the attention mechanism</td>
</tr>
<tr>
<td>B3</td>
<td>GATv2-noHook</td>
<td>Builds graph samples using the model structure but without enabling the HOOK interception</td>
</tr>
<tr>
<td>Ours</td>
<td>MemHookNet</td>
<td>Enables HOOK &#x002B; LSTM &#x002B; Graph Module using GATv2; complete end-to-end detection framework</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Experimental results demonstrate that each module&#x2014;HOOK, LSTM, and GATv2&#x2014;plays a critical role in achieving high detection accuracy and robustness. The exclusion of any single component leads to significant performance degradation. In contrast, the full MemHookNet framework consistently yields the highest precision and recall, confirming the complementary effect of temporal and structural modeling.</p>
<p>In summary, this section evaluates all key modules within a unified experimental platform. By covering the entire pipeline&#x2014;from log collection and normalization to sequence filtering and graph classification&#x2014;the study ensures both reproducibility and engineering feasibility. The combination of multiple baselines and carefully designed variants establishes a strong foundation for the comparative performance evaluation presented in <xref ref-type="sec" rid="s5">Section 5</xref>.</p>
</sec>
<sec id="s4_6">
<label>4.6</label>
<title>Threats to Validity</title>
<p>While MemHookNet demonstrates promising performance in detecting multi-class heap memory anomalies, several threats to validity should be acknowledged:
<list list-type="bullet">
<list-item>
<p><bold>Generalization across Platforms:</bold> Our implementation was tested on Linux-based environments using LD_PRELOAD for function interception. Portability to other operating systems (e.g., Windows, macOS) or to kernel-level anomalies may require architectural changes.</p></list-item>
<list-item>
<p><bold>Log Fidelity Assumption:</bold> We assume that memory logs are correctly and completely captured during execution. However, in real-world deployment, logging interruptions, thread concurrency, or low-level obfuscation may affect log integrity and downstream accuracy.</p></list-item>
<list-item>
<p><bold>Model Dependence on Thresholds:</bold> The overall detection performance partially depends on empirically set thresholds for both the LSTM filtering stage and GNN classification. Improper tuning in unseen environments may affect precision or recall.</p></list-item>
<list-item>
<p><bold>Real-Time Constraints:</bold> Although MemHookNet is designed for real-time deployment, extremely high-frequency applications or embedded systems with strict latency requirements may require further optimization of the logging and inference pipeline.</p></list-item>
</list></p>
<p>Future work will address these threats by validating the framework on more diverse and large-scale real-world applications, and by exploring adaptive threshold tuning and cross-platform generalization.</p>
</sec>
<sec id="s4_7">
<label>4.7</label>
<title>Algorithmic Complexity Analysis</title>
<p>To evaluate the computational efficiency of MemHookNet, we analyze the time complexity of its key modules.
<list list-type="bullet">
<list-item>
<p><bold>LSTM Pre-Filtering:</bold> Given a sliding window of size <italic>N</italic> and embedding dimension <inline-formula id="ieqn-16"><mml:math id="mml-ieqn-16"><mml:mi>d</mml:mi></mml:math></inline-formula>, the two-layer bidirectional LSTM has a time complexity of <inline-formula id="ieqn-17"><mml:math id="mml-ieqn-17"><mml:mrow><mml:mi>&#x1D4AA;</mml:mi></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>N</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:msup><mml:mi>d</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>. Since only recent logs are filtered in real time, this stage is lightweight.</p></list-item>
<list-item>
<p><bold>Graph Construction:</bold> Let <italic>V</italic> be the number of pointer nodes and <italic>E</italic> be the number of edges. Graph construction computes per-node and per-edge features, with worst-case complexity of <inline-formula id="ieqn-18"><mml:math id="mml-ieqn-18"><mml:mrow><mml:mi>&#x1D4AA;</mml:mi></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> due to potential dense relationships.</p></list-item>
<list-item>
<p><bold>GNN Classification:</bold> The two-layer GATv2 network performs attention-based aggregation with complexity <inline-formula id="ieqn-19"><mml:math id="mml-ieqn-19"><mml:mrow><mml:mi>&#x1D4AA;</mml:mi></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>E</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mi>d</mml:mi><mml:mo>+</mml:mo><mml:mi>V</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:msup><mml:mi>d</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>. Due to early-stage filtering, only a small fraction of windows <inline-formula id="ieqn-20"><mml:math id="mml-ieqn-20"><mml:mo stretchy="false">(</mml:mo><mml:mi>f</mml:mi><mml:mo>&#x226A;</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> are processed by the GNN, significantly reducing total cost.</p></list-item>
</list></p>
<p>To contextualize these results, we compare MemHookNet&#x2019;s complexity with representative baselines in <xref ref-type="table" rid="table-5">Table 5</xref>.</p>
<table-wrap id="table-5">
<label>Table 5</label>
<caption>
<title>Algorithmic time complexity comparison of detection methods. All methods are evaluated on a single log window. <italic>N</italic>: log length,<italic>V</italic>: number of nodes, <italic>E</italic>: number of edges, <inline-formula id="ieqn-21"><mml:math id="mml-ieqn-21"><mml:mi>d</mml:mi></mml:math></inline-formula>: hidden dimension, <inline-formula id="ieqn-22"><mml:math id="mml-ieqn-22"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mtext>Trans</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula>: Transformer cost, <inline-formula id="ieqn-23"><mml:math id="mml-ieqn-23"><mml:mi>f</mml:mi></mml:math></inline-formula>: suspicious log ratio</title>
</caption>
<table>
<colgroup>
<col/>
<col/>
<col/>
</colgroup>
<thead>
<tr>
<th>Model</th>
<th>Key component</th>
<th>Time complexity</th>
</tr>
</thead>
<tbody>
<tr>
<td>DeepLog</td>
<td>LSTM</td>
<td><inline-formula id="ieqn-24"><mml:math id="mml-ieqn-24"><mml:mrow><mml:mi>&#x1D4AA;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>N</mml:mi><mml:msup><mml:mi>d</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula></td>
</tr>
<tr>
<td>Logs2Graphs</td>
<td>GCN &#x002B; Graph Build</td>
<td><inline-formula id="ieqn-25"><mml:math id="mml-ieqn-25"><mml:mrow><mml:mi>&#x1D4AA;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:mi>V</mml:mi><mml:mi>d</mml:mi><mml:mo>+</mml:mo><mml:mi>E</mml:mi><mml:mi>d</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula></td>
</tr>
<tr>
<td>GLAD-PAW</td>
<td>GCN &#x002B; Transformer</td>
<td><inline-formula id="ieqn-26"><mml:math id="mml-ieqn-26"><mml:mrow><mml:mi>&#x1D4AA;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>V</mml:mi><mml:mi>d</mml:mi><mml:mo>+</mml:mo><mml:mi>E</mml:mi><mml:mi>d</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mtext>Trans</mml:mtext></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula></td>
</tr>
<tr>
<td>MemHookNet</td>
<td>LSTM &#x002B; GATv2</td>
<td><inline-formula id="ieqn-27"><mml:math id="mml-ieqn-27"><mml:mrow><mml:mi>&#x1D4AA;</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>N</mml:mi><mml:msup><mml:mi>d</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:mi>f</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>V</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:mi>E</mml:mi><mml:mi>d</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula></td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn id="table-5fn1" fn-type="other">
<p><italic>Note: Complexity reflects the per-window processing cost. <inline-formula id="ieqn-28"><mml:math id="mml-ieqn-28"><mml:mi>f</mml:mi><mml:mo>&#x226A;</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula> indicates early filtering reduces GNN usage frequency</italic>.</p>
</fn>
</table-wrap-foot>
</table-wrap>
<p>Compared with baselines like DeepLog and Logs2Graphs, MemHookNet achieves a balance between accuracy and efficiency by filtering low-risk data early and applying graph-based analysis only when necessary. This makes it suitable for real-time deployment.</p>
</sec>
</sec>
<sec id="s5">
<label>5</label>
<title>Experimental Results and Analysis</title>
<p>This chapter provides a comprehensive and systematic analysis of the MemHookNet framework from four dimensions: detection performance, comparative experiments, ablation studies, and efficiency evaluation.</p>
<sec id="s5_1">
<label>5.1</label>
<title>Detection Performance Evaluation</title>
<p>We evaluate the detection performance of MemHookNet and compare it with four representative baselines: DeepLog, LogAnomaly, Logs2Graphs, and GLAD-PAW. These methods differ in their modeling strategies, ranging from sequence learning to graph-based classification.</p>
<p>As shown in <xref ref-type="table" rid="table-6">Table 6</xref>, MemHookNet achieves the best performance across all metrics, including 85.5% precision, 82.2% accuracy, 81.5% recall, 81.7% F1-score, and 94.7% AUC, with the lowest inference latency (15 ms). These results validate the model&#x2019;s practical effectiveness and stability in anomaly detection.</p>
<table-wrap id="table-6">
<label>Table 6</label>
<caption>
<title>Quantitative performance metrics of detection methods</title>
</caption>
<table>
<colgroup>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<thead>
<tr>
<th>Method name</th>
<th>Precision <bold>(%)</bold></th>
<th>Accuracy <bold>(%)</bold></th>
<th>F1 <bold>(%)</bold></th>
<th>AUC <bold>(%)</bold></th>
<th>Recall <bold>(%)</bold></th>
<th>ET (ms)</th>
</tr>
</thead>
<tbody>
<tr>
<td>DeepLog</td>
<td>70.7</td>
<td>70.5</td>
<td>71.5</td>
<td>80.2</td>
<td>68.0</td>
<td>50</td>
</tr>
<tr>
<td>LogAnomaly</td>
<td>84.1</td>
<td>80.9</td>
<td>76.8</td>
<td>84.2</td>
<td>78.3</td>
<td>100</td>
</tr>
<tr>
<td>Logs2Graphs</td>
<td>48.2</td>
<td>55.6</td>
<td>35.4</td>
<td>70.2</td>
<td>52.3</td>
<td>200</td>
</tr>
<tr>
<td>GLAD-PAW</td>
<td>85.1</td>
<td>81.2</td>
<td>76.0</td>
<td>87.3</td>
<td>83.0</td>
<td>120</td>
</tr>
<tr>
<td><bold>MemHookNet</bold></td>
<td><bold>85.5</bold></td>
<td><bold>82.2</bold></td>
<td><bold>81.7</bold></td>
<td><bold>94.7</bold></td>
<td><bold>81.5</bold></td>
<td><bold>15</bold></td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="s5_2">
<label>5.2</label>
<title>Comparison Experiment Analysis</title>
<p>To further contextualize these findings, we conduct comparative experiments under identical datasets and training conditions. The selected baselines span LSTM-based sequence models, template-based log analyzers, and graph neural networks. <xref ref-type="table" rid="table-6">Table 6</xref> presents the quantitative performance metrics, while <xref ref-type="table" rid="table-7">Table 7</xref> summarizes the functional capabilities of each method in terms of multi-class support, online processing, and deployment suitability.</p>
<table-wrap id="table-7">
<label>Table 7</label>
<caption>
<title>Functional comparison of mainstream detection methods</title>
</caption>
<table>
<colgroup>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
</colgroup>
<thead>
<tr>
<th align="center">Method name</th>
<th align="center">Model type</th>
<th align="center">Multi-class support</th>
<th align="center">Online processing</th>
<th align="center">Remarks</th>
</tr>
</thead>
<tbody>
<tr>
<td>DeepLog</td>
<td>LSTM Sequence</td>
<td><inline-formula id="ieqn-29"><mml:math id="mml-ieqn-29"><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-30"><mml:math id="mml-ieqn-30"><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula></td>
<td>Suitable for general anomaly detection in logs</td>
</tr>
<tr>
<td>LogAnomaly</td>
<td>LSTM&#x002B;Template</td>
<td><inline-formula id="ieqn-31"><mml:math id="mml-ieqn-31"><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-32"><mml:math id="mml-ieqn-32"><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula></td>
<td>Enhances pattern and template matching ability</td>
</tr>
<tr>
<td>Logs2Graphs</td>
<td>OCDiGCN Graph</td>
<td><inline-formula id="ieqn-33"><mml:math id="mml-ieqn-33"><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-34"><mml:math id="mml-ieqn-34"><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula></td>
<td>No flexible model and class adaptability, poor at classification</td>
</tr>
<tr>
<td>GLAD-PAW</td>
<td>GAT Graph</td>
<td><inline-formula id="ieqn-35"><mml:math id="mml-ieqn-35"><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-36"><mml:math id="mml-ieqn-36"><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula></td>
<td>Focuses on performance, but not secure for non-safe logs</td>
</tr>
<tr>
<td>MemHookNet</td>
<td>LSTM&#x002B;GATv2</td>
<td><inline-formula id="ieqn-37"><mml:math id="mml-ieqn-37"><mml:mi>&#x2713;</mml:mi></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-38"><mml:math id="mml-ieqn-38"><mml:mi>&#x2713;</mml:mi></mml:math></inline-formula></td>
<td>Comprehensive framework for multi-class anomaly detection in logs</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Unlike binary classifiers such as DeepLog and Logs2Graphs, which only distinguish between normal and anomalous behavior, MemHookNet supports real-time multi-class detection. It enables fine-grained classification of UAF, Double-Free, and Memory Leak anomalies. This design advantage contributes to its superior performance in detailed anomaly recognition, as shown in <xref ref-type="table" rid="table-6">Tables 6</xref> and <xref ref-type="table" rid="table-7">7</xref>.</p>

<p>According to the <xref ref-type="table" rid="table-6">Tables 6</xref>, <xref ref-type="table" rid="table-7">7</xref> and <xref ref-type="fig" rid="fig-6">Fig. 6</xref>, MemHookNet significantly outperforms existing baselines in both detection accuracy and inference efficiency, achieving a 47.9% improvement in accuracy and a 92.5% reduction in latency compared to Logs2Graphs. These gains highlight the benefit of combining HOOK-based runtime logging with temporal&#x2013;structural modeling.</p>
<fig id="fig-6">
<label>Figure 6</label>
<caption>
<title>Comparison of detection performance with mainstream methods</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_67636-fig-6.tif"/>
</fig>
<p>Even when compared to strong models like GLAD-PAW and DeepLog, MemHookNet delivers higher classification accuracy with substantially lower computational cost. As shown in <xref ref-type="fig" rid="fig-7">Fig. 7</xref>, it converges faster and reaches lower final loss values, demonstrating more stable and efficient learning. It also consistently maintains the highest macro-F1 scores throughout training, especially in early-stage groups, validating its ability to capture representative patterns from runtime memory logs. In contrast, Logs2Graphs struggles with convergence, while DeepLog and LogAnomaly exhibit slower learning and weaker generalization.</p>
<fig id="fig-7">
<label>Figure 7</label>
<caption>
<title>Performance comparison of different detection models in terms of training loss and Macro-F1 across 10 training groups. As shown in <bold>(a)</bold>, MemHookNet achieves the fastest convergence rate and lowest final loss among all methods, demonstrating stable and efficient learning behavior. <bold>(b)</bold> shows that MemHookNet consistently maintains the highest Macro-F1 score across all training stages, especially in early groups, validating its strong multi-class anomaly detection capability</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_67636-fig-7.tif"/>
</fig>
<p>In summary, MemHookNet not only achieves high detection precision but also supports real-time multi-class anomaly detection with minimal overhead, making it a compelling solution for practical deployment in dynamic memory security scenarios.</p>
</sec>
<sec id="s5_3">
<label>5.3</label>
<title>Ablation Experiment Analysis</title>
<p>To evaluate the individual contributions of the modules (HOOK, LSTM, GNN) to the final performance, we designed three ablation experiments, each removing one of the modules to observe the performance changes. The experimental configurations are shown in <xref ref-type="table" rid="table-8">Table 8</xref>:</p>

<p>As shown in the <xref ref-type="table" rid="table-8">Table 8</xref> and <xref ref-type="fig" rid="fig-8">Fig. 8</xref>, MemHookNet outperforms the other comparison models on all key performance indicators (Accuracy, Precision, Recall, F1-Score), demonstrating its clear overall advantage. Notably, MemHookNet shows significant improvements in Precision and F1 score. Specifically, MemHookNet improves over:</p>

<p><list list-type="bullet">
<list-item>
<p>GATv2-noHook(B3) by 31.3% (85.5 <inline-formula id="ieqn-39"><mml:math id="mml-ieqn-39"><mml:mo stretchy="false">&#x2192;</mml:mo></mml:math></inline-formula> 54.2) in Precision and 35.5% (85.7 <inline-formula id="ieqn-40"><mml:math id="mml-ieqn-40"><mml:mo stretchy="false">&#x2192;</mml:mo></mml:math></inline-formula> 50.2) in F1 score;</p></list-item>
<list-item>
<p>GCN-Graph(B2) by 70.3% (85.5 <inline-formula id="ieqn-41"><mml:math id="mml-ieqn-41"><mml:mo stretchy="false">&#x2192;</mml:mo></mml:math></inline-formula> 15.2) in Precision and 67.4% (85.7 <inline-formula id="ieqn-42"><mml:math id="mml-ieqn-42"><mml:mo stretchy="false">&#x2192;</mml:mo></mml:math></inline-formula> 18.3) in F1 score;</p></list-item>
<list-item>
<p>Even compared to the relatively higher baseline model, LSTM-only(B1), MemHookNet(Ours) improves the F1 score by 2.6% (85.7 <inline-formula id="ieqn-43"><mml:math id="mml-ieqn-43"><mml:mo stretchy="false">&#x2192;</mml:mo></mml:math></inline-formula> 83.1), while also demonstrating stronger structural modeling capability.</p></list-item>
</list></p>
<table-wrap id="table-8">
<label>Table 8</label>
<caption>
<title>Ablation analysis of MemHookNet architecture</title>
</caption>
<table>
<colgroup>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<thead>
<tr>
<th>Model ID</th>
<th>Precision <bold>(%)</bold></th>
<th>Recall <bold>(%)</bold></th>
<th>F1-Score <bold>(%)</bold></th>
<th>AUC-ROC <bold>(%)</bold></th>
<th>MCC</th>
<th>ET (ms)</th>
</tr>
</thead>
<tbody>
<tr>
<td>B1</td>
<td>84.3</td>
<td>80.0</td>
<td>83.1</td>
<td>89.2</td>
<td>0.67</td>
<td>20</td>
</tr>
<tr>
<td>B2</td>
<td>45.2</td>
<td>60.4</td>
<td>50.3</td>
<td>70.6</td>
<td>0.22</td>
<td>30</td>
</tr>
<tr>
<td>B3</td>
<td>58.2</td>
<td>61.1</td>
<td>60.2</td>
<td>76.1</td>
<td>0.41</td>
<td>35</td>
</tr>
<tr>
<td>Ours</td>
<td><bold>85.5</bold></td>
<td><bold>81.5</bold></td>
<td><bold>85.7</bold></td>
<td><bold>94.7</bold></td>
<td><bold>0.72</bold></td>
<td><bold>15</bold></td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="fig-8">
<label>Figure 8</label>
<caption>
<title>Ablation analysis of MemHookNet architecture</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_67636-fig-8.tif"/>
</fig>
<p>This result validates the effectiveness and advancement of the HOOK &#x002B; LSTM &#x002B; GNN hybrid architecture in multi-class recognition, structural modeling, and online processing tasks. In addition, a complexity analysis in <xref ref-type="sec" rid="s4_7">Section 4.7</xref> demonstrates that MemHookNet achieves a favorable trade-off between accuracy and efficiency, making it suitable for real-time deployment in practical systems.</p>
</sec>
<sec id="s5_4">
<label>5.4</label>
<title>Efficiency and Subsystem Performance Evaluation</title>
<p>To assess the practical efficiency of MemHookNet in real deployment scenarios, we evaluate both subsystem-level runtime latency and system-wide capability across multiple performance dimensions.</p>
<p>We first measure the average execution latency of each key module in the inference pipeline, including memory operation logging, LSTM-based filtering, graph construction, and GNN-based classification. The detailed latency breakdown is shown in <xref ref-type="table" rid="table-9">Table 9</xref>.</p>
<table-wrap id="table-9">
<label>Table 9</label>
<caption>
<title>Average processing time for each stage of the system (Unit: Milliseconds)</title>
</caption>
<table>
<colgroup>
<col/>
<col/>
</colgroup>
<thead>
<tr>
<th>Module</th>
<th>Average processing time (ms)</th>
</tr>
</thead>
<tbody>
<tr>
<td>Log collection (HOOK)</td>
<td>0.02</td>
</tr>
<tr>
<td>LSTM inference</td>
<td>1.85</td>
</tr>
<tr>
<td>Graph construction (MemLogGraph)</td>
<td>4.17</td>
</tr>
<tr>
<td>GNN inference</td>
<td>5.93</td>
</tr>
<tr>
<td>Overall</td>
<td><inline-formula id="ieqn-44"><mml:math id="mml-ieqn-44"><mml:mo>&#x2248;</mml:mo></mml:math></inline-formula>12.0</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>These results demonstrate that MemHookNet achieves efficient online processing with an average end-to-end inference latency of approximately 12 ms per log fragment, which supports sub-second responsiveness for heap anomaly monitoring. This performance makes the system well-suited for high-frequency memory event surveillance in embedded or cloud-based environments.</p>
<p>To further contextualize the runtime efficiency and deployment suitability of MemHookNet, we conducted a high-level comparison against mainstream static, dynamic, and hybrid detection frameworks. As shown in <xref ref-type="fig" rid="fig-9">Fig. 9</xref> and <xref ref-type="table" rid="table-10">Table 10</xref>, we evaluate five core dimensions that reflect practical deployment needs: Detection Granularity, Multi-class Support, Real-time Capability, Deployment Overhead, Extensibility.</p>
<fig id="fig-9">
<label>Figure 9</label>
<caption>
<title>Comparison of memory vulnerability detection approaches</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_67636-fig-9.tif"/>
</fig><table-wrap id="table-10">
<label>Table 10</label>
<caption>
<title>Comparison of memory anomaly detection methods</title>
</caption>
<table>
<colgroup>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
</colgroup>
<thead>
<tr>
<th align="center">Method category</th>
<th align="center">Runtime execution</th>
<th align="center">Multi- threading support</th>
<th align="center">Performance overhead</th>
<th align="center">Temporal dependency modeling</th>
<th align="center">Dynamic feature extraction</th>
<th align="center">Real-time capability</th>
<th align="center">Automatic sample generation</th>
</tr>
</thead>
<tbody>
<tr>
<td>Static analysis</td>
<td><inline-formula id="ieqn-45"><mml:math id="mml-ieqn-45"><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-46"><mml:math id="mml-ieqn-46"><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-47"><mml:math id="mml-ieqn-47"><mml:mi>&#x2713;</mml:mi></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-48"><mml:math id="mml-ieqn-48"><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-49"><mml:math id="mml-ieqn-49"><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-50"><mml:math id="mml-ieqn-50"><mml:mi>&#x2713;</mml:mi></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-51"><mml:math id="mml-ieqn-51"><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula></td>
</tr>
<tr>
<td>Dynamic analysis</td>
<td><inline-formula id="ieqn-52"><mml:math id="mml-ieqn-52"><mml:mi>&#x2713;</mml:mi></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-53"><mml:math id="mml-ieqn-53"><mml:mi>&#x2713;</mml:mi></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-54"><mml:math id="mml-ieqn-54"><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-55"><mml:math id="mml-ieqn-55"><mml:mi>&#x2713;</mml:mi></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-56"><mml:math id="mml-ieqn-56"><mml:mi>&#x2713;</mml:mi></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-57"><mml:math id="mml-ieqn-57"><mml:mi>&#x2713;</mml:mi></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-58"><mml:math id="mml-ieqn-58"><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula></td>
</tr>
<tr>
<td>Hybrid analysis</td>
<td><inline-formula id="ieqn-59"><mml:math id="mml-ieqn-59"><mml:mi>&#x2713;</mml:mi></mml:math></inline-formula></td>
<td>(with static)</td>
<td>(partial support)</td>
<td><inline-formula id="ieqn-60"><mml:math id="mml-ieqn-60"><mml:mi>&#x2713;</mml:mi></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-61"><mml:math id="mml-ieqn-61"><mml:mi>&#x2713;</mml:mi></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-62"><mml:math id="mml-ieqn-62"><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-63"><mml:math id="mml-ieqn-63"><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula></td>
</tr>
<tr>
<td>MemHookNet</td>
<td><inline-formula id="ieqn-64"><mml:math id="mml-ieqn-64"><mml:mi>&#x2713;</mml:mi></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-65"><mml:math id="mml-ieqn-65"><mml:mi>&#x2713;</mml:mi></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-66"><mml:math id="mml-ieqn-66"><mml:mi>&#x2713;</mml:mi></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-67"><mml:math id="mml-ieqn-67"><mml:mi>&#x2713;</mml:mi></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-68"><mml:math id="mml-ieqn-68"><mml:mi>&#x2713;</mml:mi></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-69"><mml:math id="mml-ieqn-69"><mml:mi>&#x2713;</mml:mi></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-70"><mml:math id="mml-ieqn-70"><mml:mi>&#x2713;</mml:mi></mml:math></inline-formula></td>
</tr>
</tbody>
</table>
</table-wrap>
<p>From the radar chart, we observe that MemHookNet consistently outperforms other methods across all dimensions: Compared to static analysis tools (e.g., Cppcheck), MemHookNet supports runtime and semantic modeling while maintaining low deployment cost. Compared to dynamic analysis frameworks (e.g., Valgrind, ASan), it dramatically reduces runtime latency (seconds vs. milliseconds). Compared to hybrid tools (e.g., Angr, Driller), MemHookNet avoids symbolic execution bottlenecks and enables end-to-end online processing.</p>
<p>The combined analysis confirms that MemHookNet strikes a highly favorable balance between detection capability and real-world usability, enabling real-time, fine-grained, and scalable heap anomaly detection that outperforms traditional tools in both responsiveness and deployment flexibility.</p>
</sec>
<sec id="s5_5">
<label>5.5</label>
<title>Robustness and Class-Level Analysis</title>
<p>To assess the robustness of MemHookNet under varying runtime conditions, we conducted a series of experiments simulating real-world variations in data noise, anomaly frequency, and thread-level concurrency. Specifically, we evaluated three robustness scenarios: Noise Injection: Random non-anomalous log entries were inserted into normal and abnormal sequences to simulate log noise or benign interference. We tested with noise rates of 0%, 10%, and 20%. Anomaly Rate Variation: The proportion of anomalous log windows was varied across 1%, 5%, 10%, 20% to assess the model&#x2019;s sensitivity under class imbalance. Thread Mixing: Memory operations from multiple threads were interleaved and randomly ordered to test the temporal resilience of the LSTM and GAT modules.</p>
<p><xref ref-type="fig" rid="fig-10">Fig. 10</xref> shows the accuracy degradation across scenarios. MemHookNet demonstrates strong robustness in all settings, with less than 3.5% performance drop under 20% noise, and less than 2% reduction under severe class imbalance. This confirms the model&#x2019;s ability to retain high detection fidelity even in noisy or skewed environments, which are common in production systems.</p>
<fig id="fig-10">
<label>Figure 10</label>
<caption>
<title>Accuray/F1 vs. noise rate</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_67636-fig-10.tif"/>
</fig>
<p>While MemHookNet is designed to classify memory behaviors into four categories&#x2014;Normal, UAF, Double-Free, and Memory Leak&#x2014;the boundaries between these classes can sometimes be subtle. To further understand classification behavior, we conducted a confusion matrix analysis on the validation set, along with per-class performance breakdown.</p>
<p><xref ref-type="fig" rid="fig-11">Fig. 11</xref> shows the confusion matrix, highlighting that most misclassifications occur between UAF and Double-Free, due to their similar deallocation patterns. Memory Leaks are the most separable class, with high precision and minimal confusion.</p>
<fig id="fig-11">
<label>Figure 11</label>
<caption>
<title>Confusion matrix for MemHookNet</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_67636-fig-11.tif"/>
</fig>
<p>To better understand how MemHookNet performs across different anomaly categories, we provide a class-wise breakdown in <xref ref-type="table" rid="table-11">Table 11</xref> and <xref ref-type="fig" rid="fig-10">Fig. 10</xref>. The model achieves the highest F1-score for Use-After-Free (0.88), followed by Memory Leak (0.79) and Double-Free (0.78), showing balanced performance across categories. Double-Free detection is slightly less accurate due to overlap with UAF behaviors. In contrast, Memory Leaks are the most separable, with minimal confusion. These results validate the model&#x2019;s robustness in handling diverse heap anomaly types.</p>
<table-wrap id="table-11">
<label>Table 11</label>
<caption>
<title>Confusion matrix analysis</title>
</caption>
<table>
<colgroup>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<thead>
<tr>
<th>Class</th>
<th>Precision</th>
<th>Recall</th>
<th>F1-Score</th>
</tr>
</thead>
<tbody>
<tr>
<td>Normal</td>
<td>0.84</td>
<td>0.86</td>
<td>0.85</td>
</tr>
<tr>
<td>UAF</td>
<td>0.88</td>
<td>0.87</td>
<td>0.88</td>
</tr>
<tr>
<td>Double-free</td>
<td>0.79</td>
<td>0.77</td>
<td>0.78</td>
</tr>
<tr>
<td>Memory leak</td>
<td>0.80</td>
<td>0.78</td>
<td>0.79</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>These results confirm that MemHookNet maintains strong discriminative capability across categories, particularly in distinguishing memory leaks. Additional feature tuning and graph relation encoding may further improve separation between UAF and Double-Free instances.</p>
</sec>
</sec>
<sec id="s6">
<label>6</label>
<title>Conclusion and Future Work</title>
<p>This paper presents MemHookNet, a novel framework for real-time multi-class heap memory anomaly detection. It features a dynamic log interception mechanism that captures and structures memory operations in real-time using the LD_PRELOAD-based HOOK modules. The system combines time-series analysis with a sliding window mechanism and LSTM-based sequence filtering, improving detection efficiency and system responsiveness. Additionally, MemHookNet leverages a structural-aware graph neural network, using MemLogGraphBuilder for semantic graph construction and GATv2 for multi-class classification. Experimental results show that MemHookNet outperforms existing methods in detecting various heap memory anomalies, including UAF, Double-Free, and Memory Leaks.</p>
<p>Despite its strong performance, MemHookNet has some limitations. It currently relies on the LD_PRELOAD technique, which is specific to Linux. Future work will explore cross-platform compatibility using methods like DLL hooking or dynamic API interception. Expanding the detection scope to include other memory vulnerabilities, such as Heap Overflow and Uninitialized Read, would enhance its versatility. Further adaptability could be achieved by incorporating data augmentation, online learning mechanisms, or adversarial sample generation. Lastly, improving model interpretability through attention weight heatmaps and node contribution analysis would support debugging and enhance transparency. Future work will also focus on enhancing platform compatibility, broadening the range of detectable vulnerabilities, and improving adaptability and interpretability.</p>
</sec>
</body>
<back>
<ack>
<p>First and foremost, I would like to express my heartfelt gratitude to my supervisor, Professor Yan Zhuang, for his invaluable guidance and support throughout my studies and research. His insightful advice and encouragement in academic exploration, paper writing, and critical thinking have been a constant source of inspiration and motivation for me to improve and grow. I am also deeply grateful to the Zhengzhou University Infrastructure Laboratory for providing essential resources and experimental conditions that laid a solid foundation for the successful completion of my research. Lastly, I would like to extend my thanks to my classmates, friends, and family who have supported and encouraged me during this period. Your unwavering support has been instrumental in enabling me to stay focused on my academic pursuits and persevere through challenges</p>
</ack>
<sec>
<title>Funding Statement</title>
<p>The work was supported by Open Foundation of Key Laboratory of Cyberspace Security, Ministry of Education of China (No. KLCS20240211).</p>
</sec>
<sec>
<title>Author Contributions</title>
<p>The authors confirm contribution to the paper as follows: Conceptualization, Siyi Wang and Zhizhuang Zhou; methodology, Siyi Wang; software, Siyi Wang; validation, Siyi Wang, Menglan Li and Xinhao Wang; formal analysis, Siyi Wang; investigation, Siyi Wang; resources, Siyi Wang; data curation, Siyi Wang; writing&#x2014;original draft preparation, Siyi Wang; writing&#x2014;review and editing, Siyi Wang and Yan Zhuang; visualization, Menglan Li; supervision, Siyi Wang, Zhizhuang Zhou and Yan Zhuang; project administration, Siyi Wang, Xinhao Wang and Menglan Li; funding acquisition, Yan Zhuang. All authors reviewed the results and approved the final version of the manuscript.</p>
</sec>
<sec sec-type="data-availability">
<title>Availability of Data and Materials</title>
<p>Data available on request from the authors.</p>
</sec>
<sec>
<title>Ethics Approval</title>
<p>This study did not involve human or animal subjects.</p>
</sec>
<sec sec-type="COI-statement">
<title>Conflicts of Interest</title>
<p>The authors declare no conflicts of interest to report regarding the present study.</p>
</sec>
<ref-list content-type="authoryear">
<title>References</title>
<ref id="ref-1"><label>[1]</label><mixed-citation publication-type="other"><person-group person-group-type="author"><collab>Mitre</collab></person-group>. <article-title>Stubborn Weaknesses in the CWE Top 25 [Internet]</article-title>. <comment>2024 [cited 2024 Jan 1]</comment>. Available from: <ext-link ext-link-type="uri" xlink:href="https://cwe.mitre.org/top25/archive/2023/2023_stubborn_weaknesses.html">https://cwe.mitre.org/top25/archive/2023/2023_stubborn_weaknesses.html</ext-link>.</mixed-citation></ref>
<ref id="ref-2"><label>[2]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Yan</surname> <given-names>H</given-names></string-name>, <string-name><surname>Sui</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Chen</surname> <given-names>S</given-names></string-name>, <string-name><surname>Xue</surname> <given-names>J</given-names></string-name></person-group>. <article-title>Spatio-temporal context reduction: a pointer-analysis-based static approach for detecting use-after-free vulnerabilities</article-title>. In: <conf-name>Proceedings of the 40th International Conference on Software Engineering; 2018 May 27&#x2013;Jun 3</conf-name>; <publisher-loc>Gothenburg, Sweden</publisher-loc>. p. <fpage>327</fpage>&#x2013;<lpage>37</lpage>.</mixed-citation></ref>
<ref id="ref-3"><label>[3]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Chen</surname> <given-names>J</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>C</given-names></string-name>, <string-name><surname>Cai</surname> <given-names>S</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>L</given-names></string-name>, <string-name><surname>Ma</surname> <given-names>L</given-names></string-name></person-group>. <article-title>A memory-related vulnerability detection approach based on vulnerability model with petri net</article-title>. <source>J Log Algebr Methods Program</source>. <year>2023</year>;<volume>132</volume>(<issue>3</issue>):<fpage>100859</fpage>. doi:<pub-id pub-id-type="doi">10.1016/j.jlamp.2023.100859</pub-id>.</mixed-citation></ref>
<ref id="ref-4"><label>[4]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Murali</surname> <given-names>A</given-names></string-name>, <string-name><surname>Alfadel</surname> <given-names>M</given-names></string-name>, <string-name><surname>Nagappan</surname> <given-names>M</given-names></string-name>, <string-name><surname>Xu</surname> <given-names>M</given-names></string-name>, <string-name><surname>Sun</surname> <given-names>C</given-names></string-name></person-group>. <article-title>AddressWatcher: sanitizerbased localization of memory leak fixes</article-title>. <source>IEEE Trans Softw Eng</source>. <year>2024</year>;<volume>50</volume>(<issue>9</issue>):<fpage>2398</fpage>&#x2013;<lpage>411</lpage>. doi:<pub-id pub-id-type="doi">10.1109/tse.2024.3438119</pub-id>.</mixed-citation></ref>
<ref id="ref-5"><label>[5]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Hao</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>H</given-names></string-name>, <string-name><surname>Li</surname> <given-names>G</given-names></string-name>, <string-name><surname>Du</surname> <given-names>X</given-names></string-name>, <string-name><surname>Qian</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Sani</surname> <given-names>AA</given-names></string-name></person-group>. <article-title>Demystifying the dependency challenge in kernel fuzzing</article-title>. In: <conf-name>Proceedings of the 44th International Conference on Software Engineering; 2022 May 25&#x2013;27</conf-name>; <publisher-loc>Pittsburgh, PA, USA</publisher-loc>. p. <fpage>659</fpage>&#x2013;<lpage>71</lpage>.</mixed-citation></ref>
<ref id="ref-6"><label>[6]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><surname>W&#x00F6;gerer</surname> <given-names>W</given-names></string-name></person-group>. <source>A survey of static program analysis techniques. Tech Rep</source>. <publisher-loc>Vienna, Austria</publisher-loc>: <publisher-name>Technische Universit&#x00E4;t Wien</publisher-name>; <year>2005</year>.</mixed-citation></ref>
<ref id="ref-7"><label>[7]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Gui</surname> <given-names>B</given-names></string-name>, <string-name><surname>Song</surname> <given-names>W</given-names></string-name>, <string-name><surname>Huang</surname> <given-names>J</given-names></string-name></person-group>. <article-title>UAFSan: an object-identifier-based dynamic approach for detecting use-after-free vulnerabilities</article-title>. In: <conf-name>Proceedings of the 30th ACM SIGSOFT International Symposium on Software Testing and Analysis; 2021 Jul 11&#x2013;17</conf-name>; <publisher-name>Online. New York, NY, USA</publisher-name>: <publisher-name>Association for Computing Machinery</publisher-name>; <year>2021</year>. p. <fpage>309</fpage>&#x2013;<lpage>21</lpage>.</mixed-citation></ref>
<ref id="ref-8"><label>[8]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>He</surname> <given-names>D</given-names></string-name>, <string-name><surname>Gu</surname> <given-names>H</given-names></string-name>, <string-name><surname>Li</surname> <given-names>T</given-names></string-name>, <string-name><surname>Du</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>X</given-names></string-name>, <string-name><surname>Zhu</surname> <given-names>S</given-names></string-name>, <etal>et al</etal></person-group>. <article-title>Toward hybrid static-dynamic detection of vulnerabilities in IoT firmware</article-title>. <source>IEEE Netw</source>. <year>2020</year>;<volume>35</volume>(<issue>2</issue>):<fpage>202</fpage>&#x2013;<lpage>7</lpage>. doi:<pub-id pub-id-type="doi">10.1109/mnet.011.2000450</pub-id>.</mixed-citation></ref>
<ref id="ref-9"><label>[9]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Du</surname> <given-names>M</given-names></string-name>, <string-name><surname>Li</surname> <given-names>F</given-names></string-name>, <string-name><surname>Zheng</surname> <given-names>G</given-names></string-name>, <string-name><surname>Srikumar</surname> <given-names>V</given-names></string-name></person-group>. <article-title>Deeplog: anomaly detection and diagnosis from system logs through deep learning</article-title>. In: <conf-name>Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security; 2017 Oct 30&#x2013;Nov 3</conf-name>; <publisher-loc>Dallas, TX, USA</publisher-loc>. p. <fpage>1285</fpage>&#x2013;<lpage>98</lpage>.</mixed-citation></ref>
<ref id="ref-10"><label>[10]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Meng</surname> <given-names>W</given-names></string-name>, <string-name><surname>Liu</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Zhu</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>S</given-names></string-name>, <string-name><surname>Pei</surname> <given-names>D</given-names></string-name>, <string-name><surname>Liu</surname> <given-names>Y</given-names></string-name>, <etal>et al</etal></person-group>. <article-title>Loganomaly: unsupervised detection of sequential and quantitative anomalies in unstructured logs</article-title>. <source>Int Joint Conf Artif Intell Organizat</source>. <year>2019</year>;<volume>19</volume>(<issue>7</issue>):<fpage>4739</fpage>&#x2013;<lpage>45</lpage>.</mixed-citation></ref>
<ref id="ref-11"><label>[11]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Li</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Shi</surname> <given-names>J</given-names></string-name>, <string-name><surname>Van Leeuwen</surname> <given-names>M</given-names></string-name></person-group>. <article-title>Graph neural networks based log anomaly detection and explanation</article-title>. In: <conf-name>Proceedings of the 2024 IEEE/ACM 46th International Conference on Software Engineering: Companion Proceedings; 2024 Apr 14&#x2013;20</conf-name>; <publisher-loc>Lisbon, Portugal</publisher-loc>. p. <fpage>306</fpage>&#x2013;<lpage>7</lpage>.</mixed-citation></ref>
<ref id="ref-12"><label>[12]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Zamanzadeh Darban</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Webb</surname> <given-names>GI</given-names></string-name>, <string-name><surname>Pan</surname> <given-names>S</given-names></string-name>, <string-name><surname>Aggarwal</surname> <given-names>C</given-names></string-name>, <string-name><surname>Salehi</surname> <given-names>M</given-names></string-name></person-group>. <article-title>Deep learning for time series anomaly detection: a survey</article-title>. <source>ACM Comput Surv</source>. <year>2024</year>;<volume>57</volume>(<issue>1</issue>):<fpage>1</fpage>&#x2013;<lpage>42</lpage>. doi:<pub-id pub-id-type="doi">10.1145/3691338</pub-id>.</mixed-citation></ref>
<ref id="ref-13"><label>[13]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Lee</surname> <given-names>B</given-names></string-name>, <string-name><surname>Song</surname> <given-names>C</given-names></string-name>, <string-name><surname>Jang</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>T</given-names></string-name>, <string-name><surname>Kim</surname> <given-names>T</given-names></string-name>, <string-name><surname>Lu</surname> <given-names>L</given-names></string-name>, <etal>et al.</etal></person-group> <article-title>Preventing use-after-free with dangling pointers nullification</article-title>. In: <conf-name>The Network and Distributed System Security (NDSS) Symposium 2015; 2015 Feb 8&#x2013;11</conf-name>; <publisher-loc>San Diego, CA, USA</publisher-loc>. p. <fpage>1</fpage>&#x2013;<lpage>15</lpage>.</mixed-citation></ref>
<ref id="ref-14"><label>[14]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Xu</surname> <given-names>G</given-names></string-name>, <string-name><surname>Lei</surname> <given-names>W</given-names></string-name>, <string-name><surname>Gong</surname> <given-names>L</given-names></string-name>, <string-name><surname>Liu</surname> <given-names>J</given-names></string-name>, <string-name><surname>Bai</surname> <given-names>H</given-names></string-name>, <string-name><surname>Chen</surname> <given-names>K</given-names></string-name>, <etal>et al</etal></person-group>. <article-title>UAF-GUARD: defending the use-after-free exploits via fine-grained memory permission management</article-title>. <source>Comput Secur</source>. <year>2023</year>;<volume>125</volume>:<fpage>103048</fpage>. doi:<pub-id pub-id-type="doi">10.1016/j.cose.2022.103048</pub-id>.</mixed-citation></ref>
<ref id="ref-15"><label>[15]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>You</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Cui</surname> <given-names>L</given-names></string-name>, <string-name><surname>Shen</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Yang</surname> <given-names>K</given-names></string-name>, <string-name><surname>Lu</surname> <given-names>X</given-names></string-name>, <string-name><surname>Zheng</surname> <given-names>Y</given-names></string-name>, <etal>et al</etal></person-group>. <article-title>A unified model for multi-class anomaly detection</article-title>. <source>Adv Neural Inf Process Syst</source>. <year>2022</year>;<volume>35</volume>:<fpage>4571</fpage>&#x2013;<lpage>84</lpage>.</mixed-citation></ref>
<ref id="ref-16"><label>[16]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><surname>Huang</surname> <given-names>K</given-names></string-name>, <string-name><surname>Zhou</surname> <given-names>S</given-names></string-name>, <string-name><surname>Hu</surname> <given-names>W</given-names></string-name>, <string-name><surname>Gao</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Pan</surname> <given-names>F</given-names></string-name>, <string-name><surname>Jiang</surname> <given-names>X</given-names></string-name></person-group>. <chapter-title>Memory-guided hierarchical feature reconstruction for multi-class unsupervised anomaly detection</chapter-title>. In: <source>International forum on digital TV and wireless multimedia communications</source>. <publisher-loc>Singapore</publisher-loc>: <publisher-name>Springer Nature Singapore</publisher-name>; <year>2024</year>. p. <fpage>228</fpage>&#x2013;<lpage>41</lpage>. doi:<pub-id pub-id-type="doi">10.1007/978-981-96-4276-2_16</pub-id>.</mixed-citation></ref>
<ref id="ref-17"><label>[17]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Landauer</surname> <given-names>M</given-names></string-name>, <string-name><surname>Onder</surname> <given-names>S</given-names></string-name>, <string-name><surname>Skopik</surname> <given-names>F</given-names></string-name>, <string-name><surname>Wurzenberger</surname> <given-names>M</given-names></string-name></person-group>. <article-title>Deep learning for anomaly detection in log data: a survey</article-title>. <source>Mach Learn Appl</source>. <year>2023</year>;<volume>12</volume>(<issue>3</issue>):<fpage>100470</fpage>. doi:<pub-id pub-id-type="doi">10.1016/j.mlwa.2023.100470</pub-id>.</mixed-citation></ref>
<ref id="ref-18"><label>[18]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Zhang</surname> <given-names>H</given-names></string-name>, <string-name><surname>Kim</surname> <given-names>J</given-names></string-name>, <string-name><surname>Yuan</surname> <given-names>C</given-names></string-name>, <string-name><surname>Qian</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Kim</surname> <given-names>T</given-names></string-name></person-group>. <article-title>Statically discover cross-entry use-after-free vulnerabilities in the linux kernel</article-title>. In: <conf-name>Network and Distributed System Security (NDSS) Symposium 2025; 2025 Feb 24&#x2013;28</conf-name>; <publisher-loc>San Diego, CA, USA</publisher-loc>. p. <fpage>1</fpage>&#x2013;<lpage>17</lpage>.</mixed-citation></ref>
<ref id="ref-19"><label>[19]</label><mixed-citation publication-type="other"><person-group person-group-type="author"><collab>Cppcheck Team</collab></person-group>. <article-title>Cppcheck software official website [Internet]</article-title>. <comment>2018 [cited 2024 Jan 1]</comment>. Available from: <ext-link ext-link-type="uri" xlink:href="http://cppcheck.sourceforge.net/">http://cppcheck.sourceforge.net/</ext-link>.</mixed-citation></ref>
<ref id="ref-20"><label>[20]</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name><surname>Wheeler</surname> <given-names>DA</given-names></string-name></person-group>. <article-title>Flawfinder software official website [Internet]</article-title>. <comment>2018 [cited 2024 Jan 1]</comment>. Available from: <ext-link ext-link-type="uri" xlink:href="https://www.dwheeler.com/flawfinder/">https://www.dwheeler.com/flawfinder/</ext-link>.</mixed-citation></ref>
<ref id="ref-21"><label>[21]</label><mixed-citation publication-type="other"><person-group person-group-type="author"><collab>Valgrind Team</collab></person-group>. <article-title>Valgrind: a memory debugging, memory leak detection, and profiling tool</article-title>; <comment>2018 [Internet]. [cited 2024 Jan 1]</comment>. Available from: <ext-link ext-link-type="uri" xlink:href="http://valgrind.org/">http://valgrind.org/</ext-link>.</mixed-citation></ref>
<ref id="ref-22"><label>[22]</label><mixed-citation publication-type="other"><person-group person-group-type="author"><collab>Google</collab></person-group>. <article-title>AddressSanitizer [Internet]</article-title>. <comment>2024 [cited 2024 Jan 1]</comment>. Available from: <ext-link ext-link-type="uri" xlink:href="https://github.com/google/sanitizers/wiki/AddressSanitizer">https://github.com/google/sanitizers/wiki/AddressSanitizer</ext-link>.</mixed-citation></ref>
<ref id="ref-23"><label>[23]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Van Der Kouwe</surname> <given-names>E</given-names></string-name>, <string-name><surname>Nigade</surname> <given-names>V</given-names></string-name>, <string-name><surname>Giuffrida</surname> <given-names>C</given-names></string-name></person-group>. <article-title>Dangsan: scalable use-after-free detection</article-title>. In: <conf-name>Proceedings of the Twelfth European Conference on Computer Systems; 2017 Apr 23&#x2013;26</conf-name>; <publisher-loc>Belgrade, Serbia</publisher-loc>. p. <fpage>405</fpage>&#x2013;<lpage>19</lpage>.</mixed-citation></ref>
<ref id="ref-24"><label>[24]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Gorter</surname> <given-names>F</given-names></string-name>, <string-name><surname>Koning</surname> <given-names>K</given-names></string-name>, <string-name><surname>Bos</surname> <given-names>H</given-names></string-name>, <string-name><surname>Giuffrida</surname> <given-names>C</given-names></string-name></person-group>. <article-title>DangZero: efficient use-after-free detection via direct page table access</article-title>. In: <conf-name>Proceedings of the 2022 ACM SIGSAC Conference on Computer and Communications Security; 2022 Nov 7&#x2013;11</conf-name>; <publisher-loc>Los Angeles, CA, USA</publisher-loc>. p. <fpage>1307</fpage>&#x2013;<lpage>22</lpage>.</mixed-citation></ref>
<ref id="ref-25"><label>[25]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Ahn</surname> <given-names>J</given-names></string-name>, <string-name><surname>Lee</surname> <given-names>J</given-names></string-name>, <string-name><surname>Lee</surname> <given-names>K</given-names></string-name>, <string-name><surname>Gwak</surname> <given-names>W</given-names></string-name>, <string-name><surname>Hwang</surname> <given-names>M</given-names></string-name>, <string-name><surname>Kwon</surname> <given-names>Y</given-names></string-name></person-group>. <article-title>BUDAlloc: defeating use-after-free bugs by decoupling virtual address management from kernel</article-title>. In: <conf-name>Proceedings of the 33rd USENIX Conference on Security Symposium; 2024 Aug 14&#x2013;16</conf-name>; <publisher-loc>Philadelphia, PA, USA</publisher-loc>. p. <fpage>181</fpage>&#x2013;<lpage>97</lpage>.</mixed-citation></ref>
<ref id="ref-26"><label>[26]</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name><surname>Shoshitaishvili</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Brunton</surname> <given-names>G</given-names></string-name>, <string-name><surname>Rawat</surname> <given-names>N</given-names></string-name></person-group>. <article-title>Angr: a platform for analyzing binary programs [Internet]</article-title>. <comment>2018 [cited 2024 Jan 1]</comment>. Available from: <ext-link ext-link-type="uri" xlink:href="https://github.com/angr/angr">https://github.com/angr/angr</ext-link>.</mixed-citation></ref>
<ref id="ref-27"><label>[27]</label><mixed-citation publication-type="other"><person-group person-group-type="author"><collab>Google Inc</collab></person-group>. <article-title>Driller: a hybrid fuzzing tool combining static and dynamic analysis [Internet]</article-title>. <comment>2018 [cited 2024 Jan 1]</comment>. Available from: <ext-link ext-link-type="uri" xlink:href="https://github.com/googleprojectzero/driller">https://github.com/googleprojectzero/driller</ext-link>.</mixed-citation></ref>
<ref id="ref-28"><label>[28]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Choi</surname> <given-names>K</given-names></string-name>, <string-name><surname>Yi</surname> <given-names>J</given-names></string-name>, <string-name><surname>Park</surname> <given-names>C</given-names></string-name>, <string-name><surname>Yoon</surname> <given-names>S</given-names></string-name></person-group>. <article-title>Deep learning for anomaly detection in time-series data: review, analysis, and guidelines</article-title>. <source>IEEE Access</source>. <year>2021</year>;<volume>9</volume>:<fpage>120043</fpage>&#x2013;<lpage>65</lpage>. doi:<pub-id pub-id-type="doi">10.1109/access.2021.3107975</pub-id>.</mixed-citation></ref>
<ref id="ref-29"><label>[29]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Wan</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Liu</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>D</given-names></string-name>, <string-name><surname>Wen</surname> <given-names>Y</given-names></string-name></person-group>. <article-title>Glad-paw: graph-based log anomaly detection by position aware weighted graph attention network</article-title>. In: <conf-name> Pacific-Asia Conference on Knowledge Discovery and Data Mining; 2021 May 11&#x2013;14</conf-name>; <publisher-loc>Delhi, India</publisher-loc>. p. <fpage>66</fpage>&#x2013;<lpage>77</lpage>.</mixed-citation></ref>
<ref id="ref-30"><label>[30]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Zhang</surname> <given-names>C</given-names></string-name>, <string-name><surname>Peng</surname> <given-names>X</given-names></string-name>, <string-name><surname>Sha</surname> <given-names>C</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>K</given-names></string-name>, <string-name><surname>Fu</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Wu</surname> <given-names>X</given-names></string-name>, <etal>et al.</etal></person-group> <article-title>Deeptralog: trace-log combined microservice anomaly detection through graph-based deep learning</article-title>. In: <conf-name>Proceedings of the 44th International Conference on Software Engineering; 2022 May 25&#x2013;27</conf-name>; <publisher-loc>Pittsburgh, PA, USA</publisher-loc>. p. <fpage>623</fpage>&#x2013;<lpage>34</lpage>.</mixed-citation></ref>
<ref id="ref-31"><label>[31]</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name><surname>Kern</surname> <given-names>P</given-names></string-name></person-group>. <article-title>Injecting shared libraries with LD_PRELOAD for cyber deception [master&#x2019;s thesis]. Vienna, Austria: Technische Universit&#x00E4;t Wien</article-title>; <year>2023</year>.</mixed-citation></ref>
<ref id="ref-32"><label>[32]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Zhao</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Xu</surname> <given-names>C</given-names></string-name>, <string-name><surname>Li</surname> <given-names>B</given-names></string-name></person-group>. <article-title>A LSTM-based anomaly detection model for log analysis</article-title>. <source>J Signal Process Syst</source>. <year>2021</year>;<volume>93</volume>(<issue>7</issue>):<fpage>745</fpage>&#x2013;<lpage>51</lpage>. doi:<pub-id pub-id-type="doi">10.1007/s11265-021-01644-4</pub-id>.</mixed-citation></ref>
<ref id="ref-33"><label>[33]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Braun</surname> <given-names>P</given-names></string-name>, <string-name><surname>Litz</surname> <given-names>H</given-names></string-name></person-group>. <article-title>Understanding memory access patterns for prefetching</article-title>. In: <conf-name>International Workshop on AI-assisted Design for Architecture (AIDArc), Held in Conjunction with ISCA; 2019 Jun 22</conf-name>; <publisher-loc>Phoenix, AZ, USA</publisher-loc>.</mixed-citation></ref>
<ref id="ref-34"><label>[34]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Haque</surname> <given-names>R</given-names></string-name>, <string-name><surname>Islam</surname> <given-names>N</given-names></string-name>, <string-name><surname>Tasneem</surname> <given-names>M</given-names></string-name>, <string-name><surname>Das</surname> <given-names>AK</given-names></string-name></person-group>. <article-title>Multi-class sentiment classification on Bengali social media comments using machine learning</article-title>. <source>Int J Cogn Comput Eng</source>. <year>2023</year>;<volume>4</volume>(<issue>3</issue>):<fpage>21</fpage>&#x2013;<lpage>35</lpage>. doi:<pub-id pub-id-type="doi">10.1016/j.ijcce.2023.01.001</pub-id>.</mixed-citation></ref>
<ref id="ref-35"><label>[35]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Amadi</surname> <given-names>CO</given-names></string-name>, <string-name><surname>Odii</surname> <given-names>JN</given-names></string-name>, <string-name><surname>Okpalla</surname> <given-names>C</given-names></string-name>, <string-name><surname>La</surname> <given-names>OCI</given-names></string-name></person-group>. <article-title>Emotion detection using a bidirectional long-short term memory (bilstm) neural network</article-title>. <source>Int J Curr Pharm Rev Res</source>. <year>2023</year>;<volume>4</volume>(<issue>11</issue>):<fpage>1718</fpage>&#x2013;<lpage>32</lpage>.</mixed-citation></ref>
<ref id="ref-36"><label>[36]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Cao</surname> <given-names>K</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>T</given-names></string-name>, <string-name><surname>Huang</surname> <given-names>J</given-names></string-name></person-group>. <article-title>Advanced hybrid LSTM-transformer architecture for real-time multi-task prediction in engineering systems</article-title>. <source>Sci Rep</source>. <year>2024</year>;<volume>14</volume>(<issue>1</issue>):<fpage>4890</fpage>. doi:<pub-id pub-id-type="doi">10.1038/s41598-024-55483-x</pub-id>; <pub-id pub-id-type="pmid">38418510</pub-id></mixed-citation></ref>
<ref id="ref-37"><label>[37]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Setyanto</surname> <given-names>A</given-names></string-name>, <string-name><surname>Laksito</surname> <given-names>A</given-names></string-name>, <string-name><surname>Alarfaj</surname> <given-names>F</given-names></string-name>, <string-name><surname>Alreshoodi</surname> <given-names>M</given-names></string-name>, <string-name><surname>Oyong</surname> <given-names>I</given-names></string-name>, <string-name><surname>Hayaty</surname> <given-names>M</given-names></string-name>, <etal>et al</etal></person-group>. <article-title>Arabic language opinion mining based on long short-term memory (LSTM)</article-title>. <source>Appl Sci</source>. <year>2022</year>;<volume>12</volume>(<issue>9</issue>):<fpage>4140</fpage>. doi:<pub-id pub-id-type="doi">10.3390/app12094140</pub-id>.</mixed-citation></ref>
<ref id="ref-38"><label>[38]</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name><surname>Brody</surname> <given-names>S</given-names></string-name>, <string-name><surname>Alon</surname> <given-names>U</given-names></string-name>, <string-name><surname>Yahav</surname> <given-names>E</given-names></string-name></person-group>. <article-title>How attentive are graph attention networks?</article-title> <comment>arXiv:2105.14491. 2021</comment>.</mixed-citation></ref>
<ref id="ref-39"><label>[39]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Nerrise</surname> <given-names>F</given-names></string-name>, <string-name><surname>Zhao</surname> <given-names>Q</given-names></string-name>, <string-name><surname>Poston</surname> <given-names>KL</given-names></string-name>, <string-name><surname>Pohl</surname> <given-names>KM</given-names></string-name>, <string-name><surname>Adeli</surname> <given-names>E</given-names></string-name></person-group>. <article-title>An explainable geometric-weighted graph attention network for identifying functional networks associated with gait impairment</article-title>. In: <conf-name>International Conference on Medical Image Computing and Computer-Assisted Intervention; 2023 Oct 8&#x2013;12</conf-name>; <publisher-loc>Vancouver, BC, Canada</publisher-loc>. p. <fpage>723</fpage>&#x2013;<lpage>33</lpage>.</mixed-citation></ref>
<ref id="ref-40"><label>[40]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Zhao</surname> <given-names>H</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Duan</surname> <given-names>J</given-names></string-name>, <string-name><surname>Huang</surname> <given-names>C</given-names></string-name>, <string-name><surname>Cao</surname> <given-names>D</given-names></string-name>, <string-name><surname>Tong</surname> <given-names>Y</given-names></string-name>, <etal>et al.</etal></person-group> <article-title>Multivariate time-series anomaly detection via graph attention network</article-title>. In: <conf-name>2020 IEEE International Conference on Data Mining (ICDM); 2020 Nov 17&#x2013;20</conf-name>; <publisher-loc>Sorrento, Italy</publisher-loc>. p. <fpage>841</fpage>&#x2013;<lpage>50</lpage>.</mixed-citation></ref>
</ref-list>
</back></article>