← Reports

Ransomware · Ransomworm · Worm

WannaCry - invoice_greenanimals.pdf.exe

Author
Moise Medici
Updated
15 Feb 2026 · Completed
Difficulty
Medium
Platform
Windows
Capabilities
Command and Control C2 CommunicationCommand Execution via Powershell Cmd BashFile EncryptionPersistence Mechanisms
Tags
C++WannaCryptor

Full Import Address Table

FunctionDLLAttack UsageDescriptionDocs
CryptAcquireContextAADVAPI32.dllRansomwareCryptAcquireContextA is used to acquire a handle to a particular key container within a particular cryptographic service provider (CSP)https://docs.microsoft.com/en-us/windows/win32/api/wincrypt/nf-wincrypt-cryptacquirecontexta
ioctlsocketWS2_32.dllInternetioctlsocket takes control of the I/O mode of a socket in any statehttps://docs.microsoft.com/en-us/windows/win32/api/winsock/nf-winsock-ioctlsocket
InternetOpenAWININET.dllInternetInternetOpenA is used to initialize the use of WinINet functions.https://docs.microsoft.com/en-us/windows/win32/api/wininet/nf-wininet-internetopenurla
InternetOpenUrlAWININET.dllInternetInternetOpenUrlA is used to open a resource specified by a complete FTP or HTTP URL.https://docs.microsoft.com/en-us/windows/win32/api/wininet/nf-wininet-internetopenurla
InternetCloseHandleWININET.dllInternetInternetCloseHandle is used to close an internet handle.https://docs.microsoft.com/en-us/windows/win32/api/wininet/nf-wininet-internetclosehandle
WaitForSingleObjectKERNEL32.dllInjectionEvasionWaitForSingleObject is used to delay the execution of an object. This function is commonly used to allow time for shellcode being executed within a thread to run. It is also used for time-based evasion.https://docs.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-waitforsingleobject
GetProcAddressKERNEL32.dllInjectionEvasionGetProcAddress is used to get the memory address of a function in a DLL. This is often used by malware for obfuscation and evasion purposes to avoid having to call the function directly.https://docs.microsoft.com/en-us/windows/win32/api/libloaderapi/nf-libloaderapi-getprocaddress
GetModuleHandleAKERNEL32.dllInjectionEvasionGetModuleHandleW is used to retrieve a module handle for the specified module. The module must have been loaded by the calling process. This function is often used along with GetProcAddress to dynamically retrieve the address of a function for evasion purposes.https://docs.microsoft.com/en-us/windows/win32/api/libloaderapi/nf-libloaderapi-getmodulehandlea
LocalAllocKERNEL32.dllInjectionLocalAlloc is used for heap allocation and manipulation.https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-localalloc
GlobalAllocKERNEL32.dllInjectionGlobalAlloc is used to allocate the specified number of bytes from the heap.https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-globalalloc
CreateFileAKERNEL32.dllHelperCreateFileA is used to create a new file or opens an existing file.https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilea
MoveFileExAKERNEL32.dllHelperMoveFileExA is used to move an existing file or a directory, including its children.https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-movefileexa
TerminateThreadKERNEL32.dllHelperTerminateThread is used to terminate a thread.https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-terminatethread
FindResourceAKERNEL32.dllHelperFindResourceA is used to find a resource in an executable or loaded DLL. Malware sometimes uses resources to store strings, configuration information, or other malicious files. If you see this function used, check for a .rsrc section in the malware’s PE header.https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-findresourcea
GetModuleFileNameAKERNEL32.dllHelperGetModuleFileNameA is used to return the filename of a module that is loaded in the current process. Malware can use this function to modify or copy files in the currently running process.https://docs.microsoft.com/en-us/windows/win32/api/libloaderapi/nf-libloaderapi-getmodulefilenamea
StartServiceCtrlDispatcherAADVAPI32.dllHelperStartServiceCtrlDispatcherA is used by a service to connect the main thread of the process to the service control manager.https://docs.microsoft.com/en-us/windows/win32/api/winsvc/nf-winsvc-startservicectrldispatchera
OpenSCManagerAADVAPI32.dllHelperOpenSCManagerA is used to open a handle to the service control manager. This function is commonly used when a malware intends to interact with a service.https://docs.microsoft.com/en-us/windows/win32/api/winsvc/nf-winsvc-openscmanagera
CreateServiceAADVAPI32.dllHelperCreateServiceA is used to create a service object and adds it to the specified service control manager database. This function is commonly used by malware for persistence.https://docs.microsoft.com/en-us/windows/win32/api/winsvc/nf-winsvc-createservicea
StartServiceAADVAPI32.dllHelperStartServiceA is used to start a service.https://docs.microsoft.com/en-us/windows/win32/api/winsvc/nf-winsvc-startservicea
OpenServiceAADVAPI32.dllHelperOpenServiceA is used to open an existing service.https://docs.microsoft.com/en-us/windows/win32/api/winsvc/nf-winsvc-openservicea
LockResourceKERNEL32.dllEvasionHelperLockResource is used with FindResource(), LoadResource() and SizeOfResource() usually to work with embedded executables into the .rsrc section (droppers)https://docs.microsoft.com/en-us/windows/win32/api/libloaderapi/nf-libloaderapi-lockresource
SleepKERNEL32.dllEvasionAnti-DebuggingSleep is used to suspend the execution of the current thread for a set time. This function is commonly used for time-based evasion by adding delays in the code.https://docs.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-sleep
LoadResourceKERNEL32.dllEvasionLoadResource is used to load a resource from a PE file into memory. Malware sometimes uses resources to store strings, configuration information, or other malicious files.https://docs.microsoft.com/en-us/windows/win32/api/libloaderapi/nf-libloaderapi-loadresource
GetCurrentThreadIdKERNEL32.dllEnumerationGetCurrentThreadId is used to retrieve the thread identifier of the calling thread.https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-getcurrentthreadid
GetCurrentThreadKERNEL32.dllEnumerationGetCurrentThread is used to retrieve a handle for the calling thread.https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-getcurrentthread
GetAdaptersInfoiphlpapi.dllEnumerationGetAdaptersInfo is used to obtain information about the network adapters on the system. This function is commonly used by malware for enumeration purposes.https://docs.microsoft.com/en-us/windows/win32/api/iphlpapi/nf-iphlpapi-getadaptersinfo
QueryPerformanceFrequencyKERNEL32.dllAnti-DebuggingQueryPerformanceFrequency is used to retrieve the frequency of the performance counter. This function is commonly used by malware for anti-debugging purposes. The malware will measure the time before and after an operation, if the time exceeds taken expected time, the malware will terminate or activate a benign function.https://docs.microsoft.com/en-us/windows/win32/api/profileapi/nf-profileapi-queryperformancefrequency
QueryPerformanceCounterKERNEL32.dllAnti-DebuggingQueryPerformanceCounter is used to retrieve the frequency of the performance counter. This function is commonly used by malware for anti-debugging purposes. The malware will measure the time before and after an operation, if the time exceeds taken expected time, the malware will terminate or activate a benign function.https://docs.microsoft.com/en-us/windows/win32/api/profileapi/nf-profileapi-queryperformancecounter
GetTickCountKERNEL32.dllAnti-DebuggingGetTickCount is used to retrieve the number of milliseconds since bootup. This function is used by malware for anti-debugging purposes.https://docs.microsoft.com/en-us/windows/win32/api/sysinfoapi/nf-sysinfoapi-gettickcount
InterlockedIncrementKERNEL32.dll
ReadFileKERNEL32.dll
GetFileSizeKERNEL32.dll
SizeofResourceKERNEL32.dll
GetModuleHandleWKERNEL32.dll
ExitProcessKERNEL32.dll
LocalFreeKERNEL32.dll
CloseHandleKERNEL32.dll
InterlockedDecrementKERNEL32.dll
EnterCriticalSectionKERNEL32.dll
LeaveCriticalSectionKERNEL32.dll
InitializeCriticalSectionKERNEL32.dll
GlobalFreeKERNEL32.dll
GetStartupInfoAKERNEL32.dll
RegisterServiceCtrlHandlerAADVAPI32.dll
ChangeServiceConfig2AADVAPI32.dll
SetServiceStatusADVAPI32.dll
CloseServiceHandleADVAPI32.dll
CryptGenRandomADVAPI32.dll
closesocketWS2_32.dll
recvWS2_32.dll
sendWS2_32.dll
htonlWS2_32.dll
ntohlWS2_32.dll
WSAStartupWS2_32.dll
inet_ntoaWS2_32.dll
selectWS2_32.dll
htonsWS2_32.dll
socketWS2_32.dll
connectWS2_32.dll
inet_addrWS2_32.dll
??1_Lockit@std@@QAE@XZMSVCP60.dll
??0_Lockit@std@@QAE@XZMSVCP60.dll
GetPerAdapterInfoiphlpapi.dll