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





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[Win32] Глюки!!! Хелп!!! 29.05.02 09:23  Число просмотров: 959
Автор: SerpentFly <Vadim Smirnov> Статус: Member
<"чистая" ссылка>
Все путем, не паникуй. Вот код код для GetCurrentThread:

.text:77E86AD6 _GetCurrentThread@0 proc near
.text:77E86AD6 push 0FFFFFFFEh
.text:77E86AD8 pop eax
.text:77E86AD9 retn
.text:77E86AD9 _GetCurrentThread@0 endp

Просто 0FFFFFFFEh этвсегда хендл текущего потока (с процессами кстати тоже самое, только там 0FFFFFFFFh), так что в контексте потока всем функциям принимающим хендл на поток можешь смело это значение передавать...
<programming>
[Win32] Глюки!!! Хелп!!! 29.05.02 07:30  
Автор: BXS Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Кто нть может объяснить мне в чем дело и чем лечить:
GetCurrentThread() возвращает всегда FFFFFFFE??????
Что за бред???

К примеру, создаю поток hThread=CreateThread....
Вызываю GetCurrentThread() из нового потока и получаю fffffffE... хотя настоящий hThread был нормальный (0x0fc3 к примеру итд... причем менялся каждый новый раз)...!!!!!!!

такая фигня происходит везде! во всех потоках...
???????
что происходит? у меня на машине дьявол?
[Win32] Глюки!!! Хелп!!! 29.05.02 09:23  
Автор: SerpentFly <Vadim Smirnov> Статус: Member
<"чистая" ссылка>
Все путем, не паникуй. Вот код код для GetCurrentThread:

.text:77E86AD6 _GetCurrentThread@0 proc near
.text:77E86AD6 push 0FFFFFFFEh
.text:77E86AD8 pop eax
.text:77E86AD9 retn
.text:77E86AD9 _GetCurrentThread@0 endp

Просто 0FFFFFFFEh этвсегда хендл текущего потока (с процессами кстати тоже самое, только там 0FFFFFFFFh), так что в контексте потока всем функциям принимающим хендл на поток можешь смело это значение передавать...
[Win32] Глюки!!! Хелп!!! 29.05.02 16:57  
Автор: BXS Статус: Незарегистрированный пользователь
<"чистая" ссылка>
ок.
а как получить хендл чужого потока? да еще и из другого процесса?
win9x этого не умеет. OpenThread токо с winME пошел.
но вот проги типа TaskInfo, ProcExplorer их как то достают..
автор ProcExplorer сказал что он читал их из внутренних структур а из каких и как не сказал...
может кто подскажет..
может ребят вы знаете?
[Win32] можно и под W98 29.05.02 18:16  
Автор: ukv Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Вот мой примерчик, закрывающий окно hwnd в другом процессе
(с ожиданием результата). Вроде тут есть доступ и к процессу, и к потоку:
DWORD pid;
HANDLE hproc;
GetWindowThreadProcessId(hwnd,&pid);
hproc = OpenProcess(PROCESS_ALL_ACCESS,TRUE,pid);
::PostMessage(hwnd, WM_CLOSE, 0, 0);
WaitForInputIdle(hproc,INFINITE);
CloseHandle(hproc);
[C++] [Win32] можно и под W98:: нет, нельзя 29.05.02 18:34  
Автор: BXS Статус: Незарегистрированный пользователь
Отредактировано 29.05.02 18:35  Количество правок: 1
<"чистая" ссылка>
> Вот мой примерчик, закрывающий окно hwnd в другом процессе
> (с ожиданием результата). Вроде тут есть доступ и к
> процессу, и к потоку:
> DWORD pid;
> HANDLE hproc;
> GetWindowThreadProcessId(hwnd,&pid);
> hproc = OpenProcess(PROCESS_ALL_ACCESS,TRUE,pid);
> ::PostMessage(hwnd, WM_CLOSE, 0, 0);
> WaitForInputIdle(hproc,INFINITE);
> CloseHandle(hproc);


в том то и дело что нет.
ты не получаешь хендл удаленного потока. система сама это реализует внутри себя. поэтому PostMessage работает. естественно, винда знает как получать хендлы, но документированного способа не дает. приходица изварачиваца.... как именно - я не знаю....
скачал kernel32.dll и winME но ясно дело loadlibrary не захотела его читать... ну эт я так, для самокнтроля... для симуляции деятельности.. (((
1




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


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