Сейчас на форуме: asfa, _MBK_, Adler (+8 невидимых)

 eXeL@B —› Вопросы новичков —› 2 потока при бряке на OEP. КАК?
Посл.ответ Сообщение

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

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



Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 13 февраля 2013 22:24
· Личное сообщение · #2

2 потока или 2 процесса? диспетчер задач вроде не показывает количество потоков.




Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

Создано: 13 февраля 2013 22:30 · Поправил: daFix
· Личное сообщение · #3

SCAleXXX
Выкладывай файл. Поток вполне может создать любая из подгружаемых библиотек. Например, вирус или антивирусник. Проверь AppInit_DLLs в реестре

-----
Research For Food




Ранг: 13.0 (новичок), 2thx
Активность: 0.030
Статус: Участник

Создано: 13 февраля 2013 22:30
· Личное сообщение · #4

давай сюда Crackme посмотрим




Ранг: 127.3 (ветеран), 44thx
Активность: 0.090
Статус: Участник

Создано: 13 февраля 2013 22:36
· Личное сообщение · #5

SCAleXXX
дллки из импорта грузятся и выполняют код до ЕР.

-----
zzz


| Сообщение посчитали полезным: NikolayD


Ранг: 136.0 (ветеран), 360thx
Активность: 0.270.14
Статус: Участник
Qt Developer

Создано: 13 февраля 2013 23:21
· Личное сообщение · #6

SCAleXXX пишет:
В общем я в ступоре. Подскажите в какую сторону копать, какой еще может быть способ выполнить код до входа в EP.


Нужно смотреть сам файл. А так можно только гадать.

-----
http://ntinfo.biz




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

Создано: 14 февраля 2013 21:43
· Личное сообщение · #7

Нужно смотреть сам файл. А так можно только гадать.
Я тут прозрачно намекнул что это жадный Crackme. Это приложение, которое 13 МБ только .exe весит.
дллки из импорта грузятся и выполняют код до ЕР.
Да, я тоже сразу подумал, что DLLMAIN вые...полняется, но...что-то забил на него. А можно подробнее, как перехватить DLLMAINы подгружаемых либ?



Ранг: 189.9 (ветеран), 334thx
Активность: 0.30
Статус: Участник

Создано: 14 февраля 2013 23:03
· Личное сообщение · #8

SCAleXXX, вот --> тут <-- есть разбор крякмиса. Номер не помню. Олю на системный бряк переводить нужно.




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

Создано: 14 февраля 2013 23:09
· Личное сообщение · #9

Вообще выложить жирный файл лучше, чем не выкладывать вообще ничего. Размер укажи, и каждый сам решит, сливать или нет.
Что касается вопроса, я не совсем улавливаю, чем тебе эти 2 потока помешали? Ну какие-то системные либы плодят поток (что сильно вряд ли, правда, ибо противоречит правилам написания DllMain). Либо какой-то корявый авер/фаер воткнул его, что более вероятно. А чем это мешает?




Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 15 февраля 2013 06:04
· Личное сообщение · #10

Archer пишет:
что сильно вряд ли, правда, ибо противоречит правилам написания DllMain

в смысле из dllMain нельзя запускать процесс по правилам написания? Правила хорошего тона или в принципе нельзя никак?

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh





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

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

Если кто-то пишет длл, не зная про данный документ, то настоятельно рекомендуется ознакомиться.

| Сообщение посчитали полезным: Isaev

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

Создано: 15 февраля 2013 19:01
· Личное сообщение · #12

В общем вот жадный Crackme c минимальным набором либ для запуска. Архив на http://f-bit.ru/73013



Ранг: 281.8 (наставник), 272thx
Активность: 0.250.01
Статус: Участник
Destroyer of protectors

Создано: 15 февраля 2013 19:48
· Личное сообщение · #13

SCAleXXX
ну во-первых это не крякми, а прога
а во-вторых я хз что ты там творишь...стоя на еп - как и процесс, так и поток ОДИН.


 eXeL@B —› Вопросы новичков —› 2 потока при бряке на OEP. КАК?
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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