Сейчас на форуме: UniSoft, laslo, bartolomeo (+5 невидимых) |
eXeL@B —› Программирование —› Получить start address потока на windows 7 |
Посл.ответ | Сообщение |
|
Создано: 12 ноября 2011 01:38 · Личное сообщение · #1 В ранних версиях можно было получить при помощи Code:
В семерке же перечисление THREADINFOCLASS не содержит ThreadQuerySetWin32StartAddress. Есть еще Code:
Раньше SYSTEM_PROCESS_INFORMATION содержала массив SYSTEM_THREAD_INFORMATION, из которого как раз можно было достать start address каждого потока. SYSTEM_PROCESS_INFORMATION в семерке уже не тот, SYSTEM_THREAD_INFORMATION вообще убрали. И как теперь start address добыть? |
|
Создано: 12 ноября 2011 12:54 · Поправил: bowrouco · Личное сообщение · #2 |
|
Создано: 12 ноября 2011 13:54 · Личное сообщение · #3 |
|
Создано: 12 ноября 2011 13:58 · Поправил: Alchemistry · Личное сообщение · #4 GoldenJoe И куда же этот инфо класс делся? Совершенно спокойно получил StartAddress только что для текущего потока. Win7, SP1, x86. Более того MSDN тоже не в курсе ваших изысканий. http://msdn.microsoft.com/en-us/library/windows/desktop/ms684283(v=vs.85).aspx If ThreadQuerySetWin32StartAddress is specified for the ThreadInformationClass parameter, this buffer must be large enough to hold a PVOID value, which is the start address of the thread. bowrouco Твой бессмысленный поток сознания уже приелся. |
|
Создано: 12 ноября 2011 14:11 · Личное сообщение · #5 Бугага, bowrouco жжет как всегда. Не забывайте также, что StartAddress и Win32StartAddress это не одно и тоже, и про то, что большинство потоков инициализирует специальная рутина - kernel32!BaseThreadStartThunk (kernel32!BaseProcessStartThunk для первого потока процесса), ntdll!RtlUserThreadStart. И про то, что поле Win32StartAddress может содержать значение LpcReceivedMessageId (до Висты) вместо стартового адреса. И про то, что малвара эти значения может менять. На семерке как раз все более-менее стабильно, в плане получения значения Win32StartAddress, и инфокласс этот работает. ----- Research is my purpose |
|
Создано: 12 ноября 2011 14:11 · Поправил: GoldenJoe · Личное сообщение · #6 |
|
Создано: 12 ноября 2011 14:25 · Поправил: bowrouco · Личное сообщение · #7 |
|
Создано: 12 ноября 2011 14:43 · Поправил: Alchemistry · Личное сообщение · #8 bowrouco пишет: Закрыли его, там заглушка возвращающая STATUS_UNSUCCESSFUL. В W7 и 8 одинаково, я смотрел ядро. Сейчас некогда, позже точно посмотрю. Видимо влом признать что ты неправ, ага? Закрыли так, что возвращает корректное значение, пишет правильное количество returned bytes и выдает STATUS_SUCCESS. Неплохо так закрыли - табличка сарказм. И да, W8 да, это конечно мега показатель. Оно даже не бета, а DevPreview, а ты уже решил, что все так и будет в релизе. Ну-ну, повеселил. GoldenJoe Выкиньте это описание из документации и используйте старые из символов, например. Все новые значения практически всегда добавляются в конец перечислений. Никто ломать старое не будет никогда, пока жива сама архитектура. |
|
Создано: 12 ноября 2011 15:57 · Личное сообщение · #9 |
|
Создано: 12 ноября 2011 16:13 · Личное сообщение · #10 |
|
Создано: 12 ноября 2011 18:50 · Личное сообщение · #11 |
|
Создано: 12 ноября 2011 19:01 · Личное сообщение · #12 |
|
Создано: 12 ноября 2011 20:50 · Личное сообщение · #13 |
eXeL@B —› Программирование —› Получить start address потока на windows 7 |
Эта тема закрыта. Ответы больше не принимаются. |