Извлечение списка процессов из списка потоков планировщика Windows

Тема в разделе "WASM.WIN32", создана пользователем Leksey, 29 ноя 2006.

  1. Leksey

    Leksey New Member

    Публикаций:
    0
    Регистрация:
    29 ноя 2006
    Сообщения:
    33
    Вытащил из под XP список потоков - вроде даже похоже на правду, но не могу извлечь информацию об процессах:dntknw:
    В структуре _ETHREAD есть две ссылки на процесс:
    1. +0x220 ThreadsProcess : Ptr32 _EPROCESS
    2. in _KTHREAD +0x034 ApcState : _KAPC_STATE
    в _KAPC_STATE тоже есть ссылка на процесс, не пойму поччему их две.....
    Так вот пробовал обе. То есть пытался преобразовать содержимое полей в _EPROCESS и вытащить поля(по адресам для XP) , но что-то id явно не сходяться с реальными :dntknw:

    Может кто занимался такими вещами помогите plz
    кстати статью "Обнаружение скрытых процессов" я читал, возможно что то неправильно сделал...
     
  2. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    А сорс не смотрел? AFAIR там есть.
    PS: а pid ты смотришь по смещению 0x84?
     
  3. Leksey

    Leksey New Member

    Публикаций:
    0
    Регистрация:
    29 ноя 2006
    Сообщения:
    33
    Смотрел я, тока либо не до конца разобрался, либо там данные не извлекают из этих _EPROCESS. Собственно как делаю - беру к началу _ETHREAD(оно правильное - потоки правильно выводяться) прибавляю 0x220. Потом указатель к _EPROCESS и Id извлекаю :
    pr->id = *((unsigned int *)(eprocess + 0x84));

    Вот :-(

    И еще я процессы когда собираю(у разных потоков может быть один процесс) я процессы различаю по указателям, а не по Id. Так вот их количество не сходиится никак с реальным, то больше то меньше :dntknw: