Code:
#include <windows.h>
/*
_____ _ _ _ _ ___
| __ \ | | | | | \ | | |__ \
| |__) |_ __ ___ | |__ | | ___ _ __ ___ | \| | _____ __ ___ _ __ ) |
| ___/| '__/ _ \| '_ \| |/ _ \ '_ ` _ \ | . ` |/ _ \ \/ // _ \| '_ \ / /
| | | | | (_) | |_) | | __/ | | | | | | |\ | __/> <| (_) | | | |_|
|_| |_| \___/|_.__/|_|\___|_| |_| |_| |_| \_|\___/_/\_\\___/|_| |_(_)
*/
HWND myDialog;
HWND editBox;
void SendConsoleCommand(char *pCommand)
{
__asm
{
PUSH pCommand;
MOV ECX,DWORD PTR DS:[38979524h];
MOV EDX,DWORD PTR DS:[ECX];
MOV EAX,DWORD PTR DS:[EDX+1Ch];
CALL EAX;
}
}
void conHandler(void)
{
MSG msg;
while(!GetModuleHandle("engine.dll"))
{
Sleep(100);
}
Sleep(1000);
DWORD dwOld;
VirtualProtect((void*)0x4204B452, 1, PAGE_EXECUTE_READWRITE, &dwOld);
*(char*)0x4204B452 = '\x75';
myDialog = CreateWindowEx(0, WC_DIALOG,"Problem Nexon?",WS_OVERLAPPEDWINDOW | WS_VISIBLE, 400,100,600,60,NULL,NULL,NULL,NULL );
editBox = CreateWindow( "edit", "",
WS_VISIBLE|WS_CHILD,
0, 0, 580, 20, myDialog, (HMENU)158, 0, NULL);
while(1)
{
if(PeekMessage(&msg,NULL,0,0,PM_REMOVE))
{
if(msg.hwnd == editBox && msg.message == WM_KEYDOWN && msg.wParam == VK_RETURN)
{
int len = GetWindowTextLength(editBox);
char *tmp = new char[len+1];
GetWindowText(editBox, tmp, len+1);
SendConsoleCommand(tmp);
SetWindowText(editBox, "");
delete tmp;
}
TranslateMessage(&msg);
DispatchMessage(&msg);
}
Sleep(1);
}
}
BOOL APIENTRY DllMain(HMODULE hDll, DWORD dwReason, LPVOID lpReserved)
{
switch(dwReason)
{
case DLL_PROCESS_ATTACH:
CreateThread(0, 0, (LPTHREAD_START_ROUTINE)conHandler, 0, 0, 0);
break;
}
return TRUE;
}