Сейчас на форуме: hgdagon, asfa, bartolomeo (+4 невидимых)

 eXeL@B —› Программирование —› Можно ли получить список тредов процесса?
Посл.ответ Сообщение


Ранг: 120.9 (ветеран), 5thx
Активность: 0.080
Статус: Участник
Programmer and reverser

Создано: 22 января 2007 12:37
· Личное сообщение · #1

И если это можно сделать, то как?

-----
Уважайте других и пишите грамотно.





Ранг: 283.6 (наставник), 56thx
Активность: 0.130
Статус: Участник
Author of GeTaOEP

Создано: 22 января 2007 13:08 · Поправил: DillerInc
· Личное сообщение · #2

Ситуация:
* мы -- удалённый код в чужом процессе
Код:
*

.data

; > Структуры
te32 THREADENTRY32 <?>

; > Дескрипторы
hSnap dd 0
pID dd 0
tID dd 0

.code

; /************************************ GetMainThreadHandle *************************************/
; Получение описателя(handle) главного потока исследуемого процесса
;
GetMainThreadHandle proc
mov te32.dwSize, type THREADENTRY32
; /* Получение идентификатора процесса */
call GetCurrentProcessId
mov pID, eax
; /* Снятие слепка всех потоков системы */
push 0
push TH32CS_SNAPTHREAD
call CreateToolHelp32Snapshot
mov hSnap, eax
push offset te32
push eax
call Thread32First
@@thread_loop:
push offset te32
push hSnap
call Thread32Next
test eax, eax
jz @@quit
; /* Проверка: принадлежит ли найденный поток исследуемому процессу */
mov eax, dword ptr te32.th32OwnerProcessID
cmp eax, pID
jnz @@thread_loop
; /* Если принадлежит,то полагаемся на то,что ПЕРВЫЙ проверяемый поток,относящийся к процессу, */
; /* есть ГЛАВНЫЙ поток процесса /*
mov eax, dword ptr te32.th32ThreadID
mov tID, eax
; /* Получение описателя найденного потока */
push eax
push 0
push THREAD_ALL_ACCESS
call OpenThread
jmp @@ret
@@quit:
xor eax, eax
@@ret:
ret
GetMainThreadHandle endp


Здесь я получал описатель только главного потока исследуемого процесса,а ты можешь изменить так,чтобы получать все описатели.

-----
the Power of Reversing team





Ранг: 120.9 (ветеран), 5thx
Активность: 0.080
Статус: Участник
Programmer and reverser

Создано: 22 января 2007 13:46
· Личное сообщение · #3

DillerInc
спасибо

-----
Уважайте других и пишите грамотно.




Ранг: 186.8 (ветеран)
Активность: 0.040
Статус: Участник

Создано: 23 января 2007 09:03
· Личное сообщение · #4

NtQuerySystemInformation рулит=)




Ранг: 240.5 (наставник)
Активность: 0.190
Статус: Участник
Author of ACKiller

Создано: 23 января 2007 10:29
· Личное сообщение · #5

MoonShiner пишет:
NtQuerySystemInformation рулит=)

По сути ToolHelp32Snapshot - то же самое что и NtQuerySystemInformation, только снапшот официальный будет, хотя кому какая разница =)


 eXeL@B —› Программирование —› Можно ли получить список тредов процесса?
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати