fanybupt
function GetSysFuncAddr(AFunc: Pointer): Integer;
begin
  asm
    mov eax, AFunc
    add eax, 2
    mov eax, [eax]
    mov eax, [eax]
    mov Result, eax
  end;
end;
 
procedure GetRemoteCommandLine(ABuf: PChar; APID: Integer);
var
         dwAddr, dwRead: DWORD;
  hProc: THandle;
begin
  dwAddr :=  GetSysFuncAddr(@GetCommandLine) + 7;
  dwAddr :=  $7dd75178 - dwAddr;
  dwAddr :=  $7dd70d2c - dwAddr;
  asm
    mov eax, dwAddr
    mov eax, [eax]
    add eax, 1
    mov eax, [eax]
    mov dwAddr, eax
  end;
  hProc := OpenProcess(PROCESS_VM_READ, False, APID);
  ReadProcessMemory(hProc, Pointer(dwAddr), @dwAddr, 4, dwRead);
  ReadProcessMemory(hProc, Pointer(dwAddr), ABuf, MAX_PATH, dwRead);
End;
 
procedure  test;
var
         buf: array [0..MAX_PATH] of Char;
begin
         GetRemoteCommandLine(@buf, 3556);
End;

分类:

技术点:

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-03-05
  • 2021-11-16
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-12-12
  • 2022-12-23
  • 2021-10-27
  • 2021-10-10
  • 2021-12-28
相关资源
相似解决方案