Сейчас на форуме: zds, UniSoft (+5 невидимых)

 eXeL@B —› Программирование —› Функции из ntdll для настройки статического TLS.Есть вопросы.
<< . 1 . 2 .
Посл.ответ Сообщение

Ранг: 31.0 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 16 августа 2011 18:21 · Поправил: Yotsi
· Личное сообщение · #1

Скачал сорцы win2k,смотрю в ldrinit.c ,и меня терзает смутное ощущение что чего то нехватает...
1.Я правильно понимаю что весь апи системного загрузчика находится в ntdll ?
2.Функция LdrpInitializeProcess готовит только адресное пространство для процесса?Или еще настраивает образ экзешника этого самого будущего процесса?
3.Функции LdrpInitializeTls(для длл) и LdrpAllocateTls(для потоков процесса) выделяют память под TLS переменные в ап процесса,и копируют туда содержимое этих переменных?
4.А для чего тогда LdrpCallTlsInitializers ?
5.И мне совсе непонятно какой код приводит изначальные "адреса" TLS переменных в коде образа экзешника,к VA которые были выделенны LdrpInitializeTls и LdrpAllocateTls

ЗЫ:надеюсь найдется добрый человек который хоть частично в направлении истины направит )




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 22 августа 2011 22:48
· Личное сообщение · #2

Надо смотреть x64 библиотеки.

-----
Yann Tiersen best and do not fuck




Ранг: 47.7 (посетитель), 17thx
Активность: 0.090
Статус: Участник

Создано: 28 августа 2011 21:27
· Личное сообщение · #3

PE_Kill
Есть идея потыкать контекст активации(IDP + барьер + маршрутизация). Что вы думаете по этому поводу ?




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 29 августа 2011 06:46
· Личное сообщение · #4

Мне такие вещи не интересны. Меня интересуют исключительно манипуляции с PE файлами.

-----
Yann Tiersen best and do not fuck




Ранг: 31.0 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 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



Ранг: 47.7 (посетитель), 17thx
Активность: 0.090
Статус: Участник

Создано: 30 августа 2011 23:53 · Поправил: bowrouco
· Личное сообщение · #6

Code:
  1. "Calling TLS callback %p for DLL ""%wZ"" at %p", "LdrpCallTlsInitializers" - LdrpCallTlsInitializers().
  2. "DLL ""%wZ"" has TLS information at %p", "LdrpInitializeTls" - LdrpInitializeTls().


Там даже имена апи есть. Просто проблема поиска может быть в том, что инструкции принадлежащие процедуре размазаны по всему модулю. Тогда сложно найти ссылку на инструкцию, ссылку на ссылку и тд., придётся каждый раз сканить образ, проверять ветвления и прочий код..
Иначе описываем код, следующий за загрузкой kernel32 графом с фиксированным NL. Ищем в этом слепке ссылку на текст и раскрыв обратные ссылки найдём начало процедуры.




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 31 августа 2011 08:45
· Личное сообщение · #7

А не проще полностью проэмулировать TLS механизм, чем искать его куски в библиотеках?

-----
Yann Tiersen best and do not fuck




Ранг: 47.7 (посетитель), 17thx
Активность: 0.090
Статус: Участник

Создано: 31 августа 2011 20:34 · Поправил: bowrouco
· Личное сообщение · #8

PE_Kill
Не проще. Даже щас семпл запилю.

http://indy-vx.narod.ru/DLab/Tls.zip



Ранг: 31.0 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 01 сентября 2011 00:51
· Личное сообщение · #9

Где бы можно почитать о графах в реверсинге?



Ранг: 2.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 02 сентября 2011 03:30 · Поправил: ASMatic
· Личное сообщение · #10

bowrouco пишет:
IDP + барьер + маршрутизация

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



Ранг: 47.7 (посетитель), 17thx
Активность: 0.090
Статус: Участник

Создано: 02 сентября 2011 04:29
· Личное сообщение · #11

ASMatic
Допустим имеется связанный список, обычно это структура LIST_ENTRY. Это связи обьекта в списке обьектов. Мы отслеживаем обращение к определённому элементу этого списка, разбив ссылку в этой структуре. Так мы отследим раскрытие ссылки. Если же выполняется вставка обьекта в список, то мы опять же отследим раскрытие ссылки, но последний раз - после этого она будет изменена и дальнейшее обращение по ней не будет отслежено. Чтоб это обойти нужно восстанавливать ссылку, после каждого её изменения. Механизм восстановления её и является барьером.

Маршрутизация - отложенная передача управления.



Ранг: 2.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 02 сентября 2011 14:10
· Личное сообщение · #12

bowrouco
все гениальное просто - сенкс.



Ранг: 31.0 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 11 сентября 2011 22:25
· Личное сообщение · #13

А что находится в этом списке TEB::TlsLinks ?



Ранг: 31.0 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 22 сентября 2011 19:45
· Личное сообщение · #14

Кто нибудь может прокомментировать как это http://exelab.ru/f/action=vthread&forum=6&topic=11895&page=0#19 должно работать?Это ведь явно не подмен образа во время инициализации загрузчика.Ведь если переписать образ своего згрузчика во время инициализации,то указатель на IMAGE_TLS_DIRECTORY в загрузчике "сломается",и будет исключение.Этот метод вообще может быть рабочим?Что то я его непонимаю




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 22 сентября 2011 21:36
· Личное сообщение · #15

Yotsi там DrFits не понял вопроса и начал рассказывать про эмуляцию TLS callbacks. Конкретно про эмуляцию TLS callbacks он правильно сказал, а про эмуляцию всего TLS (что нужно тебе) там нет ни слова.

-----
Yann Tiersen best and do not fuck




Ранг: 31.0 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 28 сентября 2011 22:16
· Личное сообщение · #16

Я немогу вьехать,почему IMAGE_TLS_DIRECTORY::StartAddressOfRawData не равен RVA .tls секции




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 28 сентября 2011 23:52
· Личное сообщение · #17

А кто вообще обещал, что должен? Тем более, что там VA, насколько помню.




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 29 сентября 2011 07:56
· Личное сообщение · #18

Скажу по секрету, под tls вообще может не быть отдельной секции.

-----
Yann Tiersen best and do not fuck




Ранг: 47.7 (посетитель), 17thx
Активность: 0.090
Статус: Участник

Создано: 29 сентября 2011 19:44
· Личное сообщение · #19

PE_Kill
Мы будем рады если вы обьясните как на асме сконпилеть тлс директорию

А что она не связана с секцией так это очевидно. Описание директории паблик ntimage.h, изучать до достижения профита. Был есчо на мс годны док, но это излишне по моему.




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 29 сентября 2011 20:07
· Личное сообщение · #20

bowrouco
--> Компилят люди тлс на фасме <--

-----
Stuck to the plan, always think that we would stand up, never ran.




Ранг: 47.7 (посетитель), 17thx
Активность: 0.090
Статус: Участник

Создано: 29 сентября 2011 20:27 · Поправил: bowrouco
· Личное сообщение · #21

ARCHANGEL
Какбэ фасм != масм(не думал что вам нужно уточнять компиль). Мне пофиг на фасмы и прочее г.




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 29 сентября 2011 20:30 · Поправил: PE_Kill
· Личное сообщение · #22

На фасме по моему любую директорию можно скомпилить, bowrouco я думал ты знаешь об этом.

ЗЫ А на масме вот юпитер постил ссылку https://wasm.ru/forum/viewtopic.php?id=27325 только она сдохла, когда появится юпитер может выложит, если осталось.

-----
Yann Tiersen best and do not fuck




Ранг: 47.7 (посетитель), 17thx
Активность: 0.090
Статус: Участник

Создано: 29 сентября 2011 20:39
· Личное сообщение · #23

PE_Kill
Фасм это типо хекс редактор. Для нукбья(дальше хеловорда на нём никто не уехал). Студия и пр. юзают масм и стандартный линкер. Вы даже стандартных опций линкера не знаете(_tls_used) оказывается, всё с вами ясно, вопросов больше нет



Ранг: 31.0 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 29 сентября 2011 20:46
· Личное сообщение · #24

Archer пишет:
А кто вообще обещал, что должен? Тем более, что там VA, насколько помню.

Спасибо, теперь все понятно.



Ранг: 1.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 05 мая 2013 13:10
· Личное сообщение · #25

подскажите как для одно поточной програмы на делфи удалить тлс

все что я понял в fs:[2ch] есть указатель на tls

т.е. я в програме делфи самостоятельно меняю tls index в 0. а дальше что я должен сделать? что засунуть в fs:[2ch]


<< . 1 . 2 .
 eXeL@B —› Программирование —› Функции из ntdll для настройки статического TLS.Есть вопросы.
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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