Based on Safengine Licensor with the combination of:
- Safengine Code Protection (Mutation & Virtualization)
- Safengine Licensor Local License Verification
All protection options enabled:
- Anti Debug
- Anti Trace
- Anti Virtualization
- Anti Attach
- Anti Dump
- Anti API Hooks
- Self Integrity Check
- Code & Data Encryption
- Metamorphic Code Generation
- Branch Obfuscation
- Code Mutation
- Code Virtualization
- Advanced Code Replace
- Import Elimination
- API Relocation
Try to unpack it.
Enjoy! ; )
所有保护选项
享受 ! ; )
#include <stdio.h>
#include <windows.h>
#include "resource.h"
#include "SESDK.h"
#include "blowfish.c"
/*-------------------------------------------------------------*/
/* */
/*-------------------------------------------------------------*/
HINSTANCE hInst;
#define MAXINPUTLEN 200
/*-------------------------------------------------------------*/
/* */
/*-------------------------------------------------------------*/
BOOL CALLBACK MainDlg (HWND, UINT, WPARAM, LPARAM) ;
BOOL CheckSerial( HWND) ;
/*-------------------------------------------------------------*/
/* WinMain - */
/*-------------------------------------------------------------*/
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
hInst=hInstance;
DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_MAINDLG), NULL, (DLGPROC)MainDlg,0);
return 0;
}
/*-------------------------------------------------------------*/
/* MainDlg - */
/*-------------------------------------------------------------*/
BOOL CALLBACK MainDlg(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_CLOSE:
EndDialog(hDlg,0);
break;
case WM_COMMAND:
switch (LOWORD(wParam))
{
case IDC_Check:
CheckSerial(hDlg);
break;
case IDC_Exit:
PostQuitMessage(0);
}
break;
case WM_INITDIALOG:
SendMessage(hDlg,WM_SETICON,(WPARAM) 1,(LPARAM) LoadIconA(hInst,MAKEINTRESOURCE(IDI_ICON)));
break;
}
return 0;
}
BOOL CheckSerial(HWND hWnd)
{
TCHAR szWaterMark[]="coded by cnbragon belong to iNsidE PaNdoRa's BoX and Reverse Code Team";
BLOWFISH_CTX context;
long lsLength;
int i;
TCHAR szCipher[MAXINPUTLEN]={0};
TCHAR szBuffer[MAXINPUTLEN]={0};
TCHAR szSerial[MAXINPUTLEN]={0};
BYTE bf_key[MAXINPUTLEN]={0};
DWORD xL,xR,dwVolumeSn,dwXor;
SE_PROTECT_START_ULTRA();
xL=xR=dwVolumeSn=dwXor=0;
lsLength=GetDlgItemText(hWnd,IDC_Serial,szSerial,sizeof(szSerial)/sizeof(TCHAR)+1);
if (lsLength!=32)
{
SetDlgItemText(hWnd,IDC_Serial,"Wrong Serial!");
return FALSE;
}
for (i=0;i<16;i++)
{
sscanf((szSerial+i*2),"%02X",(szBuffer+i));
}
memcpy(bf_key,szBuffer,8);
Blowfish_Init(&context,bf_key,8);
xL=*(DWORD*)(&szBuffer[8]);
xR=*(DWORD*)(&szBuffer[12]);
Blowfish_Decrypt(&context,&xL,&xR);
dwXor=xL^xR;
memset(&context,0,sizeof(BLOWFISH_CTX));
GetVolumeInformation("C:\\",NULL,0,&dwVolumeSn,NULL,NULL,NULL,0);
if (dwXor==dwVolumeSn)
{
SetDlgItemText(hWnd,IDC_Serial,"Success!");
}
else
{
SetDlgItemText(hWnd,IDC_Serial,"Wrong Serial!");
return FALSE;
}
SE_PROTECT_END();
return TRUE;
}
-
Recommended Comments