
Technical analysis of a multi-stage Adobe Acrobat PDF JavaScript sample, detailing environment triage, Acrobat API abuse, and in-memory payload decryption and execution for defensive research.
This repository publishes a code-centric reverse-engineering write-up on a malicious PDF sample that embeds staged Adobe Acrobat JavaScript. The analyzed sample uses a hidden form field as its initial loader, reconstructs a second-stage JavaScript body through Acrobat stream decoding, performs environment triage and Acrobat-specific interface abuse, establishes network-backed staging, and finally decrypts, decompresses, and executes a deferred third-stage payload. The goal of this repository is defensive analysis and documentation. The focus is on observable behavior, recovered code structure, and attack-chain reconstruction.
Btn1).app.beginPriv() and app.endPriv().viewerVersionviewerTypeplatformANShareFile(...) and ANFancyAlertImpl(...).bird1global.final_jseval(...)Btn1setTimeOutThe sample is significant because it is not a simple static PDF with embedded script fragments. It behaves like a structured multi-stage loader that:
That combination makes it relevant both for PDF malware analysis and for studying Acrobat JavaScript trust and staging behavior.
The Write-Up can be found here.