1. Pascal / Говнокод #13651

    +141

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    function GetProcessUser(aPID: Cardinal; var aResult: string): Boolean;
    type
      PTOKEN_USER = ^TOKEN_USER; 
    
      _TOKEN_USER = record
        User: TSidAndAttributes;
      end;
    
      TOKEN_USER = _TOKEN_USER;
    var
      cbBuf: Cardinal;
      ptiUser: PTOKEN_USER;
      snu: SID_NAME_USE;
      hToken, hProcess: THandle;
      UserSize, DomainSize: Cardinal;
      bSuccess: Boolean;
      sUser, sDomain: string;
    begin
      Result := False;
      hProcess := OpenProcess(PROCESS_QUERY_INFORMATION, False, aPID);
      if hProcess <> 0 then
      begin
        if OpenProcessToken(hProcess, TOKEN_QUERY, hToken) then
        begin
          bSuccess := GetTokenInformation(hToken, TokenUser, nil, 0, cbBuf);
          ptiUser := nil;
          while (not bSuccess) and (GetLastError = ERROR_INSUFFICIENT_BUFFER) do
          begin
            ReallocMem(ptiUser, cbBuf);
            bSuccess := GetTokenInformation(hToken, TokenUser, ptiUser, cbBuf, cbBuf);
          end;
          CloseHandle(hToken);
    
          if not bSuccess then

    Убило название. Дальше можете не читать.

    http://www.programmersforum.ru/showthread.php?t=242541

    Запостил: Stertor, 23 Августа 2013

    Комментарии (5) RSS

    • Да уж... http://www.poluchizachet.ru
      Ответить
      • Не заебался еще спамить, я твою маму ебал?
        Ответить
    • Я что-то не пойму. Это же для винды? Не для линя?
      Ответить
      • > OpenProcess
        > CloseHandle
        > GetTokenInformation
        Хардкорнейшее и чистейшее винапи, какой еще линь?
        Ответить
        • Тут просто PID, SID и я как-то растерялся... Тфу... с GID перепутал.
          Ответить

    Добавить комментарий