[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 |
07 | UCHAR |
08 | szFileSys[255], |
09 | szVolNameBuff[255]; |
10 |
11 | DWORD |
12 | dwMFL, |
13 | dwSysFlags, |
14 | dwSerial; |
15 |
16 | #define My_HWID (1289182852) |
17 |
18 | VOID 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 | } |
46 | BOOL 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 | } |
VirusTotal
HardwareIDProject.zip
Get Hardware Identifier.zip
Komentar
Posting Komentar