Page 1 of 1
Hardware ID and Decoder
Posted: Sat Sep 12, 2015 11:03 pm
by drlai
Make a page on decoding VMProtect Hardware ID, API available (and implementation details) for those who need it.
https://helloacm.com/decode-hardware-id/
Also, a Win32 and Win64 Executable is available on that page for getting Hardware ID.
Re: Hardware ID and Decoder
Posted: Sun Oct 04, 2015 4:09 am
by zksxmk12
This is more JSON-friendly php code.
Code: Select all
<?php
$s = '';
if (isset($_GET['id']))
$s = $_GET['id'];
function DecodeHWID($id) {
$id = base64_decode(trim($id));
$sz = strlen($id);
if(($sz == 0) || ($sz % 4 != 0))
return false;
$r = array();
$ethernet_cnt = 0;
for ($i = 0; $i < $sz; $i += 4) {
$t1 = ord(substr($id, $i + 0, 1));
$t2 = ord(substr($id, $i + 1, 1));
$t3 = ord(substr($id, $i + 2, 1));
$t4 = ord(substr($id, $i + 3, 1));
$val = dechex($t4 * (2 << 23) + $t3 * (2 << 15) + $t2 * (2 << 7) + ($t1 & 0xFC));
switch ($t1 & 3) {
case 0: $r['CPU'] = $val; break;
case 1: $r['HOST'] = $val; break;
case 2: $r['ETHERNET' . $ethernet_cnt++] = $val; break;
case 3: $r['HDD'] = $val; break;
default:
return false;
}
}
return $r;
}
print json_encode(DecodeHWID($s));
?>
result of 'hwid.php?id=hCZq9LFrYUxyuC/qvmQjTcpr5NNqGt1WR5kzWw=='
Code: Select all
{"CPU":"f46a2684","HOST":"4c616bb0","ETHERNET0":"ea2fb870","ETHERNET1":"4d2364bc","ETHERNET2":"d3e46bc8","ETHERNET3":"56dd1a68","HDD":"5b339944"}
Re: Hardware ID and Decoder
Posted: Mon Oct 05, 2015 7:43 am
by drlai
Thank you, fixed.