Skip to content

Latest commit

 

History

History
421 lines (409 loc) · 26.5 KB

Features.md

File metadata and controls

421 lines (409 loc) · 26.5 KB

Comparison of features

Feature overview

Feature Support by PE Studio Support by CL version
Submit to Virus Total Yes Yes, if API key available
Check for TLS callbacks Yes Yes, all callbacks are listed
Show information from file header Yes, highlights suspicious fields  Yes, highlights invalid date-time field only
Check imports against blacklisted libraries and functions. Cluster them according to their field Yes Yes
Prints exports of the PE file Yes Yes
Print summary of resources Yes Yes
Check for resources against list of known resources Yes Yes
Save selected resource to file to analyze it further Yes No
Show embedded certificates Yes No
Show relocations Yes Yes
Check for signatures in the file (e.g. packers, malware pattern). Note: database seems not to be up-to-date Yes Yes
Show blacklisted strings in the file by group Yes Yes
XML output of results Yes Yes
JSON output of results No Yes
Yara support for more rules No Yes

Indicators

In addition to PE Studio:

  • Show summary of complete analysis of file
  • Check for entropy in sections to quickly spot packers
  • Check for imphashes
  • List suspicious (= non-standard) section names because they can provide a hint to packers

All the indicators which should be supported by PE Studio and comparison to our version

Indicators Support by CL version Note
The file is not an executable file No Our program won't parse the file correctly
The MZ signature is missing No
The size (%i bytes) of the file is suspicious No
The size (%i bytes) of the optional-header is suspicious Yes
The size (%i bytes) of the file-header is suspicious No
The size (%i bytes) of the certificate is suspicious No
The content of the certificate is suspicious No
The file is Self-Extractable (SFX) No
The file references a certificate (offset: 0x%08X, size: %i bytes) No
The file is managed by .NET No
The file references (%s) debug symbol(s) No
The file references the Reflective DLL Injection technique No
The file is bound to (%i) library No
The file is Code-less Yes
The file exposes a TLS-callback (%s:%08X) Yes We can list all TLS callbacks
The entry-point is located in a section (name: %s) that is not executable Yes
The file checksum is invalid No
The entry-point is outside the file Yes
The certificate issuer (%s) has expired (%s) Yes
The certificate subject (%s) has expired (%s) Yes
The file does not contain a digital Certificate Yes
The file has no Manifest Yes
The Export table contains (%i) gap(s) No
The file implements Control Flow Guard (CFG) Yes
The file will be copied and run from to the system swap when started from the Network No
The file will be copied and run from to the system swap when started from a Removable Media No
The file runs in the Visual Basic Virtual Machine (VBVM) No
The file is a Device Driver Yes
The file is statically linked to the C Runtime Library No
The file opts for Data Execution Prevention (DEP) Yes
The file ignores Data Execution Prevention (DEP) Yes
The file opts for Address Space Layout Randomization (ASLR) Yes
The file ignores Address Space Layout Randomization (ASLR) Yes
The file ignores Structured Exception Handling (SEH) Yes
The file opts for cookies on the stack (GS) Yes
The file ignores cookies on the stack (GS) Yes
The file ignores Code Integrity Yes
The file is isolation aware but should not be isolated No
The file references Safe Structured Exception Handling (SafeSEH) No
The file registers (%i) Exception handlers No
The overlay is scored (%i/%i) by virustotal No
The MS-DOS Header has been found at (0x%08X) offset No
The value of the checksum is different than the checksum computed No
The file is scored (%i/%i) by virustotal Yes
The file has been compiled with Delphi Yes
The preferred AV engine (%s) detects the file as infected No
The preferred AV engine (%s) detects the file as clean No
The file references a debug symbols file (path:"%s") Yes Not sure if the debug file is found/parsed correctly
The debug file name extension is suspicous Yes Not sure if the debug file is found/parsed correctly
The GUID (%s) of the debug symbols is suspicious No
The path of the debug symbols is suspicious No
The age (%i) of the debug file is suspicious No
The value (0x%08X) of 'PointerToSymbolTable' is suspicious No
The value (%i) of 'NumberOfSymbols' is suspicious No
The value of 'SizeOfCode' is suspicious No
The value (0x%08X) of 'BaseOfCode' is suspicious No
The value (0x%08X) of 'BaseOfData' is suspicious No
The value of 'FileAlignment' is suspicious No
The value of 'SizeOfImage' is suspicious Yes
The size of initialized data reached the max (%i bytes) threshold No
The value of 'SizeOfHeaders' is suspicious No
The value (%i) of 'NumberOfRvaAndSizes' is suspicious No
The address of the entry-point is zero Yes
The shared section(s) reached the max (%i) threshold Yes
The file references a library (%s) that is missing No
The count of nameless sections reached the max (%i) threshold No
The file-ratio (%i) of the resources is suspicious Yes
The last section (name:%s) is executable Yes
The first section (name:%s) is writable Yes
The entry-point is outside the first section No We could add this feature
The entry-point is inside the first section No We could add this feature
The file size of the section (name:%s) reached the min (%i bytes) threshold No
The file signature is '%s' No
The file is resource-less Yes
The file references (%i) languages in the Resources No
The file contains (%i) custom resource item(s) No
The file contains (%i) built-in resources item(s) No
The file contains (%i) resource(s) in a blacklisted language (%s) No
The resource (type: %s, name: %s) is invalid No
The signature of the resource (%s:%s) is unknown No
The file references a resource (%s:%s) which is not supported anymore No
The manifest does not contain trust information No
The manifest identity name is "%s" No
The manifest description name (%s) is different than the file name (%s) No
The size of the resource (%s.%s) reached the min (%i bytes) threshold No
The size of the resource (%s.%s) is bigger than the max (%i bytes) threshold No
The section (name:%s) is blacklisted Yes Non-standard section names are result of the output
The count of executable sections reached the max (%i) threshold Yes
The file has no Executable section Yes
The count of blacklisted sections reached the max (%i) threshold No
The file references (%i) unknown resource(s) No
The file exports (%i) obsolete function(s) No
The file exports (%i) anonymous function(s) No
The file exports (%i) forwarded function(s) No
The file exports (%i) decorated function(s) No
The file exports (%i) duplicated function(s) No
The file exports blacklisted function(s) No
The dos-stub message ("%s") is unusual No
The dos-stub message is missing No
The file imports (%i) deprecated function(s) No
The file imports (%i) anonymous function(s) No
The file imports (%i) forwarded function(s) No
The file imports (%i) decorated function(s) No
The count (%i) of imports is suspicious Yes
The file imports blacklisted function(s) Yes
The file references (%i) whitelist strings Yes
The file references (%i) blacklisted library Yes
The count (%i) of antidebug functions reached the max (%i) threshold Yes
The count (%i) of undocumented functions reached the max (%i) threshold No
The count (%i) of ordinal functions reached the max (%i) threshold No
The count (%i) of deprecated functions reached the max (%i) threshold No
The dos-stub is missing Yes
The file iterates through running processes No We check if functions that can be used for it are imported
The file iterates through files on the disk No We check if functions that can be used for it are imported
The file imports (%i) undocumented function(s) No  
The file subsystem is Unknown No
The %s directory is missing No
The %s directory is invalid No
The %s directory is outside the file No
The Offset (0x%08X) of the %s Directory is outside a section No
The Virtual Address (0x%08X) of the %s Directory is suspicious No
The count (%i) of empty directories reached the max (%i) threshold No
The time-stamp (Year:%i) of the compiler is suspicious Yes
The time-stamp (Year:%i) of the debugger is suspicious Yes
The file expects Administrative permission No
The file requests User Interface Privilege Isolation (UIPI) No
The file has no Cave No
The original file name is "%s" No
The file references (%i) blacklisted string(s) No
The strings reached the min (%i) threshold No
The file references an Object Indentifier (%s) No
The file references a MIME64 encoding string No
The file references a URL pattern (%s) No
The count (%i) of blacklisted strings reached the min (%i) threshold No
The file references a URL (%s) scored (%i/%i) by virustotal No
The file references a URL (%s) unknown by virustotal No
The file references function names mapped to other names No
The certificate references a URL (%s) No
The file imports (%i) library(s) with invalid name No
The file imports (%i) library(s) with suspicious name No
The count (%i) of libraries is suspicious No We could add this
The size (%i bytes) of the Version resource is bigger than the max (%i bytes) threshold No
The version '%s' is suspicious No
The version translation block internal name is misspelled No
The file supports OLE Self-Registration No
The file version has no Root No
The file contains another file (type: %s, location: %s, file-offset: 0x%08X) scored (%i/%i) by virustotal No
The file is target for % machine No We can parse the machine type but do not mention it as the indicators
The file references (%i) insulting string(s) Yes
The elevated functions reached the max (%i) threshold No
The registered exception handlers reached the max (%i) threshold No
The file contains another file (type: %s, location: %s, file-offset: 0x%08X) No
The size of the dos-header reached the min (%i bytes) threshold No
The size of the dos-header reached the max (%i bytes) threshold No
The file seems to be a fake Microsoft executable No
The size (%i bytes) of the dos-stub is suspicious No
The hash of the resource (%s.%s) is well-known No
The entry-point is located in the last section (name:%s) Yes
The count (%i) of sections is suspicious No We could add this
The file references the '%s' Windows builtin service No
The version information is missing No
The file is self-extractable with IEXPRESS No
The strings (type: %s) reached the max (%i) threshold No
The size of code (%i bytes) is bigger than the size (%i bytes) of code sections Yes
The file references Regular Expression (Regex) patterns No We check all strings
The section (name:%s) is not readable No
The file references (%i) Windows built-in privilege(s) No
The file signature (%s) is blacklisted No
The file signature (%s) of the overlay is blacklisted No
The file signature (%s) of the resource (%s.%s) is blacklisted No
The file contains self-modifying code No
The file extensions (%i) reached the max (%i) threshold No
The file references (%i) %s string(s) No
The file references (%i) functions of the '%s' API group No
The file references (%i) keyboard keys like a Keylogger Yes
The file references (%i) file extensions like a Ransomware (or a Wiper) No
The file references (%i) passwords like a Brute-forcer Yes

All the features and functions of a PE file that should be checked. We can check all of them with the same logic as the original. However, not all of them seem to be supported by PEStudio (at least we couldn't find any library/function that is checked to perform the functionality of several of these messages)

Feature/Functions Support by CL version
The file references the Smartcard API Same as original
The file references a Virtual Machine (VM) Same as original
The file references the Remote Desktop Session Host Server Same as original
The file references the Protected Storage Same as original
The file references the Active Directory (AD) Same as original
The file references the Windows Native API Same as original
The file references the Simple Network Management Protocol (SNMP) Same as original
The file references the Security Descriptor Definition Language (SDDL) Same as original
The file references the Cabinet (CAB) library Same as original
The file references the eXtension for Financial Services (XFS) library Same as original
The file references the Lightweight Directory Access Protocol (LDAP) Same as original
The file modifies the Registry Same as original
The file references the Security Account Manager (SAM) Same as original
The file references the Clipboard Same as original
The file references the installation of Hooks Same as original
The file enumerates the list of running processes Same as original
The file references the Service Control Manager (SCM) Same as original
The file references the Reflective DLL Library injection technique Same as original
The file references the Windows Indexing engine Same as original
The file enumerates the list of loaded modules Same as original
The file references the Desktop window Same as original
The file references the Router Administration API Same as original
The file references the Mail (MAPI) API Same as original
The file references the Microsoft Identity Manager Same as original
The file references the Windows Socket (winsock) API Same as original
The file references the Internet Protocol Helper API Same as original
The file references libraries at runtime Same as original
The file spawns another process Same as original
The file references the Microsoft Digest Access API Same as original
The file references the Windows Cryptographic Primitives API Same as original
The file references the Local Security Authority Server (LSASS) Same as original
The file references the Local Security Authority (LSA) Same as original
The file references the Internet Explorer Zone Manager Same as original
The file references the Credential Manager User API Same as original
The file references the Windows Setup API Same as original
The file references the Windows Cryptographic API Same as original
The file references the Windows Debug Helper API Same as original
The file references the Windows IP Helper API Same as original
The file references the Power Profile Helper API Same as original
The file references the Multiple Provider Router (MPR) API Same as original
The file references the File Transfer Protocol (FTP) API Same as original
The file references users credentials Same as original
The file references the resources of an executable Same as original
The file enumerates files Same as original
The file references the Backup API Same as original
The file references the Global Atom Table Same as original
The file creates or modifies file(s) Same as original
The file references the Remote Access Service (RAS) API Same as original
The file references the Performance Counters Same as original
The file references the Event Log Same as original
The file references the system Power Same as original
The file references the HTML Help Control Same as original
The file queries for Processes and Modules Same as original
The file references Pipes Same as original
The file references the Console Same as original
The file references the Tasks Scheduler Same as original
The file references the Windows Management Instrumentation (WMI) Same as original
The file downloads bits from the Internet and save them to a file Same as original
The file references the Windows default safe DLL search path Same as original
The file references a Printer Driver Same as original
The file references Dynamic Data Exchange (DDE) Same as original
The file enumerates the list of registered windows Same as original
The file references Function(s) callback executed when the program exits Same as original
The file transfers control to a Debugger Same as original
The file references the AutoIt scripting Engine Same as original
The file references Microsoft the Setup Interface (MSI) Same as original
The file references Microsoft Detour to trojanize other executable Same as original
The file references the Domain Name System (DNS) API Same as original
The file references temporary file(s) Same as original
The file references the WLAN interface Same as original
The file references the Environment variables Same as original
The file references a Control Panel Application callback Same as original
The file monitors Registry operations Same as original
The file references the passwords of Internet Explorer Same as original
The file references the DHCP Client Service Same as original
The file references the NetBIOS or the DNS name of the local computer Same as original
The file references the Windows Internet (WinINet) library Same as original
The file references data on a Socket Same as original
The file references the Internet Explorer (IE) server Same as original
The file logs the Internet Explorer (IE) hits Same as original
The file synthesizes Mouse motion and Buttons clicks Same as original
The file references the protection of the Virtual Address space Same as original
The file references the RPC Network Data Representation (NDR) Engine Same as original
The file references the Windows Software Quality Metrics (SQM) Same as original
The file references the Event Tracing for Windows (ETW) framework Same as original
The file inserts itself in the chain of the Clipboard Listeners Same as original
The file references the Open Database Connectivity (ODBC) installer Same as original
The file references the Single-Instance Store (SIS) backup framework Same as original
The file installs a Device or a Driver Same as original
The file references the ODBC Driver Tracing mechanism Same as original
The file references Bitlocker Same as original
The file registers itself as a boot Driver Same as original
The file walks up and records the stack information Same as original
The file references the Windows Scripting Host (WSH) engine Same as original
The file references the Console Based Script Host engine Same as original
The file references the HTML Application Host engine Same as original
The file references the VB Scripting Encoder/Decoder engine Same as original
The file references the Java Scripting Encoder/Decoder engine Same as original
The file references the Windows File Protection (WFP) Same as original
The file simulates the Keyboard Same as original
The file references the Multimedia Class Scheduler service (MMCSS) Same as original
The file references the Group Policy (GP) Same as original
The file references a communications device Same as original
The file monitors a communications device Same as original
The file references the local Running Object Table (ROT) Same as original
The file references the Human Interface Devices (HID) Protocol Same as original
The file references Simple Mail Transfer Protocol (SMTP) Same as original
The file references the Internet Control Message Protocol (ICMP) Same as original
The file fingerprints Antivirus or monitoring tools Same as original
The file references the Windows network Capture Library Same as original
The file references Microsoft Office Same as original
The file enumerates Network resources Same as original
The file references Alternate Data Stream (ADS) Same as original
The file fingerprints Web browsers Same as original
The file fingerprints Sandboxes Same as original
The file fingerprints Email clients Same as original
The file references the Firefox API Same as original
The file references the Shim Engine Same as original
The file references the Windows Address Book (WAB) Same as original
The file references the Recycle Bin Same as original
The file references the Volume Shadow Administration (vssadmin) tool Same as original
The file references the Windows Scripting runtime Same as original
The file references the gzip compression library Same as original
The file enumerates the list of running threads Same as original
The file enumerates the list of mounted folders Same as original
The file installs an Exception Handler Same as original
The file enumerates the existing Logon sessions Same as original
The file enumerates the Display devices on the computer Same as original
The file enumerates the Display monitors on the computer Same as original
The file enumerates the cache of Internet Explorer Same as original
The file references zLibDll, an open source ZLIB compression library Same as original
The file references the Security Management API Same as original
The file references the Authorization API Same as original
The file references the Registry API Same as original
The file references the Memory Management API Same as original
The file references the Tool Help API Same as original
The file references the Backup API Same as original
The file references the Event Logging API Same as original
The file references the Event Tracing API Same as original
The file references the Error Handling API Same as original
The file references the Directory Management API Same as original
The file references the Debugging API Same as original
The file references the Console API Same as original
The file references the ImageHlp API Same as original
The file references the COM API Same as original
The file references the System Information API Same as original
The file references the Package Query API Same as original
The file references the Setup API Same as original
The file references the Structured Storage API Same as original
The file references the Dynamic Data Exchange Management Library (DDEML) API Same as original
The file references the Clipboard API Same as original
The file references the WinINet API Same as original
The file references the Dynamic-Link Library API Same as original
The file references the Process and Thread API Same as original
The file references the WinHttp API Same as original
The file references the (Zw) Native API Same as original
The file references the (Rtl) Native API Same as original
The file references the (Nt) Native API Same as original
The file references the DHCP Server Management API Same as original
The file references the Network Management API Same as original
The file references the DNS API Same as original
The file references the Mailslot API Same as original
The file references the RPC API Same as original
The file references the Structured Exception Handling (SEH) API Same as original
The file references the Service API Same as original
The file references the File Management API Same as original
The file references the Video Capture API Same as original
The file references the Cabinet API Same as original
The file references the Single-Instance Store (SIS) Backup API Same as original
The file references the Performance Counters API Same as original
The file references the Atom API Same as original
The file references the Device Management API Same as original
The file references the Remote Access Service Custom Scripting API Same as original
The file references the WinSNMP API Same as original
The file references the Router Information API Same as original
The file references the Network Data Representation (Ndr) API Same as original
The file references the Power Management API Same as original
The file references the Remote Desktop API Same as original
The file references the WLAN API Same as original
The file references the SNMP API Same as original
The file references the WinDbgExt API Same as original
The file references the DDE API Same as original
The file references a Directory Notification watcher Same as original
The file enumerates files on a FTP server Same as original
The file references Meterpreter service Same as original

Summary

What we support:

  • Use customizable xml files (same as the original)
  • Checking for (up to) 185 APIs and features which are referenced or implemented by the PE file
  • Checking for blacklisted imports, resources and patterns (signature of packers)
  • Extraction of all strings in the file and check against blacklisted strings
  • XML and JSON output
  • Interactive mode on command line
  • Various command line options to specify the output
  • Show TLS callbacks
  • Show relocations
  • Check file against yara rules
  • Extract resources and save them in a file in order to allow further analysis (the analysis is not implemented)

Main missing features:

  • Extracting resources and analyzing them further
  • 131 of 176 Indicators are not implemented