CYBER THREAT ALLIANCE // ANALYSIS OF THE CRYPTOWALL VERSION 3 THREAT 
<31>
It continues to create a subfolder using the last 16 hexadecimal digits obtained from the victim’s MD5 
key. These characters are rearranged using the same algorithm seen previously in network communica-
tion. The following example demonstrates how this takes place:
md5_key = 4FC800B69404B0787F99753BBF7327E5
last_16_characters = 7F99753BBF7327E5 
>>> unmangle(last_16_characters)
‘23355777799BBEFF’
In the above example, this registry path would be created:
• HKCU\Software\4FC800B69404B0787F99753BBF7327E5\23355777799BBEFF\
The malware proceeds to query the following registry key, where [SID] is the SID of the user of the  
running process and [MD5 Key] is the unique MD5 key that was previously generated for the victim:
• HKU\[SID]\Software\[MD5 Key]\[char]k
In the above registry path, [char] is the lowercase representation of the third character in the [MD5 Key]. 
As mentioned previously, this key will be used to store the RSA public key provided by the remote server. 
However, as this key has yet to be requested, it is currently empty. 
CW3 continues to query these three registry keys:
• HKU\[SID]\Software\[MD5 Key]\[char]u
• HKU\[SID]\Software\[MD5 Key]\[char]r
• HKU\[SID]\Software\[MD5 Key]\[char]v
The chart below provides both an explanation of the [char] character and a description of what registry 
keys will contain.
If these registry keys are not found, the malware will proceed to make HTTP requests to its C2 servers 
in order to obtain an RSA public key, TOR onion URL, and unique victim identifier. Please refer to the 
“Network Communication” section of this report for further details. Once this data is obtained and the 
MD5 hash of this key is confirmed with the remote server, the malware will obtain a PNG file from the 
remote server. After all of this data has been obtained, it will proceed to decompress embedded HTML 
data using the LZNT1 algorithm.
Key
[char] Character
Description
[char]u
3rd lowercase MD5 character
Stores HELP_DECRYPT.txt data
[char]r
4th lowercase MD5 character
Stores HELP_DECRYPT.html data
[char]v
5th lowercase MD5 character
Stores HELP_DECRYPT.url data
Convert pdf file to powerpoint presentation - C# Create PDF from PowerPoint Library to convert pptx, ppt to PDF in C#.net, ASP.NET MVC, WinForms, WPF
Online C# Tutorial for Creating PDF from Microsoft PowerPoint Presentation
pdf to ppt converter online; changing pdf to powerpoint file
Convert pdf file to powerpoint presentation - VB.NET Create PDF from PowerPoint Library to convert pptx, ppt to PDF in vb.net, ASP.NET MVC, WinForms, WPF
VB.NET Tutorial for Export PDF file from Microsoft Office PowerPoint
how to convert pdf into powerpoint presentation; convert pdf into ppt online
CYBER THREAT ALLIANCE // ANALYSIS OF THE CRYPTOWALL VERSION 3 THREAT 
<32>
FIGURE 16   Decompression of stored data. Source: Cyber Threat Alliance
CW3 provides multiple copies of this decompressed data in various languages. 
FIGURE 17   Decompressed data in various languages. Source: Cyber Threat Alliance
French
English
German
Spanish
Italian
VB.NET PowerPoint: Use PowerPoint SDK to Create, Load and Save PPT
NET method and sample code in this part will teach you how to create a fully customized blank PowerPoint file by using the smart PowerPoint presentation control
and paste pdf to powerpoint; convert pdf to powerpoint presentation
C# PDF Text Extract Library: extract text content from PDF file in
But sometimes, we need to extract or fetch text content from source PDF document file for word processing, presentation and desktop publishing applications.
pdf to ppt converter online for large; adding pdf to powerpoint slide
CYBER THREAT ALLIANCE // ANALYSIS OF THE CRYPTOWALL VERSION 3 THREAT 
<33>
The malware proceeds to store this data, along with the RSA public key, in the previously mentioned 
registry keys.
CW3 continues to import the RSA public key via calls to these APIs:
• CryptStringToBinaryA
• CryptDecodeObjectEx
• CryptImportPublicKeyInfo
FIGURE 18   Registry keys storing CW3 data. Source: Cyber Threat Alliance
C# Create PDF from OpenOffice to convert odt, odp files to PDF in
Note: When you get the error "Could not load file or assembly 'RasterEdge.Imaging. Basic' or any How to Use C#.NET Demo Code to Convert ODT to PDF in C#.NET
convert pdf to powerpoint using; pdf into powerpoint
VB.NET PowerPoint: Sort and Reorder PowerPoint Slides by Using VB.
you can choose to show your PPT presentation in inverted clip art or screenshot to PowerPoint document slide & profession imaging controls, PDF document, image
how to convert pdf to powerpoint slides; how to change pdf to powerpoint slides
CYBER THREAT ALLIANCE // ANALYSIS OF THE CRYPTOWALL VERSION 3 THREAT 
<34>
The imported RSA pubic key is then hashed using the MD5 algorithm. As mentioned previously, this value 
is sent back to the remote server in order to confirm the correct key is being used. 
At this stage, the malware will begin iterating through files on the file system in order to encrypt them. It 
begins by obtaining a list of all logical drives on the victim machine, via a call to GetLogicalDriveStringsW. 
In the event a drive is found to be a CD-ROM, it will be ignored.
FIGURE 19   CW3 encryption. Source: Cyber Threat Alliance
VB.NET PowerPoint: Merge and Split PowerPoint Document(s) with PPT
documents and save the created new file in the sample code in VB.NET to finish PowerPoint document splitting If you want to see more PDF processing functions
convert pdf to powerpoint; pdf conversion to powerpoint
VB.NET Create PDF from OpenOffice to convert odt, odp files to PDF
1odt.pdf"). How to VB.NET: Convert ODP to PDF. This code sample is able to convert ODP file to PDF document. ' odp convert
add pdf to powerpoint slide; how to add pdf to powerpoint presentation
CYBER THREAT ALLIANCE // ANALYSIS OF THE CRYPTOWALL VERSION 3 THREAT 
<35>
FIGURE 21   Obfuscation of blacklisted directories. Source: Cyber Threat Alliance
A new thread is spawned for each logical drive. This thread is responsible for the encryption of files 
located at the specified root path. Files are searched via calls to FindFirstFileW and FindNextFileW. In 
the event a directory is found during the search, it will be compared with a blacklist of folder names, 
represented via CRC32 hashes. 
A C header file containing this enumeration can be downloaded here. The full list of blacklisted folders is 
as follows:
• .
• ..
• windows
• temp
• cache
• temporary internet files
• webcache
• inetcache
• sample picture
• default pictures
• sample music
• sample videos
• program files
• program files(x86)
• nvidia
• games
• user account pictures
• packages
FIGURE 20   Comparison of logical drive against CD-ROM. Source: Cyber Threat Alliance
VB.NET PowerPoint: VB Codes to Create Linear and 2D Barcodes on
PowerPoint PDF 417 barcode library is a mature and Install and integrate our PowerPoint PLANET barcode creating to achieve PLANET barcode drawing on PPT file.
convert pdf to powerpoint online for; changing pdf to powerpoint
How to C#: Overview of Using XDoc.Windows Viewer
Generally speaking, you can use this .NET document imaging SDK to load, markup, convert, print, scan image and document. Support File Types. PDF.
how to convert pdf to powerpoint on; adding pdf to powerpoint
CYBER THREAT ALLIANCE // ANALYSIS OF THE CRYPTOWALL VERSION 3 THREAT 
<36>
FIGURE 22   Obfuscation of blacklisted filenames. Source: Cyber Threat Alliance
In the event a file is found while searching the file system, CW3 will compare the filename against a list 
of names, represented via their CRC32 hashes. Should the filename match against this list, it is ignored. 
FIGURE 23   Obfuscation of whitelisted file extensions. Source: Cyber Threat Alliance
A C header file containing this enumeration can be downloaded here. A partial list of identified blacklist-
ed files is as follows:
After the check against the filename blacklist, the malware proceeds to look at the extension of the file 
in question. It is compared to a list of file extensions, represented via their CRC32 hashes. Should the 
extension not be found in this list, it is ignored.
• thumbs.db
• iconcache.db
• help_decrypt.txt
• help_decrypt.html
• help_decrypt.url
• help_decrypt.png 
CYBER THREAT ALLIANCE // ANALYSIS OF THE CRYPTOWALL VERSION 3 THREAT 
<37>
.3dm
.3ds
.3fr
.3g2
.3gp
.3pr
.7z
.ab4
.accdb
.accde
.accdr
.accdt
.ach
.acr
.act
.adb
.agdl
.ai
.ait
.al
.apj
.arw
.asf
.asm
.asp
.asx
.avi
.awg
.back
.backup
.backupdb
.bak
.bank
.bay
.bdb
.bgt
.bik
.bkp
.blend
.bpw
.c
.cdf
.cdr
.cdr3
.cdr4
.cdr5
.cdr6
.cdrw
.cdx
.ce2
.cer
.cfp
.cgm
.cib
.class
.cls
.cpi
.cpp
.cr2
.craw
.crt
.crw
.cs
.csh
.csl
.csv
.dac
.db
.db_journal
.db3
.dbf
.dc2
.dcr
.ddd
.ddoc
.ddrw
.dds
.der
.des
.design
.dgc
.djvu
.dng
.doc
.docm
.docx
.dot
.dotx
.drf
.drw
.dtd
.dwg
.dxb
.dxf
.dxg
.eml
.eps
.erbsql
.erf
.exf
.fdb
.ffd
.fff
.fh
.fhd
.fla
.flac
.fpx
.fxg
.gray
.grey
.gry
.h
.hbk
.hpp
.ibank
.ibd
.ibz
.idx
.iif
.iiq
.incpas
.indd
.java
.jpe
.jpeg
.jpg
.kc2
.kdbx
.kdc
.key
.kpdx
.lua
.m
.m4v
.max
.mdb
.mdc
.mdf
.mef
.mfw
.mmw
.moneywell
.mos
.mp3
.mp4
.mpg
.mrw
.myd
.nd
.ndd
.nef
.nk2
.nop
.nrw
.ns2
.ns3
.ns4
.nsd
.nsf
.nsg
.nsh
.nwb
.nx2
.nxl
.nyf
.obj
.ods
.p7c
.r3d
.mov
.flv
.wav
.dcs
.cmt
.ce1
.odb
.odc
.odf
.odg
.odm
.odp
.ads
.odt
.oil
.orf
.otg
.oth
.otp
.ots
.ott
.p12
.p7b
.pages
.pas
.pat
.pcd
.pct
.pdb
.pdd
.pdf
.pef
.pem
.pfx
.php
.pl
.plus_muhd
.plc
.pot
.potm
.potx
.ppam
.pps
.ppsm
.ppsx
.ppt
.pptm
.pptx
.prf
.ps
.psafe3
.psd
.pspimage
.ptx
.py
.qba
.qbb
.qbm
.qbr
.qbw
.qbx
.qby
.raf
.rar
.rat
.raw
.rdb
.rm
.rtf
.rw2
.rwl
.rwz
.s3db
.sas7bdat
.say
.sd0
.sda
.sdf
.sldm
.sldx
.sql
.sqlite
.sqlite3
.sqlitedb
.sr2
.srf
.srt
.srw
.st4
.st5
.st6
.st7
.st8
.stc
.std
.sti
.stw
.stx
.svg
.swf
.sxc
.sxd
.sxg
.sxi
.sxm
.sxw
.tex
.tga
.thm
.tlg
.txt
.vob
.wallet
.wb2
.wmv
.wpd
.wps
.x11
.x3f
.xis
.xla
.xlam
.xlk
.xlm
.xlr
.xls
.xlsb
.xlsm
.xlsx
.xlt
.xltm
.xltx
.xlw
.ycbcra
.yuv
.zip
A C header file containing this enumeration can be downloaded here. 
A partial list of identified blacklisted files is as follows:
CYBER THREAT ALLIANCE // ANALYSIS OF THE CRYPTOWALL VERSION 3 THREAT 
<38>
When a file that is to be encrypted is identified, the malware begins by setting the file’s attributes to 
FILE_ATTRIBUTE_ARCHIVE via a call to SetFileAttributesW. From the MSDN documentation, the FILE_
ATTRIBUTE_ARCHIVE value is used to mark files for backup or removal. CW3 proceeds to create a file 
handle to the file to be encrypted with the desired access of FILE_ALL_ACCESS. 
The malware continues to get time stamp information for the original file before encryption occurs. This 
data will be used to overwrite the time stamp information of the encrypted file after encryption takes 
place.
A new file handle is created for a file with the same name as the file to be encrypted, with a randomly 
generated three-character file extension, such as:
Original File:  
C:\file.txt
New File:  
C:\file.txt.g0o
This newly created file will store the encrypted contents of the original file. 
Using calls to CryptGenKey, CryptGetParam, and CryptExportKey, the malware will generate a unique 
256-byte AES key. This key will be used to encrypt any targeted files on the victim machine. This 256-
byte key is encrypted using the RSA public key provided by the remote server earlier. The 16-byte MD5 
hash of the RSA public key is written to the first 16 bytes of the newly generated file path. Subsequently, 
the 256-byte encrypted AES key is written to this file. Finally, the malware will encrypt the data of the 
original file and write this data to the new file. This new file’s contents will now look as follows.
FIGURE 24   Encrypted file layout. Source: Cyber Threat Alliance. Source: Cyber Threat Alliance
MD5 Key of RSA Public Key
Encrypted AES256 Key
Encrypted Data
CYBER THREAT ALLIANCE // ANALYSIS OF THE CRYPTOWALL VERSION 3 THREAT 
<39>
After this file has been generated, the malware will overwrite the original file using a call to MoveFileExW.
The time stamp information of this file is then set to the previously retrieved values from the original file 
using a call to SetFileTime. 
Once this file has been successfully encrypted, the malware will add to its total count of encrypted files. 
It proceeds to set the following registry key:
• 
-
ume Serial]
In writing these registry keys, CW3 is able to keep track of which files have already been encrypted by 
the malware. 
After all identified files in a particular folder have been encrypted, the malware will proceed to write the 
following files to this directory:
• HELP_DECRYPT.TXT
• HELP_DECRYPT.PNG
• HELP_DECRYPT.HTML
• HELP_DECRYPT.URL
In the event the malware identifies that the folder in question is the Desktop folder, it will not write the 
HELP_DECRYPT* files. This is likely to prevent the victim from discovering that the malware is running, 
prior to encryption completing. 
After all files of interest have been encrypted, the malware will query the number of values in this regis-
try key:
• HKCU\Software\[MD5 Key]\[Unmangled Last 16 Characters]
This is performed via a call to ZwQueryKey with an argument of KeyFullInformation supplied. The re-
sulting KEY_FULL_INFORMATION structure has its Values member read in order to obtain the number of 
entries. This value indicates the number of files that have been encrypted by CW3. It will be used in the 
final HTTP request in order to notify the remote server that encryption was successful and to provide 
the total number of encrypted files. 
However, before this HTTP request takes place, the malware will write the HELP_DECRYPT* files to the 
victim’s Desktop. After these files have been written, the malware will open these files via a series of 
calls to ShellExecuteW.
CYBER THREAT ALLIANCE // ANALYSIS OF THE CRYPTOWALL VERSION 3 THREAT 
<40>
FIGURE 26   Victim notification of CW3 infection (PNG). Source: Cyber Threat Alliance
FIGURE 25   Victim notification of CW3 infection (HTML). Source: Cyber Threat Alliance
Documents you may be interested
Documents you may be interested