Dnguard Hvm — Unpacker

Assume you have a legitimate copy of a DNGuard-HVM-protected binary you are analyzing.

Because of these features, DNGuard HVM is widely used in commercial software, game cheats, license validators, and enterprise applications. Dnguard Hvm Unpacker


Before (HVM-protected method in dnSpy):

protected void Login(string user, string pass)
// Token: 0x06000123
    HVM.Runtime.Execute(0x1A2B, new object[]  user, pass );

After unpacking:

protected void Login(string user, string pass)
if (user == "admin" && pass == Secure.Decode("..."))
MessageBox.Show("Welcome");
else
MessageBox.Show("Invalid");

Search memory for the characteristic pattern of an HVM interpreter: Assume you have a legitimate copy of a

Modern Dnguard obfuscates this loop by: