CLEAN
20
Risk Score
Machine Learning
- Nyx PDF Classifier suspicious score 0.3624
Heuristics 4
-
JavaScript action low 1 related finding PDF_JAVASCRIPTPDF contains a /JavaScript action. Generic JavaScript is common in benign forms; specific dangerous APIs are scored by separate rules.
-
Embedded JS stream low PDF_JSPDF references a /JS stream. Generic JavaScript is common in benign forms; specific dangerous APIs are scored by separate rules.
-
Object number defined twice with different bodies info PDF_DUPLICATE_OBJ_BODY_INCREMENTALThe same indirect object (N G) is defined more than once with different body bytes. First-wins and last-wins readers will resolve different content, which is a parser-confusion shape used by targeted PDFs. Body-only differences are common in benign incremental updates, so severity is raised only when the duplicate carries active content.
-
Embedded URL info EMBEDDED_URLOne or more URLs were extracted from the document. The URL itself is not a detection — see the per-URL labels for which channel (macro, JS, link annotation, document body, ...) reached each URL.URL http://www.cerenade.com/ Referenced by PDF JavaScript
- http://www.w3.org/1999/02/22-rdf-syntax-ns#In PDF document text
- http://purl.org/dc/elements/1.1/In PDF document text
- http://ns.adobe.com/pdf/1.3/In PDF document text
- http://ns.adobe.com/xap/1.0/In PDF document text
- http://ns.adobe.com/xap/1.0/mm/In PDF document text
🗂 Part of campaign:
shared payload 47a4c5a45e
3 samples
Extracted artifacts 8
Files carved from inside the sample during analysis.
| Filename | Kind | Source | Size |
|---|---|---|---|
javascript_obj0045_001.js |
pdf-javascript-stream | PDF /JS object 45 at offset 0xAB39 | 33 bytes |
SHA-256: f0a0eef79d820433b6742ba4c20f8407e0f3f78f2a827bda377f7690ca7578a1 |
|||
Preview scriptFirst 1,000 lines of the extracted script
AFDate_KeystrokeEx("mm-dd-yyyy");
|
|||
javascript_obj0084_002.js |
pdf-javascript-stream | PDF /JS object 84 at offset 0xBD1F | 39 bytes |
SHA-256: 19cb1f36a429aa0507c463c0f9e1fd1a4fcfbfb101d1ab03f01074deb708bc56 |
|||
Preview scriptFirst 1,000 lines of the extracted script
AFNumber_Format(2, 0, 2, 0, "$", true); |
|||
javascript_obj0085_003.js |
pdf-javascript-stream | PDF /JS object 85 at offset 0xBD6F | 42 bytes |
SHA-256: cf1278bfde08fc8d9e4fcb6fae8f62fa8226e80513c38d7d269fb2c17b801e8a |
|||
Preview scriptFirst 1,000 lines of the extracted script
AFNumber_Keystroke(2, 0, 2, 0, "$", true); |
|||
javascript_obj0227_004.js |
pdf-javascript-stream | PDF /JS object 227 at offset 0x10625 | 42 bytes |
SHA-256: dd30765fc42ee98eaca0ee82309e921ccb10bdf722befbcbcb689823274767de |
|||
Preview scriptFirst 1,000 lines of the extracted script
VFMask_Format(event, "###\\-###\\-####*"); |
|||
javascript_obj0228_005.js |
pdf-javascript-stream | PDF /JS object 228 at offset 0x1067D | 44 bytes |
SHA-256: 4d371aa2cb359b03fc779cb1f46626e877c4c59676a71b57c6b2269bec28879b |
|||
Preview scriptFirst 1,000 lines of the extracted script
VFMask_Validate(event, "###\\-###\\-####*"); |
|||
javascript_obj0017_006.js |
pdf-javascript-stream | PDF /JS object 17 at offset 0x195A | 5737 bytes |
SHA-256: 51f27213d39174f734f982279b38c41678cbfa68351fc7c47c4b54ef33b33bb2 |
|||
Preview scriptFirst 1,000 lines of the extracted script
//-------------------------------------------------------------
// Visual eForms PDF Export JavaScript Functions
// Version 1.1
// Copyright � 2002, 2003 Cerenade. All rights reserved.
// http://www.cerenade.com/
//-------------------------------------------------------------
global.vfEnabled = 28;
global.vfOverwirte = 28;
global.vfVisible = 76;
global.vfBackColor = 9;
global.vfTextColor = 26;
global.RadioGroupStat1 = "";
global.RadioGroupStat2 = "";
global.RadioGroupStat3 = "";
global.RadioGroupStat4 = "";
this.calculateNow();
//-------------------------------------------------------------
function GetFieldValue(FieldName)
{
var FieldT = this.getField(String(FieldName));
if (FieldT.type == "checkbox")
{
if (FieldT.value == "Yes")
return 1;
else
return 0;
}
else
return FieldT.value;
}
//-------------------------------------------------------------
function VFMask_CheckChar(CharCode, Format)
{
switch (Format)
{
case 65 :
if (((CharCode < 65) || (CharCode > 90)) &&
((CharCode < 97) || (CharCode > 122)))
return -1;
break;
case 85 :
if ((CharCode < 65) || (CharCode > 90))
return -1;
break;
case 76 :
if ((CharCode < 97) || (CharCode > 122))
return -1;
break;
case 35 :
if ((CharCode < 48) || (CharCode > 57))
return -1;
break;
case 33 :
if (((CharCode < 33) || (CharCode > 47)) &&
((CharCode < 58) || (CharCode > 64)) &&
((CharCode < 91) || (CharCode > 96)) &&
((CharCode < 123) || (CharCode > 126)))
return -1;
break;
case 83 :
if (CharCode != 32)
return -1;
break;
case 69 :
if (CharCode != 13)
return -1;
break;
case 46 :
case 80 :
return 0;
break;
default :
return -1;
}
}
//-------------------------------------------------------------
function VFMask_Format(event, FormatStr)
{
var FieldValue = new String(event.value);
FormatStr = String(FormatStr);
var ValueLen = FieldValue.length;
var FrmtLen = FormatStr.length;
var StrCnt = 0;
for(FrmtCnt = 0; FrmtCnt < FrmtLen; FrmtCnt++)
{
if (StrCnt >= ValueLen)
break;
if (FormatStr.charCodeAt(FrmtCnt) == 92)
{
FrmtCnt++;
if (FormatStr.charCodeAt(FrmtCnt) == FieldValue.charCodeAt(StrCnt))
{
StrCnt++;
continue;
}
event.value = event.value.substr(0, StrCnt) +
FormatStr.substr(FrmtCnt, 1) + event.value.substring(StrCnt);
FieldValue = event.value;
StrCnt++;
ValueLen++;
continue;
}
if (FormatStr.charCodeAt(FrmtCnt) == 42)
break;
else if (FormatStr.charCodeAt(FrmtCnt) == 91)
{
FrmtCnt++;
for (; FrmtCnt < FormatStr.length; FrmtCnt++)
if (FormatStr.charCodeAt(FrmtCnt) == 93)
break;
}
StrCnt++;
}
}
//-------------------------------------------------------------
function VFMask_Validate(event, FormatStr)
{
var FieldValue = new String(event.value);
FormatStr = String(FormatStr);
var LastFrmt = new String("");
var ValueLen = FieldValue.length;
var FrmtLen = FormatStr.length;
var ValueIsMatch = new Boolean(false);
var StrCnt = 0;
for(FrmtCnt = 0; FrmtCnt < FrmtLen; FrmtCnt++)
{
if (StrCnt >= ValueLen)
break;
if (FormatStr.charCodeAt(FrmtCnt) == 92)
{
if ((FrmtCnt == FrmtLen - 1))
{
app.alert("Format String is invalid.");
event.rc = false;
return -1;
}
FrmtCnt++;
if (FormatStr.charCodeAt(FrmtCnt) == FieldValue.charCodeAt(StrCnt))
{
StrCnt++;
continue;
}
continue;
}
if (FormatStr.charCodeAt(FrmtCnt) == 42)
{
if (FrmtCnt != FrmtLen - 1)
{
app.alert("Invalid mask format string.");
event.rc = false;
return -1;
}
LFrmtLen = LastFrmt.length;
for (; StrCnt < ValueLen; StrCnt++)
for (LFrmtCnt = 0; LFrmtCnt < LFrmtLen; LFrmtCnt++)
if (VFMask_CheckChar(FieldValue.charCodeAt(StrCnt),
LastFrmt.charCodeAt(LFrmtCnt)))
{
app.alert("Invalid format.\r\nThe correct format is \"" + FormatStr + "\".");
event.rc = false;
return -1;
}
break;
}
else if (FormatStr.charCodeAt(FrmtCnt) == 91)
{
FrmtCnt++;
LastFrmt = "";
ValueIsMatch = false;
for (; FrmtCnt < FormatStr.length; FrmtCnt++)
{
if (FormatStr.charCodeAt(FrmtCnt) == 93)
break;
LastFrmt += FormatStr.substr(FrmtCnt, 1);
if (!VFMask_CheckChar(FieldValue.charCodeAt(StrCnt),
FormatStr.charCodeAt(FrmtCnt)))
ValueIsMatch = true;
}
if (!ValueIsMatch)
{
app.alert("Invalid format.\r\nThe correct format is \"" + FormatStr + "\".");
event.rc = false;
return -1;
}
StrCnt++;
continue;
}
LastFrmt = FormatStr.substr(FrmtCnt, 1);
if (VFMask_CheckChar(FieldValue.charCodeAt(StrCnt),
FormatStr.charCodeAt(FrmtCnt)))
{
app.alert("Invalid format.\r\nThe correct format is \"" + FormatStr + "\".");
event.rc = false;
return -1;
}
else
StrCnt++;
}
if (StrCnt < ValueLen)
{
app.alert("Invalid format.\r\nThe correct format is \"" + FormatStr + "\".");
event.rc = false;
return -1;
}
}
//-------------------------------------------------------------
|
|||
objstm_0297_00.bin |
pdf-objstm-decoded | PDF /ObjStm 297 0 obj (inflated) | 16973 bytes |
SHA-256: a0c657be3749b0dc124b7bf67030ac32629b6571c4ab49824b6a6b6c5f0c939e |
|||
objstm_0303_00.bin |
pdf-objstm-decoded | PDF /ObjStm 303 0 obj (inflated) | 7119 bytes |
SHA-256: e3d9cd6ade35cbf0e179d4e5dfab72cfead4fca3aaeba05b63a3b952513f9641 |
|||
Open this report in the interactive analyzer, or submit your own file for analysis.