| Easy Crackme For Beginners |
Build this code. Inject the outputted .dll file into the crackme .exe program. You can use any injector like Process Hacker, Extreme Injector or your own, it's up to you. This code is using MinHook, you can modify it if you're using some other Hooking Library like Microsoft Detours or whatever. After you successfully injected the .dll into the program, you can enter anything to the input! It should always say "helal bro"
HMODULE mainexe{};
uintptr_t ABS(uintptr_t off) { return (uintptr_t)mainexe + off; }
/****************** HOOKS ********************/
/*
// byte_EB030 = 1
if ( (unsigned __int8)sub_2CBD0(&byte_EB030) )
{
v0 = sub_B5100(off_C23F0, "\n[!]yanlis key hadi yol al tekrar ac uygulamayi...");
((void (__fastcall *)(__int64))off_C2400)(v0);
ExitProcess(0);
}
translated:
if one of these:
x64dbg.exe
ida64.exe
cheatengine
Wireshark
ProcessHacker
exist, then close the program
*/
bool(__fastcall *sub_2CBD0)(int*);
bool __fastcall sub_2CBD0_h(int* a1)
{
if (*a1 == 1)
return false;
return sub_2CBD0(a1);
}
// v18 = 100 -> success
// v18 = 666 -> Error
/*
if ( (unsigned __int8)sub_2E8A0(v10) != 1 && *(_BYTE *)sub_A23B0(v10, 0LL) == 0xFE )
{
v18 = 666;
}
*/
void* (__fastcall *sub_2E8A0)(void*);
void* __fastcall sub_2E8A0_h(void* a1)
{
// called once only. its fine to return an absolute custom number with no checks!!
return (void*)1;
}
/*
v15 = sub_22560(v8, v9);
if ( v15 )
v18 = 100;
*/
bool(__fastcall* sub_22560)(void*, void*);
bool __fastcall sub_22560_h(void* a1, void* a2)
{
// called once only. its fine to return an absolute custom number with no checks!!
return true;
}
/****************** MAIN ********************/
void Backend::Main()
{
while (!(mainexe = GetModuleHandleA("kolaycrackme.exe")));
MH_Initialize();
// [OPTIONAL] disable Watchdog
// if you dont need this, uncomment line 82
HOOK(ABS(0x2CBD0), &sub_2CBD0_h, &sub_2CBD0);
// spoof input checker so that the code can continue to sub_22560
HOOK(ABS(0x2E8A0), &sub_2E8A0_h, &sub_2E8A0);
// main function to check if the input is valid or invalid.
HOOK(ABS(0x22560), &sub_22560_h, &sub_22560);
} |
2026-06-26 16:29 |
| Easy Crackme For Beginners |
For anybody that wants to bypass the debugger/decompiler running detection so that he can use it without being annoyed (lmao), hook this function here and return false when the value of the ptr is 1.
/*
// byte_EB030 = 1
if ( (unsigned __int8)sub_2CBD0(&byte_EB030) )
{
v0 = sub_B5100(off_C23F0, "\n[!]yanlis key hadi yol al tekrar ac uygulamayi...");
((void (__fastcall *)(__int64))off_C2400)(v0);
ExitProcess(0);
}
translated:
if one of these:
x64dbg.exe
ida64.exe
cheatengine
Wireshark
ProcessHacker
exist, then close the program
*/
bool(__fastcall *sub_2CBD0)(int*);
bool __fastcall sub_2CBD0_h(int* a1)
{
if (*a1 == 1)
return false;
return sub_2CBD0(a1);
} |
2026-06-26 16:19 |