.386 .model flat,stdcall option casemap:none include \masm32\include\windows.inc include \masm32\include\user32.inc include \masm32\include\kernel32.inc includelib \masm32\lib\user32.lib includelib \masm32\lib\kernel32.lib .data windowname db "Hi there :p",0 writebuf db 90h,90h,90h,90h,90h er_01 db "Blah Blah",0 ;just in case er_02 db "error...",0 ;same er_03 db "error",0 ;here too .data? hInstance dd ? windowhandle dd ? processid dd ? hProcess dd ? .code start: ;--> get the handle of our module invoke GetModuleHandle,NULL mov hInstance,eax ;-->CHECK IF PROCESS LAUNCHED BLAH BLAH invoke FindWindow,NULL,addr windowname test al,al jz eror_1 mov windowhandle,eax ;-->get the processid from the windowhandle invoke GetWindowThreadProcessId,windowhandle,addr processid ;--> finally open the process invoke OpenProcess,PROCESS_ALL_ACCESS,FALSE,processid test al,al mov hProcess,eax jz eror_3 ;-->Write process stuff here WRITEPROCESSMEMORY STUFF HERE invoke writeprocessmemory blah blah end start