[C++]Protect DLL based HWID


Dalam tutorial kali ini saya akan memberitahu bagaimana menggunakan proteksi berdasarkan HWID.
Jalankan file “Get Hardware Identifier.exe” lalu akan muncul angka HWID komputer anda.

Dan ini kode untuk memanfaatkan HWID untuk memproteksi DLL

01// coded by drache
02// modified by rcd
03#include <windows.h>
04//include header dari protector
05//#include "ThemidaSDK.h"
06 
07UCHAR
08szFileSys[255],
09szVolNameBuff[255];
10 
11DWORD
12dwMFL,
13dwSysFlags,
14dwSerial;
15 
16#define My_HWID (1289182852)
17 
18VOID CheckValidHardwareID()
19{
20                /* WEAK POINT */
21                /*
22                 LAKUKAN PERLINDUNGAN TERHADAP FUNGSI CheckValidHardwareID()
23                 karena jika CheckValidHardwareID() di patch dengan RET maka CheckValidHardwareID()
24                 tidak akan dipanggil dan dll berjalan tanpa pengecekan HWID !
25                 kamu bisa gunakan CodeVirtualizer, Themida Code Replace, atau Enigma Protector untuk melindungi fungsi CheckValidHardwareID()
26                */
27        //CODEREPLACE_START // CODE REPLACE EXAMPLE
28        //VIRTUALIZER_START // VIRTUALIZER EXAMPLE
29        //#include "vm_begin.inc" // ENIGMA PROTECTOR EXAMPLE
30        GetVolumeInformation("C:\\",(LPTSTR)szVolNameBuff,255,&dwSerial, &dwMFL,&dwSysFlags,(LPTSTR)szFileSys,255);
31        if (dwSerial == My_HWID) // Lakukan perbandingan dengan hwid yang baru diambil dengan My_HWID
32        {
33                MessageBox(0,"VALID HARDWARE ID","INFORMATION",MB_OK | MB_ICONINFORMATION);
34                // Serial valid
35        }
36        else // Jika serial tersebut tidak cocok
37        {
38                MessageBox(0,"VALID HARDWARE ID","INFORMATION",MB_OK | MB_ICONERROR);
39                ExitProcess(1); // Force Exit
40                // Invalid Serial
41        }
42        //CODEREPLACE_END // CODE REPLACE EXAMPLE
43        //VIRTUALIZER_END // VIRTUALIZER EXAMPLE
44        //#include "vm_end.inc" // ENIGMA PROTECTOR EXAMPLE
45}
46BOOL WINAPI DllMain ( HMODULE hDll, DWORD dwReason, LPVOID lpReserved )
47{
48        if (dwReason == DLL_PROCESS_ATTACH)
49        {
50                DisableThreadLibraryCalls(hDll);
51        //CODEREPLACE_START // CODE REPLACE EXAMPLE
52        //VIRTUALIZER_START // VIRTUALIZER EXAMPLE
53        //#include "vm_begin.inc" // ENIGMA PROTECTOR EXAMPLE
54                /* WEAK POINT */
55                /*
56                 LAKUKAN PERLINDUNGAN TERHADAP PEMANGGILAN FUNGSI CheckValidHardwareID()
57                 karena jika CheckValidHardwareID() di patch dengan RET maka CheckValidHardwareID()
58                 tidak akan dipanggil dan dll berjalan tanpa pengecekan HWID !
59                 kamu bisa gunakan CodeVirtualizer, Themida Code Replace untuk melindungi fungsi CheckValidHardwareID()
60                */
61                CheckValidHardwareID();
62        //CODEREPLACE_END // CODE REPLACE EXAMPLE
63        //VIRTUALIZER_END // VIRTUALIZER EXAMPLE
64        //#include "vm_end.inc" // ENIGMA PROTECTOR EXAMPLE
65        }
66        return TRUE;
67}
Perlu diperhatikan bahwa function CheckValidHardware() harus anda proteksi dengan aplikasi protector (Themida, Virtualizer, dll..) agar tidak mudah dibypass
VirusTotal
HardwareIDProject.zip
Get Hardware Identifier.zip

Komentar

Postingan Populer