Automating Malware Reverse Engineering with Local LLMs, PyGhidra and Neo4j Graphs
A researcher has built an automated system that combines PyGhidra, Neo4j and a local large language model to speed up the initial analysis of malicious binaries. The project addresses the main drawbacks of sending decompiled code to cloud LLMs: leakage of indicators of compromise, possible censorship of sensitive modules, and rapid context overflow when a sample contains 100–200 functions.
Architecture and data flow
The pipeline begins with ghidra_extractor.py, which uses PyGhidra to disassemble and decompile a binary without launching the Ghidra GUI. For every function the extractor records its address, name, size, cyclomatic complexity, decompiled C pseudocode (truncated at 6000 characters with a 30-second timeout), call-graph neighbors, string references and imported API calls. Metadata such as PE format, architecture and all standard file hashes are also stored. All extracted entities are loaded into Neo4j as distinct node types: Sample, Function, String, Import, Analysis, Capability and Behavior.
Next, worker.py and mcp.py iterate over functions and send each one to a locally hosted Qwen3 model running inside LM Studio. The prompt includes both the decompiled code and the function’s position in the call graph, allowing the model to understand caller-callee relationships. The model returns structured JSON describing the function’s purpose, extracted IOCs, tags, network indicators, command-line usage and anti-analysis techniques.
aggregator.py then aggregates tags across all functions into Capability nodes that carry a strength weight reflecting how often each capability appears. builder.py combines these capabilities with the call graph to detect higher-level behavioral patterns such as file encryption combined with network activity. Finally, generator.py produces a human-readable report by querying the enriched graph.
Graph data model
Storing functions in a flat table makes it difficult to answer questions such as whether five anti-debug functions call one another. In the Neo4j model a Function node is connected to other Function nodes via CALLS edges, to String nodes via REFERENCES edges, and to Import nodes via USES edges. Capability and Behavior nodes sit above the function level and are linked through weighted relationships, enabling concise Cypher queries instead of recursive joins.
Validation on WannaCry
The pipeline was tested on a WannaCry sample obtained from MalwareBazaar. Processing 195 functions took 126 minutes on a machine with 60 GB RAM and an Nvidia 5070 Ti. The generated report identified three behavioral patterns with 100 percent confidence: File Encryption (supported by 40 functions), C2 Communication and Anti-Analysis. A publicly available YARA rule confirmed the anti-debug findings discovered by the system.
The complete source code is available in the repository Dvoranchik/MLMalwareAnalyzer. Future work will focus on refining call-graph traversal and prompt engineering to surface additional indicators.
Related articles
uCreator Spyware Infiltrates Modified Telegram, WeChat and GCash Builds on Android
Security researcher Ovi has published a detailed analysis of uCreator, also known as YingGai, a commercial Android spyware platform designed for surveillance and remote app control. The malware intercepts messages, verification codes and account data directly inside legitimate applications without requiring root privileges. Infection vectors include tampered Telegram, WeChat and GCash APKs distributed through unofficial sources, as well as the Onion Box container that launches the target app inside a controlled environment. Once active, uCreator hooks into the host process, reads Telegram’s local message database through client interfaces, captures two-factor authentication passwords and hides its own session from the user. The operation is supported by cloud-based command panels and exposed GitLab repositories that revealed server-side code and development history. Compatibility problems have been noted on Android 17, and the total number of victims remains unknown.
Researchers Deploy Cowrie Honeypot Disguised as NVIDIA H100 Server to Study SSH Botnet Tactics
A cybersecurity team set up a realistic Cowrie honeypot on a fake server equipped with four NVIDIA H100 GPUs, 128 AMD EPYC cores, and terabytes of storage to observe what SSH brute-force bots actually do after gaining access. The trap used a custom StickyAuth module that allowed entry only after several failed attempts and locked in the successful credential pair per IP address. Over the first 12.5 hours the system recorded 1,846 connections from 126 unique IPs, 175 successful logins, and 1,524 commands executed, with the majority of activity traced to a single botnet linked to the Outlaw group. The attackers deployed SSH keys signed mdrfckr, changed the root password, killed competing processes, installed cron jobs, and downloaded a mining archive called dota3 containing an IRC backdoor and its own SSH scanner. The researchers also identified three realism issues in the base Cowrie setup—limited grep flags, outdated filesystem paths in Debian 12, and inconsistent hostname reporting—and patched them to keep sophisticated bots engaged longer. An auxiliary LLM service later summarized each session in Telegram for easier analysis.
Hirudo Android Banking Trojan Uninstalls Legitimate Bank Apps and Installs Attacker-Controlled Fakes
Researchers at ThreatFabric have detailed Hirudo, a sophisticated Android banking trojan that also serves as a remote access tool and replaces genuine bank applications with attacker-controlled copies. The malware spreads through decoy apps themed around shopping, adult video, and short series, including Shopora, 1V1 X, ZoyaTV, and KoiShort. Once installed, it uses accessibility services to detect target banking apps, verify their signatures, display a fake update prompt, and force uninstallation of the real application before installing a malicious replica signed with a publicly known test key. The trojan employs components from the open-source YAHFA and Dobby projects to intercept signature checks, hide accessibility services, bypass screenshot restrictions, and forward Play Integrity attestations to the attacker’s server. Eight ready-made replicas target seven Indonesian banks, while credential theft focuses on users in China, India, Mexico, Morocco, and Thailand. Server logs collected in August 2026 contained thousands of credentials, device data, and financial profiles, with the attestation key set confirmed as publicly leaked and partially revoked by Google.
Over 300 Tor Exit Nodes Hijacked to Intercept SSH Passwords and Deploy Ebury Backdoor
Attackers compromised hundreds of Tor exit nodes and repurposed them to perform man-in-the-middle attacks against SSH connections. Instead of reaching the intended server, users were redirected to attacker-controlled infrastructure where they could be tricked into accepting a forged host key and revealing their credentials. Researcher kaba identified 333 malicious exit nodes routing traffic through the same 12 interception servers after noticing an unexpected host-key warning on October 2. The campaign also attempted to install the Ebury Linux backdoor designed to steal authentication data. The Tor Project confirmed that operators' servers had their configurations altered and some middle relays were converted into exit nodes. The initial access vector remains unknown, but the activity window was limited to October 1-5. Users who connected via Tor during this period, accepted an unfamiliar key, and entered a password should treat their credentials as compromised.