Practical Malware Analysis Notes
Interesting Things
- In the stack, local variables are below EDP (subtractions), while function parameters are above (additions)
- Check in the PE header the “VirtualSize” and “SizeOfRawData” for missmatch
- In x86, rep opcodes repeat an instruction (on EDI and ESI, which both increase at each step) unitl ECX is 0
Basic Static
The main checklist of things to do:
- Hash things and check if they match
- Multivendor AV Scan (VirusTotal)
- Check Strings, UNICODE and ASCII
- Check Dependencies. DLLs, imports, exports [Dependency Walker]
- Check PE header
- Check Resources [ResourceHacker]
Basic Dynamic
First get a VM and secure it, then run the program (if DLL, use rundll32.exe)
- Use Sandbox and get reports
- Monitors [Procmon, Filemon, Regmon]
- Check what is what. Verify for process replacement and check if documents launch processes [ProcessExplorer]
- Check Dependencies (again). [DependencyWalker]
- Check Registry [RegShot]
- Network basics [ApateDNS, NetCat, WireShark, INetSim]