![]() |
eXeL@B —› Программирование —› Функции из ntdll для настройки статического TLS.Есть вопросы. |
<< . 1 . 2 . |
Посл.ответ | Сообщение |
|
Создано: 16 августа 2011 18:21 · Поправил: Yotsi · Личное сообщение · #1 Скачал сорцы win2k,смотрю в ldrinit.c ,и меня терзает смутное ощущение что чего то нехватает... 1.Я правильно понимаю что весь апи системного загрузчика находится в ntdll ? 2.Функция LdrpInitializeProcess готовит только адресное пространство для процесса?Или еще настраивает образ экзешника этого самого будущего процесса? 3.Функции LdrpInitializeTls(для длл) и LdrpAllocateTls(для потоков процесса) выделяют память под TLS переменные в ап процесса,и копируют туда содержимое этих переменных? 4.А для чего тогда LdrpCallTlsInitializers ? 5.И мне совсе непонятно какой код приводит изначальные "адреса" TLS переменных в коде образа экзешника,к VA которые были выделенны LdrpInitializeTls и LdrpAllocateTls ![]() ЗЫ:надеюсь найдется добрый человек который хоть частично в направлении истины направит ) ![]() |
|
Создано: 22 августа 2011 22:48 · Личное сообщение · #2 |
|
Создано: 28 августа 2011 21:27 · Личное сообщение · #3 |
|
Создано: 29 августа 2011 06:46 · Личное сообщение · #4 |
|
Создано: 30 августа 2011 23:08 · Личное сообщение · #5 bowrouco пишет: "LDR: Tls Found in %wZ at %p",LFLdrpInitializeTls"LDR: TlsVector %x Index %d = %x copied from %x to %x",LFLdrpAllocateTls"LDR: Tls Callbacks Found. Imagebase %p Tls %p CallBacks %p",LF,"""LDR: Calling Tls Callback Imagebase %p Function %p",LF,""LdrpCallTlsInitializers По этому тексту в 7ке уже точно не найти ни LdrpCallTlsInitializers ,ни LdrpInitializeTls ![]() ![]() |
|
Создано: 30 августа 2011 23:53 · Поправил: bowrouco · Личное сообщение · #6 Code:
Там даже имена апи есть. Просто проблема поиска может быть в том, что инструкции принадлежащие процедуре размазаны по всему модулю. Тогда сложно найти ссылку на инструкцию, ссылку на ссылку и тд., придётся каждый раз сканить образ, проверять ветвления и прочий код.. Иначе описываем код, следующий за загрузкой kernel32 графом с фиксированным NL. Ищем в этом слепке ссылку на текст и раскрыв обратные ссылки найдём начало процедуры. ![]() |
|
Создано: 31 августа 2011 08:45 · Личное сообщение · #7 |
|
Создано: 31 августа 2011 20:34 · Поправил: bowrouco · Личное сообщение · #8 |
|
Создано: 01 сентября 2011 00:51 · Личное сообщение · #9 |
|
Создано: 02 сентября 2011 03:30 · Поправил: ASMatic · Личное сообщение · #10 |
|
Создано: 02 сентября 2011 04:29 · Личное сообщение · #11 ASMatic Допустим имеется связанный список, обычно это структура LIST_ENTRY. Это связи обьекта в списке обьектов. Мы отслеживаем обращение к определённому элементу этого списка, разбив ссылку в этой структуре. Так мы отследим раскрытие ссылки. Если же выполняется вставка обьекта в список, то мы опять же отследим раскрытие ссылки, но последний раз - после этого она будет изменена и дальнейшее обращение по ней не будет отслежено. Чтоб это обойти нужно восстанавливать ссылку, после каждого её изменения. Механизм восстановления её и является барьером. Маршрутизация - отложенная передача управления. ![]() |
|
Создано: 02 сентября 2011 14:10 · Личное сообщение · #12 |
|
Создано: 11 сентября 2011 22:25 · Личное сообщение · #13 |
|
Создано: 22 сентября 2011 19:45 · Личное сообщение · #14 Кто нибудь может прокомментировать как это http://exelab.ru/f/action=vthread&forum=6&topic=11895&page=0#19 должно работать?Это ведь явно не подмен образа во время инициализации загрузчика.Ведь если переписать образ своего згрузчика во время инициализации,то указатель на IMAGE_TLS_DIRECTORY в загрузчике "сломается",и будет исключение.Этот метод вообще может быть рабочим?Что то я его непонимаю ![]() ![]() |
|
Создано: 22 сентября 2011 21:36 · Личное сообщение · #15 |
|
Создано: 28 сентября 2011 22:16 · Личное сообщение · #16 |
|
Создано: 28 сентября 2011 23:52 · Личное сообщение · #17 |
|
Создано: 29 сентября 2011 07:56 · Личное сообщение · #18 |
|
Создано: 29 сентября 2011 19:44 · Личное сообщение · #19 |
|
Создано: 29 сентября 2011 20:07 · Личное сообщение · #20 bowrouco ----- Stuck to the plan, always think that we would stand up, never ran. ![]() |
|
Создано: 29 сентября 2011 20:27 · Поправил: bowrouco · Личное сообщение · #21 |
|
Создано: 29 сентября 2011 20:30 · Поправил: PE_Kill · Личное сообщение · #22 |
|
Создано: 29 сентября 2011 20:39 · Личное сообщение · #23 |
|
Создано: 29 сентября 2011 20:46 · Личное сообщение · #24 |
|
Создано: 05 мая 2013 13:10 · Личное сообщение · #25 |
<< . 1 . 2 . |
![]() |
eXeL@B —› Программирование —› Функции из ntdll для настройки статического TLS.Есть вопросы. |