информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Все любят медСетевые кракеры и правда о деле ЛевинаГде водятся OGRы
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[Win32] Как узнать полный путь до файла по PID ' у процесса (или нендлу) 28.11.01 09:25  Число просмотров: 1191
Автор: IgorR Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Под NT можно так:

HANDLE hProcess = OpenProcess( PROCESS_ALL_ACCESS, FALSE, processID );

if ( hProcess )
{
HMODULE hMod;
DWORD cbNeeded;

if ( EnumProcessModules( hProcess, &hMod, sizeof( hMod ), &cbNeeded ) )
{
GetModuleBaseName( hProcess, hMod, szProcessName, sizeof( szProcessName ) ); //Имя
GetModuleFileNameEx( hProcess, hMod, szPath, sizeof( szPath ) ); //Путь
wsprintf( szItemString, "%s (ID: %u, Path: %s)", szProcessName, processID, szPath );
}
<programming>
[Win32] Как узнать полный путь до файла по PID ' у процесса (или нендлу) 28.11.01 08:48  
Автор: dusha Статус: Незарегистрированный пользователь
<"чистая" ссылка>
[Win32] Как узнать полный путь до файла по PID ' у процесса (или нендлу) 28.11.01 09:25  
Автор: IgorR Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Под NT можно так:

HANDLE hProcess = OpenProcess( PROCESS_ALL_ACCESS, FALSE, processID );

if ( hProcess )
{
HMODULE hMod;
DWORD cbNeeded;

if ( EnumProcessModules( hProcess, &hMod, sizeof( hMod ), &cbNeeded ) )
{
GetModuleBaseName( hProcess, hMod, szProcessName, sizeof( szProcessName ) ); //Имя
GetModuleFileNameEx( hProcess, hMod, szPath, sizeof( szPath ) ); //Путь
wsprintf( szItemString, "%s (ID: %u, Path: %s)", szProcessName, processID, szPath );
}
[Win32] Как узнать полный путь до файла по PID ' у процесса (или нендлу) 01.12.01 19:22  
Автор: Dusha Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Все дело в том что не для всех процессов такой подход работает,
например для smss.exe не работает. У этих процессов просто нет Module
так что и хендл не получить. Надо как-то иначе.
А через ToolHelp функции я делал тоже фактически (преимущество то что для 9x и NT совместимо).

bool GetFullPath(DWORD  dwPID, TCHAR szFullPath[])
{
  bool      bRet;
  HANDLE      hModuleSnap = NULL; 
  MODULEENTRY32 me32        = {0}; 

    // Take a snapshot of all modules in the specified process. 
  
    hModuleSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwPID); 
    if (hModuleSnap == (HANDLE)-1) 
        return false; 

  me32.dwSize = sizeof(MODULEENTRY32); 

    if (Module32First(hModuleSnap, &me32)) 
    { 
    strcpy(szFullPath,me32.szExePath);
        bRet = true;   
    } 
    else 
        bRet = false;
 
    // Do not forget to clean up the snapshot object. 

    CloseHandle (hModuleSnap); 
  return bRet;
}

---
[Win32] Как узнать полный путь до файла по PID ' у процесса (или нендлу) 03.12.01 08:17  
Автор: IgorR Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Все дело в том что не для всех процессов такой подход
> работает,
> например для smss.exe не работает. У этих процессов просто
> нет Module
Как это? А вот в System32 загляни...
А ты под админом входишь? А еще б и дебужные привелегии неплохо бы иметь...
Путей нету только для System и Idle. Последний это вообще отдельный разговор, я по нему вопрос уже поднимал.
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach