How to Unpack VMProtect Tutorial - no virtualization

Subscribers:
178,000
Published on ● Video Link: https://www.youtube.com/watch?v=aoa89Khfgr0



Category:
Tutorial
Duration: 12:33
32,672 views
0


Learn to unpack VMProtect tutorial, teaching you how to unpack a binary which is packed using VMProtect. This binary was created without the virtualization part of VMProtect.

Zero2Auto 10% Coupon Code = "GUIDEDHACKING"
https://courses.zero2auto.com/?coupon=GUIDEDHACKING
^Automatically applied with the link above^

This was originally a 1 hour unpacking tutorial but we broke it down into smaller parts for easier viewing in our How to Unpack Malware tutorial series.
A packer is a piece of software which obfuscates the original binary on disk, they started as very simple programs which just did a simple xor against the original bytes. The original code would be replaced with a stub, and the stub would xor the original binary, map it into memory and then execute the original code. In this way, static analysis is impossible. But in this How to Unpack tutorial series you will learn the ins and outs of unpacking binaries, including malware samples. Unpacking malware is something as a malware analyst you would have to do quite frequently, as almost all malware uses packers to evade antivirus detection. While packers have become increasing complicated over the years, unpacking them still follows the same steps and has the same goal. The point of unpacking a binary is to enable static analysis, once you have dumped the original binary to disk, you can begin to reverse engineer it..

Complete Playlist: https://www.youtube.com/playlist?list=PLt9cUwGw6CYGfoSL9PUlpKi23z0_R2gz-

Discussion: https://guidedhacking.com/threads/how-to-unpack-vmprotect-tutorial.16719/

In this How to Unpack Tutorial you will learn how to unpack a VMProtect protected binary. VMProtect is a cryptor or packer which compresses, obfuscates & protects programs, you use it if you want stop people from reversing engineering your software. VMProtect works on all versions of Windows and can support any executables, DLLs, drivers, OCX and other executable file types. It is a complete solution, offering much more than the basic features of a packer and it is highly customizable. Customization options include, different mutations, virtualization, memory protection, import hiding, resource protection, file packing, debugger detection, detection of virtualization tools such as VMBox etc..., it even offers license management and more. It can be quite annoying when a file you want to reverse engineer it packed with VMProtect, most people will typically just give up as soon as they see VMP PE sections.

But let's talk about this VMProtect packed file and how to unpack it. When we first open the file, it's clearly packed because the main function calls 1 function, and this main function can't be analyzed by IDA, the stack pointer analysis fails, which typically means it's packed. After following some jumps/calls we finally find a function which pushes a value onto the stack and them immediately returns, indicating the return will cause execution to flow to the address that was just pushed onto the stack. At this point, we know where the REAL unpacking should begin. So we move onto dynamic analysis and breakpoint that address. After following through the code we are looking for more calls or jmps to some sort of unpacking loop. That doesn't seem to get us anywhere so we start break pointing VirtualAllocate() & VirtualProtect(). And we do get a break on VirtualProtect and a loop which indicates setting up memory for the unpacked code. After following this for a bit, we do find some strings from the unpacked binary, so it's clear the decryption of the binary has completed and the loading of it has either just begin or ended. After stepping through a ton of code we eventually find something that looks like an entrypoint So we breakpoint the main function of unpacked binary to see if it's finished unpacking. Once we confirmed we have found our original entry point we breakpoint it and open up Scylla, correctly indicate the OEP and we see if we can fix the import table, typically if that works, you know you're good to go. Regardless we're pretty sure we found it, after dumping we open it in IDA and if the IDA analysis looks good, then we know we've made a good dump, and we're done!

Malware Hashes (MD5 - all on VirusBay):
Ammyy: 7fb83e646cbabc50bec4b33c8130b5ae
ASPack: 9cc1b039aa8e4a98da3c390fdacc414c
PECompact: ad8cd029b32568830c8304f6075bb805
Ramnit: 6ee3d4e6b9cec67165e90f7ee7c9c33b
VMProtect: a39b4f74b5108a2b9f1a33b2feb22cc5

Support us on Patreon: http://bit.ly/38mnveC
Donate on our Forum : http://bit.ly/2HkOco9

Follow us on Facebook : http://bit.ly/2vvHfhk
Follow us on Twitter : http://bit.ly/3bC7J1i
Follow us on Twitch : http://bit.ly/39ywOZ2
Follow us on Reddit : http://bit.ly/3bvOB57
Follow us on GitHub : http://bit.ly/2HoNXIS
Follow us on Instagram : http://bit.ly/2SoDOlu
#MalwareAnalysis #VMProtect #vmp







Tags:
how to unpack vmprotect
vmprotect tutorial
vmprotect unpacking
vmprotect unpacking tutorial
how to un pack vmprotect
vmprotect
unpacking tutorial
how to unpack
vmprotect packer
vm protect
how to unpack vm protect
malware analysis
how to unpack a file
vmprotect unpack
vmprotect crack
unpacking vmprotect v3
how to unpack vmprotect 3
unpacking malware tutorial