#include <Windows.h>
#pragma comment(linker, "/SECTION:.text,RWE")
void show(void)
{
__asm
{
__declspec(align(4))
nop
nop
nop
nop
}
MessageBox(NULL, TEXT("OLOLO"), TEXT("KEK"), MB_OK);
__asm
{
nop
nop
nop
nop
}
}
PDWORD FindMarker(void *addr)
{
PDWORD ptr = (PDWORD)addr;
while (*ptr != 0x90909090)
ptr += 1;
return 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 *) = FindMarker;
StartMarker = f(show);
EndMarker = f(StartMarker + 1);
TCHAR buffer[127];
wsprintf(buffer, TEXT("%x, %x"), StartMarker, EndMarker);
MessageBox(NULL, buffer, NULL, MB_OK);
while (++StartMarker != EndMarker)
{
*StartMarker ^= 0xDEADCAFE;
}
show();
}
I2luY2x1ZGUgPFdpbmRvd3MuaD4KCiNwcmFnbWEgY29tbWVudChsaW5rZXIsICIvU0VDVElPTjoudGV4dCxSV0UiKQoKCnZvaWQgc2hvdyh2b2lkKQp7CgkgX19hc20KCXsKCQkgX19kZWNsc3BlYyhhbGlnbig0KSkKCQlub3AKCQlub3AKCQlub3AKCQlub3AKCX0KCU1lc3NhZ2VCb3goTlVMTCwgVEVYVCgiT0xPTE8iKSwgVEVYVCgiS0VLIiksIE1CX09LKTsKCV9fYXNtCgl7CgkJbm9wCgkJbm9wCgkJbm9wCgkJbm9wCgl9Cn0KClBEV09SRCBGaW5kTWFya2VyKHZvaWQgKmFkZHIpCnsKCVBEV09SRCBwdHIgPSAoUERXT1JEKWFkZHI7Cgl3aGlsZSAoKnB0ciAhPSAweDkwOTA5MDkwKQoJCXB0ciArPSAxOwoJcmV0dXJuIHB0cjsKfQoKaW50IFdJTkFQSSBXaW5NYWluKEhJTlNUQU5DRSBoSW5zdCwgSElOU1RBTkNFIGhQcmV2SW5zdCwgTFBTVFIgbHBDbWRMaW5lLCBpbnQgbkNtZFNob3cpCnsKCVBEV09SRCBTdGFydE1hcmtlciA9IDAsIEVuZE1hcmtlciA9IDA7CglIQU5ETEUgaEZpbGUgPSBOVUxMOwoJSEFORExFIGhGaWxlTWFwcGluZyA9IE5VTEw7CglMUFZPSUQgbHBNYXBWaWV3ID0gTlVMTDsKCglQRFdPUkQoKnZvbGF0aWxlIGYpKHZvaWQgKikgPSBGaW5kTWFya2VyOwoKCVN0YXJ0TWFya2VyID0gZihzaG93KTsKCUVuZE1hcmtlciA9IGYoU3RhcnRNYXJrZXIgKyAxKTsKCglUQ0hBUiBidWZmZXJbMTI3XTsKCXdzcHJpbnRmKGJ1ZmZlciwgVEVYVCgiJXgsICV4IiksIFN0YXJ0TWFya2VyLCBFbmRNYXJrZXIpOwoJTWVzc2FnZUJveChOVUxMLCBidWZmZXIsIE5VTEwsIE1CX09LKTsKCgl3aGlsZSAoKytTdGFydE1hcmtlciAhPSBFbmRNYXJrZXIpCgl7CgkJKlN0YXJ0TWFya2VyIF49IDB4REVBRENBRkU7Cgl9CglzaG93KCk7Cn0=