![]() |
eXeL@B —› Вопросы новичков —› 2 потока при бряке на OEP. КАК? |
Посл.ответ | Сообщение |
|
Создано: 13 февраля 2013 22:19 · Личное сообщение · #1 Дано: жадный Crackme Инструменты: Olly+hideplugins, IDA, HexEditor Найти: в долгосрочной перспективе - таблетку от жадности, в краткосрочной - Останов в начале исполнения приложения. Предварительные исследования. IDA и PEID указывают на то,что Crackme написан на D7. При загрузке в Олю программа благополучно брякается на EP. Все ничего, да диспетчер задач показывает 2 потока!!!. Откуда 2-й поток, подумал я, если еще ни 1 инструкция еще не должна была выпониться. Значит TLS подумал я и полез HEX-Editor и PE спецификацию. HEX благополучно рассказал, что действительно, есть TLS-таблица, размещенная в секциии .tls. Ну, подумал я, сейчас найдем все каллбеки и дело в шляпе...... и обломись!!!! В TLS Нет каллбеклов. HEX показывает нули, там где д.б. каллбеки, Olly при просмотре карты памяти тоже ,хотя и 2-й поток мог память переделать, как захочет. И IDA не нашла TLS-каллбеки, хотя таблицу представила правильно. В общем показания у всех одинаковы. При этом OEP из PE-заголовка совпадает с точкой останова Ольги. Ладно, подумал я будем смотреть, откуда создается поток и забрякал аппаратно вход в CreateThread и выход из нее на всякий случай. Ольга тормознула на входе CreateThread, значит поток каким-то каллбеком. Анализ стека вызовов мне снес крышу: поток создается и ADVAPI, а туда он попадает wininet, а туда еще откуда-то....только не из Crackme. Ну и черт с TLS-каллбеками, решил я, и занулил все прямо в PE-заголовке. Загружаемся в Ольге и........все те же 2 потока. В общем я в ступоре. Подскажите в какую сторону копать, какой еще может быть способ выполнить код до входа в EP. ![]() |
|
Создано: 13 февраля 2013 22:24 · Личное сообщение · #2 |
|
Создано: 13 февраля 2013 22:30 · Поправил: daFix · Личное сообщение · #3 |
|
Создано: 13 февраля 2013 22:30 · Личное сообщение · #4 |
|
Создано: 13 февраля 2013 22:36 · Личное сообщение · #5 SCAleXXX дллки из импорта грузятся и выполняют код до ЕР. ----- zzz ![]() |
|
Создано: 13 февраля 2013 23:21 · Личное сообщение · #6 |
|
Создано: 14 февраля 2013 21:43 · Личное сообщение · #7 Нужно смотреть сам файл. А так можно только гадать. Я тут прозрачно намекнул что это жадный Crackme. Это приложение, которое 13 МБ только .exe весит. дллки из импорта грузятся и выполняют код до ЕР. Да, я тоже сразу подумал, что DLLMAIN вые...полняется, но...что-то забил на него. А можно подробнее, как перехватить DLLMAINы подгружаемых либ? ![]() |
|
Создано: 14 февраля 2013 23:03 · Личное сообщение · #8 SCAleXXX, вот ![]() |
|
Создано: 14 февраля 2013 23:09 · Личное сообщение · #9 Вообще выложить жирный файл лучше, чем не выкладывать вообще ничего. Размер укажи, и каждый сам решит, сливать или нет. Что касается вопроса, я не совсем улавливаю, чем тебе эти 2 потока помешали? Ну какие-то системные либы плодят поток (что сильно вряд ли, правда, ибо противоречит правилам написания DllMain). Либо какой-то корявый авер/фаер воткнул его, что более вероятно. А чем это мешает? ![]() |
|
Создано: 15 февраля 2013 06:04 · Личное сообщение · #10 |
|
Создано: 15 февраля 2013 09:59 · Личное сообщение · #11 Best Practices for Creating DLLs http://msdn.microsoft.com/en-us/windows/hardware/gg487379.aspx You should never perform the following tasks from within DllMain: ... Call CreateThread. Creating a thread can work if you do not synchronize with other threads, but it is risky. Если кто-то пишет длл, не зная про данный документ, то настоятельно рекомендуется ознакомиться. ![]() |
|
Создано: 15 февраля 2013 19:01 · Личное сообщение · #12 |
|
Создано: 15 февраля 2013 19:48 · Личное сообщение · #13 |
![]() |
eXeL@B —› Вопросы новичков —› 2 потока при бряке на OEP. КАК? |