Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program CSDC; uses windows;
- {$R CSDC.res}
- var
- hProcess:integer=0;
- dwSize:integer = 0;
- lpParameter:pointer=0;
- dwThreadId:dword;
- G_R : Pchar = 'G-R.dll';
- function shell(const cmd:string):integer;
- var
- PInf:TProcessInformation;
- SInf:TStartupInfo;
- begin
- FillChar(SInf,sizeof(SInf),0); SInf.wShowWindow := 1;
- SInf.cb := sizeof(SInf);
- CreateProcess(nil, pchar(cmd), nil, nil,
- false, $20, nil, nil, Sinf, PInf);
- // WaitForSingleObject(PInf.hProcess, Infinite);
- // CloseHandle(PInf.hProcess);
- result := PInf.hProcess;//: THandle;
- end;
- var
- lpAddress:pointer;
- hMod:hmodule;
- dw:dword;
- Name: array[0..255] of Char;
- begin
- hProcess:=shell('cstrike.exe');
- hMod := GetModuleHandle('kernel32.dll');
- lpAddress := GetProcAddress(hMod, 'LoadLibraryA');
- dwSize:=GetModuleFileName(0, Name, SizeOf(Name));
- Name[dwSize - 1] := 'l';
- Name[dwSize - 2] := 'l';
- Name[dwSize - 3] := 'd';
- lpParameter := VirtualAllocEx(hProcess, 0, dwSize, $3000, $40);
- WriteProcessMemory(hProcess, lpParameter, @Name, dwSize, dw);
- CreateRemoteThread(hProcess, 0, 0, lpAddress, lpParameter, 0, dw)
- end.
Advertisement
Add Comment
Please, Sign In to add comment