Web
: http://mxb.cjb.net
Contact Me : [email protected] or [email protected]
Advanced ZIP Password Recovery 3.51
Type : Used to
recover lost love ...
Protection : ASProtect - Serial
Tech : Loader ...
Crack : In this release they have not implemented debugger checking ...
why ???
Enter fake S/N and in SICE BPX GETDLGITEMTEXTA ... TRACE ....
0x4171BD LEA EAX,[EBP-0100]
0x4171C3 CALL 416D0D.......................MAIN CHECK
0x4171C8 TEST EAX.EAX
0x4171CA JZ 4A203
So BPMB 416D0D X and then restart the program ....when we pop up trace ...back....
0x416EF9 CALL 416D0D
0x416EFE LEAVE.......................HERE MAKE EAX = 01 .... TO CRACK
0x416EFF RET
So we will patch inside CALL 416D0D
0x416D18 CALL 426C50
...............................
0x416D22 JGE 416D2B
0x416D24 XOR EAX,EAX
0x416D26 JMP 416E23 | E9 F8 00 00 00
.............................
0x416E1E MOV EAX,00000001
0x416E23 LEAVE
Crack : 0x416D26 JMP 416E1E | E9 F3 00 00 00......this patch makes a small bug
in the program as same algo
is used by program in other places ....
Patch : Make a simple loader ....
//=========================Proc Patch ===============================
//gl_force.cpp
//MxB
//***********************************
//email : [email protected]
//web : http://mxb.cjb.net
//***********************************
//===================================================================
#include <windows.h>
//===================================================================
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,
LPSTR lpCmdLine,int nShowCmd)
{
STARTUPINFO si;
char InfoText[] = "MxB - AZPR 3.51";
unsigned long i = 0;
unsigned long AddressOfPatch = 0x00416D27;
char DataRead[2] = {0};
char* cl;
PROCESS_INFORMATION pi;
char FileName[] = "Azpr.exe";
//============================================================
//Patch Data
char scanbyte1 = 0xF8;
char scanbyte2 = 0x00;
//============================================================
ZeroMemory(&si,sizeof(si));
si.cb = sizeof(si);
cl = GetCommandLine();
if (CreateProcess(FileName, cl, NULL, NULL,FALSE,
NORMAL_PRIORITY_CLASS,NULL, NULL, &si, &pi))
{
//=====================================================
//=====================================================
//Patch
ReadProcessMemory(pi.hProcess, (LPVOID) AddressOfPatch,
DataRead, 2, NULL);
for(;DataRead[0] != scanbyte1;)
{
ReadProcessMemory(pi.hProcess, (LPVOID) AddressOfPatch,
DataRead, 2, NULL);
}
//=======================================================
if(DataRead[0] == scanbyte1 && DataRead[1] == scanbyte2)
{
Sleep(300); //Wait for ASProtect to Check Mem
//===================================================
WriteProcessMemory (pi. hProcess,
(LPVOID) AddressOfPatch,
"\xF3\x00", 2, NULL);
//====================================================
//Remeove Patch
Sleep(5000);
WriteProcessMemory (pi. hProcess,
(LPVOID) AddressOfPatch,
"\xF8\x00", 2, NULL);
//===================================================
}
//========================================================
CloseHandle (pi.hProcess);
CloseHandle (pi.hThread);
}
else
{
MessageBox(NULL,"Unable to load program..exiting..",InfoText,MB_OK);
return 0;
}
MessageBox(NULL,"Program Loaded...",InfoText,MB_OK);
return 0;
}
//===================================================================