Upon opening the file with PEview, several indicators tell us that this file is packed. The most obvious indicators are sections named UPX0
, UPX1
, and UPX2
—section names for UPX-packed malware. We could use PEiD to confirm the file’s packed nature, but it is not foolproof. Even if PEiD fails to identify the file as UPX-packed, notice the relatively small number of imports and that the first section, UPX0
, has a virtual size of 0x4000 but a raw data size of 0. UPX0
is the largest section, and it’s marked executable, so it’s probably where the original unpacked code belongs.
and running the following command:
upx -o newFilename -d originalFilename
The -d
option says decompress the file, and the -o
option specifies the output filename.
After unpacking, we look at the imports sections and the strings. The imports from kernel32.dll and msvcrt.dll are imported by nearly every program, so they tell us little about this specific program. The imports from wininet.dll tell us that this code connects to the Internet (InternetOpen
and InternetOpenURL
), and the import from advapi32.dll (CreateService
) tell us that the code creates a service. When we look at the strings, we see www.malwareanalysisbook.com
, which is probably the URL opened by InternetOpenURL
as well as by Malservice
, which could be the name of the service that is created.
We can’t be sure what this program is doing, but we’ve found some indicators to help search for this malware across a network.