#include <Windows.h>
#pragma comment(linker, "/SECTION:.text,RWE")
void show(void)
{
__asm
{
_emit 0xEB
_emit 0x04
nop
nop
nop
nop
}
MessageBox(NULL, TEXT("OLOLO"), TEXT("KEK"), MB_OK);
CreateMutex(NULL, TRUE, NULL);
MessageBox(NULL, TEXT("OLOLO"), TEXT("KEK"), MB_OK);
__asm
{
_emit 0xEB
_emit 0x04
nop
nop
nop
nop
}
}
PDWORD FindMarker(void *addr, DWORD dwMarker)
{
PBYTE ptr = (PBYTE)addr;
while ((*(DWORD *)ptr) != dwMarker)
ptr++;
return (PDWORD)ptr;
}
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nCmdShow)
{
PDWORD StartMarker = 0, EndMarker = 0;
HANDLE hFile = NULL;
HANDLE hFileMapping = NULL;
LPVOID lpMapView = NULL;
PDWORD(* volatile f)(void *, DWORD) = FindMarker;
StartMarker = f(show, 0x90909090);
EndMarker = f(StartMarker + 1, 0x90909090);
TCHAR buffer[127];
wsprintf(buffer, TEXT("%x, %x, %x"), StartMarker, EndMarker, (EndMarker - StartMarker) * sizeof(DWORD));
MessageBox(NULL, buffer, NULL, MB_OK);
while (StartMarker < EndMarker)
{
*++StartMarker ^= 0xDEADCAFE;
}
show();
}
I2luY2x1ZGUgPFdpbmRvd3MuaD4KCiNwcmFnbWEgY29tbWVudChsaW5rZXIsICIvU0VDVElPTjoudGV4dCxSV0UiKQoKCnZvaWQgc2hvdyh2b2lkKQp7CgkgX19hc20KCXsKCQlfZW1pdCAweEVCCgkJX2VtaXQgMHgwNAoJCW5vcAoJCW5vcAoJCW5vcAoJCW5vcAoJfQoJTWVzc2FnZUJveChOVUxMLCBURVhUKCJPTE9MTyIpLCBURVhUKCJLRUsiKSwgTUJfT0spOwoJQ3JlYXRlTXV0ZXgoTlVMTCwgVFJVRSwgTlVMTCk7CglNZXNzYWdlQm94KE5VTEwsIFRFWFQoIk9MT0xPIiksIFRFWFQoIktFSyIpLCBNQl9PSyk7CglfX2FzbQoJewoJCV9lbWl0IDB4RUIKCQlfZW1pdCAweDA0CgkJbm9wCgkJbm9wCgkJbm9wCgkJbm9wCgl9Cn0KClBEV09SRCBGaW5kTWFya2VyKHZvaWQgKmFkZHIsIERXT1JEIGR3TWFya2VyKQp7CglQQllURSBwdHIgPSAoUEJZVEUpYWRkcjsKCXdoaWxlICgoKihEV09SRCAqKXB0cikgIT0gZHdNYXJrZXIpCgkJcHRyKys7CglyZXR1cm4gKFBEV09SRClwdHI7Cn0KCmludCBXSU5BUEkgV2luTWFpbihISU5TVEFOQ0UgaEluc3QsIEhJTlNUQU5DRSBoUHJldkluc3QsIExQU1RSIGxwQ21kTGluZSwgaW50IG5DbWRTaG93KQp7CglQRFdPUkQgU3RhcnRNYXJrZXIgPSAwLCBFbmRNYXJrZXIgPSAwOwoJSEFORExFIGhGaWxlID0gTlVMTDsKCUhBTkRMRSBoRmlsZU1hcHBpbmcgPSBOVUxMOwoJTFBWT0lEIGxwTWFwVmlldyA9IE5VTEw7CgoJUERXT1JEKCogdm9sYXRpbGUgZikodm9pZCAqLCBEV09SRCkgPSBGaW5kTWFya2VyOwoKCVN0YXJ0TWFya2VyID0gZihzaG93LCAweDkwOTA5MDkwKTsKCUVuZE1hcmtlciA9IGYoU3RhcnRNYXJrZXIgKyAxLCAweDkwOTA5MDkwKTsKCglUQ0hBUiBidWZmZXJbMTI3XTsKCXdzcHJpbnRmKGJ1ZmZlciwgVEVYVCgiJXgsICV4LCAleCIpLCBTdGFydE1hcmtlciwgRW5kTWFya2VyLCAoRW5kTWFya2VyIC0gU3RhcnRNYXJrZXIpICogc2l6ZW9mKERXT1JEKSk7CglNZXNzYWdlQm94KE5VTEwsIGJ1ZmZlciwgTlVMTCwgTUJfT0spOwoKCXdoaWxlIChTdGFydE1hcmtlciA8IEVuZE1hcmtlcikKCXsKCQkqKytTdGFydE1hcmtlciBePSAweERFQURDQUZFOwoJfQoJc2hvdygpOwp9