c# pdf library free : Metadata in pdf documents software application dll windows winforms web page web forms thesis_v1.64-part222

samples using encryption were incorrectly marked as false negatives. Based on the result of 
the analysis, the report marks the file as benign, suspicious or malicious. Only files exploiting 
known vulnerabilities are marked as malicious. Not all vulnerabilities are correctly identified 
(ie. CVE-2009-4324), but files containing these are still marked as suspicious due to presence 
of obfuscated JavaScript and shellcode. The tool also integrates shellcode analyzer shellzer, 
which generates a list of API functions called by the shellcode and identifies URLs fetched at 
run-time. However, this extended shellcode analysis functionality seems to be disabled at the 
moment, at least for the publicly available service.
Figure 3.9: Wepawet – sample report
3.2.7 PDF Examiner
PDF Examiner is a proprietary analysis tool developed by Malware Tracker. Free online 
version   is   available   at  http://www.malwaretracker.com/pdfexaminer.php
. As   the  name 
suggests, it specializes on analysis of PDF documents. 
Uploaded files are dissected, objects are decoded, decrypted and the result is saved in 
the form of report. Compared to the other reviewed online tools, PDF Examiner allows 
manual analysis of the elements inside the file. The user interface consists of two main 
panels. The one on the left side displays a list of all objects in the PDF, the one on the right 
contents of currently selected item from this list. It is also possible to download deobfuscated 
content of objects as a file. The document information section contains basic statistics and a 
41
Metadata in pdf documents - add, remove, update PDF metadata in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Allow C# Developers to Read, Add, Edit, Update and Delete PDF Metadata
google search pdf metadata; edit pdf metadata online
Metadata in pdf documents - VB.NET PDF metadata library: add, remove, update PDF metadata in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Enable VB.NET Users to Read, Write, Edit, Delete and Update PDF Document Metadata
pdf xmp metadata editor; batch edit pdf metadata
list of detected exploits or suspicious uses of obfuscation techniques. Vulnerabilities were 
correctly identified by their CVE numbers for all tested samples. Beta OpenIOC link is 
generated for malicious PDF files. Figure 3.9 shows a sample report for a malicious PDF file.
The tool is capable of dealing with name and string object obfuscation, chain filters 
(supported   options   are  FlateDecode,   ASCIIHexDecode,   LZWDecode,   ASCII85Decode, 
RunLengthDecode, CCITTFaxDecode) and encryption (40+128 bit RC4, 128 bit AESV2 and 
256 bit AESV3). All tested samples were decrypted correctly. It can also automatically detect 
and remove common JavaScript obfuscation techniques.
Figure 3.9: PDF Examiner – sample report
3.2.8 PDF X-Ray
PDF X-Ray was originally a proprietary online tool developed by Brandon Dixon, hosted at 
http://pdfxray.com/
. Even though the service hasn't been online for several months, it still 
should be included in this survey because the author decided to release the source code the 
public. The tool is build on uses customized peepdf and PDF Tools functionality to parse 
documents and convert them into JSON objects. The objects are then stored in Mongo, a 
document-oriented NoSQL database.  The idea behind this approach is that the tool can base 
its detection not only on object size and names, but also on entropy and object similarity by 
comparing them to other malicious samples. 
42
C# PDF Library SDK to view, edit, convert, process PDF file for C#
NET empowers C# developers to implement fast and high quality PDF conversions to or from multiple supported images and documents. C#.NET: Edit PDF Metadata.
preview edit pdf metadata; adding metadata to pdf files
C# PDF Print Library: Print PDF documents in C#.net, ASP.NET
view, Annotate,Convert documents online using ASPX. NET rotate PDF pages, C#.NET search text in PDF, C#.NET edit PDF bookmark, C#.NET edit PDF metadata, C#.NET
change pdf metadata; delete metadata from pdf
Chapter 4
Application design
This chapter establishes a definition of a framework and describes the process of designing 
our web application.
4.1 Framework definition
Word framework is used often in computer programming. At the same time, there is no 
standardized or universally-agreed definition for it. Before starting the design process, it is 
important to establish a general notion of what a framework is and what we expect from it. 
In general, its purpose is to tie together otherwise discrete components in order to create 
more efficient or useful software or to make complex technologies easier to handle. As a side 
effect, it often introduces a level of methodology that innately forces the developer to adhere 
to  a concrete design approach. To make things  more clear  we can use the definition 
formulated by E. Gamma and other authors in the book Design Patterns [40]:
Framework is a skeleton of an application into which developers plug in their code and provides most 
of the common functionality.
What this means for the application developed as a part of this work, is that it should 
provide unified facilities for analysis of various formats of malicious documents. It should be 
extendable and customizable so that support for new document types  or new analysis 
methods can be added with ease. Therefore, the first step towards designing such framework 
is to examine how we go about analyzing suspicious documents and establish a proper 
workflow for this process.
4.2 Document analysis
Previous   chapters   described   all   the   fundamentals   necessary   to   understand   how 
vulnerabilities in PDF files come about and how malware authors exploit them. Before going 
into any detailed design, it should be clear how the process of analyzing a PDF document 
works. A lot of work in this area has originally been done by Didier Stevens. The tools he 
developed, along with his e-book on malicious document analysis, helped establish a solid 
foundation for general understanding of this process. 
The idea is to first triage documents by looking for typical signs of harmful content. 
This  includes combination of  automatic actions  and  JavaScript, Flash,  embedded files, 
vulnerable encodings or obfuscation techniques. In practice, this is a matter of performing a 
simple string search. This step could be performed manually, but since we need to account 
for name object obfuscation and potentially deal with large documents, it is faster and more 
convenient to use an automated tool for this step. It should be noted that even if this search 
finds a match, it does not necessarily mean the document is malicious. All the features of 
43
VB.NET PDF Print Library: Print PDF documents in vb.net, ASP.NET
view, Annotate,Convert documents online using ASPX. NET rotate PDF pages, C#.NET search text in PDF, C#.NET edit PDF bookmark, C#.NET edit PDF metadata, C#.NET
pdf metadata extract; search pdf metadata
C# PDF File Compress Library: Compress reduce PDF size in C#.net
compressing control is designed to offer C# developers to compress existing PDF documents in .NET Document and metadata. C#.NET DLLs: Compress PDF Document.
read pdf metadata java; change pdf metadata creation date
PDF language have their legitimate uses. So a positive match merely indicates that there is 
something worth investigating.
Second step is then to perform a followup analysis based on the initial scan. The goal 
at this stage is to go through all the suspicious elements and determine whether their use is 
valid or not. For instance, large block of obfuscated JavaScript inside an encrypted object or 
compressed stream is a telltale sign of malicious intent. Use of some sort of tool is necessary 
at this point to deal with PDF specific obfuscation. While we need to know when given object 
is encoded or encrypted, viewing data in unencrypted form serves little purpose. Moreover, 
decompression, decryption and decoding of objects is a repetitive task. Therefore, the process 
should be automated and seamless.
Final stage is then to extract any discovered JavaScript, Flash, shellcode or embedded 
files and analyze them. This task is no longer specific to document formats in general and we 
use tools appropriate for the job (deobfuscators and beautifiers for JavaScript, debuggers or 
emulators for shellcode).
Figure 4.1: Document analysis workflow
While the scope of this work is limited to PDF format, it should be possible to integrate 
support for analysis of other types of malicious documents found in the wild. In practice, the 
other often used  option among malware authors are the Microsoft Office formats – namely 
Word, Excel and Powerpoint. While these documents have vastly different internal structures 
compared to PDF files, the analysis process is very similar. Simple scripts can be used to scan 
the document for presence of generic shellcode patterns or Visual Basic macros. Further tools 
are then used to navigate through the inner contents of the  file and extract malicious 
elements for followup inspection. This translates into workflow that is identical to the one we 
already established for PDF files. Therefore, no additional changes are necessary.
4.3 Design and prototypes
First step towards designing an efficient application is determine what the user requirements 
are. The answer in our case is simple – the user trying to determine whether given document 
is malicious or not. This process is already described in detail in previous section, so the goal 
is to make sure it is translated well into the design. Moreover, it is important to ascertain that 
our  design doesn't conflict with the notion of an extensible framework. We  formulate 
following requirements:
44
VB.NET PDF File Merge Library: Merge, append PDF files in vb.net
VB.NET Guide and Sample Codes to Merge PDF Documents in VB.NET Project. Batch merge PDF documents in Visual Basic .NET class program.
bulk edit pdf metadata; add metadata to pdf programmatically
VB.NET PDF Library SDK to view, edit, convert, process PDF file
for .NET empowers VB.NET developers to implement fast and high quality PDF conversions to or from multiple supported images and documents. PDF Metadata Edit.
edit multiple pdf metadata; view pdf metadata
1. The result is a web application that allows the user to perform malicious document 
analysis.
2. Allow users to upload their documents and include a comment.
3. Preliminary scan functionality for PDF documents.
4. Enable the user to browse uploaded files.
5. Enable the user to view the contents of uploaded files.
6. In-depth analysis functionality for PDF documents that includes:
• view of object structure.
• removal of PDF obfuscation.
• view of contents of decoded objects.
• user alert functionality for suspicious elements.
• results displayed in form of report. 
• ability to access the analysis report later, or share it with others.
7. Comment system that allow users to attach comments to analysis reports.
8. Implementing  support  for  other  document  types   must be   simple  and  possible 
without making additional changes to the application.
To go with the requirement list, we also prepare short use case list:
1. User visits the index (upload) page, chooses a file he wishes to upload and attaches a comment  
if he so desires. User is taken to the file browser category with his uploaded file actively 
selected. User reviews quick scan results and file statistics and proceeds to view the report  
page by selecting the 'analyze' option. In the report page, user views file statistics, suspicious 
objects and inspects contents of relevant objects based on this information. User attaches a 
comment to the report.
2. User visits the index page and selects 'files' option to load a list of uploaded documents. 
Selecting 'view' option  opens new browser tab that shows the document's content and 
provides navigation tools.
3. User visits the index page and selects 'files' option to load a list of uploaded documents. User  
views file statistics and quick scan results by selecting them in the list. Selecting 'analyze' 
option takes the user to the report page of selected file. User views contents of the report, 
attached comments and leaves his own comment.
4. User visits the report page directly via a direct link to a report. He may view the contents of  
the report, attached comments and leave his own comment.
To minimize the number of clicks required to go through the analysis process, we can 
perform quick scan automatically right after the file is uploaded. The results can then be 
saved into database along with other metadata. A potential issue is performance of server-
side scripts for document analysis. Having the scripts generate HTML markup, saving it in a 
separate file and then displaying it on the report page ensures that we have to analyze each 
file only once. Subsequent user views  of the report page are  then a simple matter of 
displaying the report file. This also solves the issue of extensibility and each file type can use 
45
C# PDF File Merge Library: Merge, append PDF files in C#.net, ASP.
C#.NET PDF Library - Merge PDF Documents in C#.NET. Provide NET components for batch combining PDF documents in C#.NET class. Powerful
add metadata to pdf; clean pdf metadata
C# TIFF: TIFF Metadata Editor, How to Write & Read TIFF Metadata
Our .NET SDKs own the most advanced & comprehensive documents and images reading and has a mature imaging utility which allows Tiff image file metadata to be
online pdf metadata viewer; pdf metadata viewer online
its own appropriate report layout. Figure 4.1 shows the resulting application flow for the 
primary use case scenario. Additionally, the user should be able to navigate to the upload, 
file browser or report page at will. Accessing the report page directly without specifying a 
document hash in the URL should present the user with a search box.
Figure 4.2: Application flow
Based on use cases and requirements, we can create a series of mockups of the primary pages 
that the user sees when navigating  through the website. Mockups and wireframes are 
prototype models that are used to plan the layout of the user interface and relay the 
relationships between pages.
Main page is the default entry point for the application. At the same time it serves as the 
upload page. It contains navigation menu, an upload widget and a button that displays text 
area where user can attach a comment to his file. The two states of the upload page are 
shown in figure 4.3. On the left is the default state, on the right is the comment widget.
Figure 4.3: Upload page
Files browser page provides listing of all uploaded documents. Actively selected item displays 
details about the file in one column, list of suspicious elements in second column and two 
buttons that navigate to the report page or open the file in a viewer.
46
Figure 4.4: File browser page
Report page contains a direct link to the report that can be copied, content of the report itself 
and a comment section at the bottom of the page. For PDF files the report contains general 
information about the file, object structure and an interactive list of all objects. Selecting an 
object displays additional information about its content.
Figure 4.5: Report page
4.3.1 Database relations
The data is organized in two tables. Table uploads stores all the file metadata (name, type, 
47
size, md5 hash, time of upload and the file path), uploader's comment and quick scan results. 
Table  comments  stores the comment information (user's name, optional URL entry, user's 
email, comment text, timestamp). Since each comment has to be associated with a file, we 
add a foreign key that points to the primary key in the uploads table. The database structure 
is shown in figure 4.5. The files and reports are stored in the file system, not the database. 
Figure 4.6: Database tables and relations
4.3.2 Security concerns
Because the application processes, stores and displays user input, several security issues 
need to be addressed. Storing user input in a database opens a gateway for SQL injection 
attacks. All data must be validated for type, syntax and length. Any user data displayed in 
the browser must be safe to view in a browser. Displaying unsanitized user input may lead 
to   cross  site  scripting  attacks.   Uploaded   files  also   need   to  be   thoroughly   validated. 
Otherwise, an attacker could upload a server side scripts and have them executed by the 
application. Because we work with malicious files by design, they should not be stored in a 
web accessible location.
48
Chapter 5
Implementation
5.1 Used technologies
The standard web technologies used in development include HTML, CSS and a JavaScript 
framework for front-end development and a combination of PHP and MySQL for all the 
server-side data handling and storage. Full list of frameworks, plug-ins and scripts used is 
following:
• jQuery: is a free, open source JavaScript framework actively supported in multiple 
browsers (Firefox, Chrome, Internet Explorer, Safari, Opera). It is licensed under the 
MIT License. The library offers enhanced AJAX support and Document Object Model 
(DOM) element selection and manipulation. It also makes handling events and 
creating effects and animations on a website much easier. It is extensible via user 
made plug-ins and due to jQuery's popularity among web developers, there are 
thousands of them available on the Internet.
• Uploadify: is jQuery plugin that uses a combination of JavaScript, Flash and server-
side scripts to allow the user to upload single or multiple files to the server. It is open 
source software developed by Reactive Apps published under the MIT License. It is 
not to be confused with UploadiFive,  which is a commercial HTML5-based upload 
plug-in created by the same author.
• PDFiD:  is a PDF analysis tool written in Python that was already reviewed and 
described in detail in chapter three. It is simple and fast and therefore our tool of 
choice for preliminary analysis of PDF files.
• PDF X-Ray Lite:  is a Python command line tool developed by security researcher 
Brandon Dixon. The tool was released as a part of REMnux version 3, a trimmed-
down version of Ubuntu distribution designed to help analysts  reverse-engineer 
malicious software. As the name suggests it is a lightweight version of PDF X-Ray, 
which we reviewed in section 3.2.7. The main difference is that the back-end database 
support, API  and  reporting  functionality  have  been  removed.  The  tool  merely 
converts PDF documents into JSON format, attempts to remove any PDF specific 
obfuscation and saves select output into a file (a plain HTML document by default). 
This exactly fits our design and the script can be easily extended by custom code if we 
need to change or extend it's behavior.
• SWFTools: is a bundle of several utilities that allow the user to read, modify, combine 
or convert various other formats into Flash files.
49
5.2 Document root organization
This section describes how the files are organized within the web root directory and is their 
purpose. The PHP  files are all stored directly in the document root. Style sheets, images and 
JavaScript libraries each have their own sub-directories. Additionally, the PDFiD and PDF X-
Ray scripts are in the document folder and any required modules and libraries are stored in a 
separate sub-directory. This is mostly for development purposes and may work in low traffic 
situations. However, if the application was to be deployed live, the analysis scripts should be 
hosted on a separate server and executed via remote procedure calls (RPC). Following list 
describes how each of the pages designed in previous chapter is implemented:
Figure 5.1: Upload page layout
5.2.1 Upload page
Also serves as the entry point for the application. The navigation bar sliding functionality is 
implemented in menu_slider.js JavaScript file. The JavaScript component of the Uploadify 
plug-in is used to limit the file size, set allowed file types, prepare data to be sent to the 
server-script (user comment and security token) and tell the script where to look for various 
required  files (server-side PHP scripts, Flash uploader component and images). The server-
side   component  (upload-server-side.php)   is   then   responsible   for   saving   the   file   into 
designated upload directory, running a quick scan appropriate to the file type (PDFiD in case 
of PDF files), running a PDF scoring script and saving the results along with all the metadata 
into the database. It also converts a copy of the file the file into Flash and saves it in a web 
accessible folder. The layout of the page is shown in figure 5.1.
50
Documents you may be interested
Documents you may be interested