| eXeL@B —› Вопросы новичков —› странный вызов MessageBoxA | 
| . 1 . 2 . >> | 
| Посл.ответ | Сообщение | 
| 
 | 
Создано: 21 августа 2008 12:55  · Личное сообщение · #1 Всем привет Вобщем ковыряю одну прогу, там защита на дебаггер. И при запущенном дебаггере она сообщает что так мол и так сначала выруби дебугер потом запускай. Ставлю бряк на MessageBoxA, после отработки функции управление возвращаеться той проге на адрес A478E2, смотрю выше jmp`ы. Ставлю бряки на джампы, колы (рядом с этим адресом), и они не срабатывают ! Т.е. явного вызова типа Call MessageBox нет, а откуда он вызываеться я не знаю. И не знаю как узнать   А если этот вызов вобще делаеться как нибудь так: MOV EIP, 77D7050B. Тогда вобще   Поделитесь опытом пожалуйста как отловить этот вызов ?
![]()  | 
| 
 | 
Создано: 21 августа 2008 13:03  · Личное сообщение · #2  | 
| 
 | 
Создано: 21 августа 2008 13:08 · Поправил: ClockMan  · Личное сообщение · #3  | 
| 
 | 
Создано: 21 августа 2008 17:23  · Личное сообщение · #4  | 
| 
 | 
Создано: 21 августа 2008 17:47  · Личное сообщение · #5 Вызов действительно может происходить неудобно, что отслеживать его тяжко. Варианта 2: трассировка (возможно автоматическая) и разглядывание лога; забить болт на мессагу и искать чтение серийника или другие события. Есть изощрённые варианты типа смотреть Last branch в MSR регистрах, которые софт айс кажет, но варя их не эмулит. ![]()  | 
| 
 | 
Создано: 21 августа 2008 18:54 · Поправил: MaStak  · Личное сообщение · #6 спасибо за ответы  
Veliant Это декомпилятор Ex4 to Mq4 - www.rapidshare.ru/760548 ClockMan Мне Syser приглянулся   А при попытке загрузки этой проги через ольку падают обе  
Crawler Я знаю адрес этой строки, но она видишь ли вызываеться почемуто из MessageBox. Archer Вот насчёт " или другие события" это интересно. Только вот не знаю я какая гадкая функция сдаёт отладчика, а потому и не знаю что искать. Хотел начать с хвоста и постепенно подойти к тому месту где прога решает Be or Not to Be. Насчёт "Last branch в MSR " чессно говоря не понял, наверно ещё рано. А ведь какая интересная замута, ложит в стек подставной обратный адрес и обычным джампом уходит в функцию   и никаких следов ... 
Вот если бы бряк можно было ставить не на адрес, а на значение какого либо регистра(тогоже eip например)  
![]()  | 
| 
 | 
Создано: 24 августа 2008 21:27  · Личное сообщение · #7 Нашол. Это IsDebuggerPresent Code: 
 И опять вызываеться както через  
Она на самом деле из 3 строк ? Как она работает ? Результат помещаеться CX ? ![]()  | 
| 
 | 
Создано: 24 августа 2008 21:51  · Личное сообщение · #8  | 
| 
 | 
Создано: 24 августа 2008 22:58  · Личное сообщение · #9  | 
| 
 | 
Создано: 24 августа 2008 23:00  · Личное сообщение · #10  | 
| 
 | 
Создано: 24 августа 2008 23:13  · Личное сообщение · #11  | 
| 
 | 
Создано: 24 августа 2008 23:13  · Личное сообщение · #12  | 
| 
 | 
Создано: 24 августа 2008 23:38  · Личное сообщение · #13  | 
| 
 | 
Создано: 25 августа 2008 22:19  · Личное сообщение · #14 Увы, IsDebuggerPresent оказалось всего лишь ширмой. Либо для выявления отладки в защищённом режиме. Кстати, вы знали что есть ещё вариант Syser'a работающий в защищённом режиме www.sysersoft.com/download/SyserWin32Debugger.zip. Какие функции могут использоваться для отлова отладки в реальном режиме ? OpenFile, CreateFile вроде не используються   Я пробовал ставить хук на StringToChr, прога явно шарит в поиске драйвера отладки.
И ещё, хоть на разных машинах адреса могут и отличаться, но на всякий случай, нашёл какой-то странный адрес (в разных прогах один и тотже) 5B291BE8, там либо 0 либо 1, подозреваю что там результат функции выявления отладки, у кого-нибудь такое было ? ![]()  | 
| 
 | 
Создано: 26 августа 2008 17:54  · Личное сообщение · #15 Чо-то мне всегда казалось, что винда как раз и работает в защищённом режиме. Причём тут реальный режим и функции винды, я себе слабо представляю. А адрес похож на адрес какой-то системной либы... Взял бы ты сборку ольки, которая не особо палится антидебагом, а не изобретал сам колесо, пока ещё опыта немного... ![]()  | 
| 
 | 
Создано: 27 августа 2008 15:32 · Поправил: NDD  · Личное сообщение · #16 MaStak Интересует, есть какие-нибудь подвижки в ковырянии? Чего-нить получается? Здесь вот (http://www.exelab.ru/f/action=vthread&forum=10&topic=5986& page=12#12, пост 16 )пишут, что в демке вообще не заложено возможности декомпилировать весь код, она всегда делает только первую функцию. Что скажешь? ![]()  | 
| 
 | 
Создано: 28 августа 2008 12:50  · Личное сообщение · #17 Archer Я имел ввиду толькото что, IsDebuggerPresent выявляет факт отладки, если отладчик "защищённый" а не "реальный". Олька же тоже "защищённый". Еслиж я запускаю "реальный", он замораживает всё, ни один процесс не может шевельнуться. Обратите внимание на часы внизу справа, они тоже перестают обновляться. И вот если винда находиться в такой нирване, IsDebuggerPresent бесполезен. Она в ЕАХе возвращает 0, т.е. какбудто отладки нет. А в защищённой версии 1. Сборка Ольки у меня с вашего сайта от TSRh, я уже писал что при запуске с ней закрываеться и и она и прога. NDD Мне интересна только защита, т.к. ну ооочень крута сделана. ![]()  | 
| 
 | 
Создано: 28 августа 2008 13:19  · Личное сообщение · #18 Сборки ольки недостаточно зачастую дла борьбы с антиотладкой, плагины ручками треба натыкать типа PhantOm и галочки в плагинах руками потоптать нужные. Что за защищённый и реальный отладчик я тоже слабо представляю. Режим работы процессора один, просто олька работает на 3 кольце защиты, а сайс на 0, используя драйвер и задирая иркл, что система и подвисает. Возможно, в меня сейчас полетят тучи помидоров за непонимание и тд, но шёл бы ты лучше статьи почитал про процессор, как работает олька, про дебаг апи, про антиотладку, топики про фантом и методы антиотладки, а потом уже хватался ломать. ![]()  | 
| 
 | 
Создано: 28 августа 2008 20:36 · Поправил: MaStak  · Личное сообщение · #19  | 
| 
 | 
Создано: 28 августа 2008 22:06  · Личное сообщение · #20  | 
| 
 | 
Создано: 29 августа 2008 00:59  · Личное сообщение · #21  | 
| 
 | 
Создано: 30 августа 2008 08:30  · Личное сообщение · #22 Code: 
 Можно на пальцах обьяснить, почему при трассировке команды STD комп перезагружаеться ? ![]()  | 
| 
 | 
Создано: 30 августа 2008 18:25  · Личное сообщение · #23 команда STD устанавливает флаг SF отвечающий за направление работы строковых функций... точнее увеличение или уменьшение значения адреса (вродь так, а то меня сегодня что-то глючит) сама команда ребут вызвать не может, значит вероятно она устанавливает драйвер и он палит отладку... хз еще что сказать  
![]()  | 
| 
 | 
Создано: 30 августа 2008 23:29  · Личное сообщение · #24  | 
| 
 | 
Создано: 31 августа 2008 02:14  · Личное сообщение · #25  | 
| 
 | 
Создано: 01 сентября 2008 10:45  · Личное сообщение · #26 Кладёт флаги по pushfd, трассируешь-потому и кладёт 302 вместо показываемых 202. Но дальше всё равно это значение не используется. В данном коде не юзается антиотладка. И уж подавно не уйдёт в ребут на STD никаким образом. Насчёт драйвера-хз, ибо прогу не смотрел. Целеустремлённость-дело, безусловно, хорошее, но, может, уже пора внять пожеланиям и поучиться на чём-нибудь попроще, а потом уже хвататься за это? ![]()  | 
| 
 | 
Создано: 01 сентября 2008 14:39  · Личное сообщение · #27 Archer Кроме этой я занимаюсь ещё 2 прогами. Пока по этой глухо, занимаюсь теми. Как появляеться интересная мысля снова возвращаюсь к ней. Вот в этот раз ушёл на 14020 команд от EP   Дальше STD помешало   Кстати в других прогах реакция на трассировку STD аналагичная - ребут.
Прога на самом деле не лёгкая ибо написана крэкером, он то уж знал как взламываються проги. ![]()  | 
| 
 | 
Создано: 01 сентября 2008 14:51  · Личное сообщение · #28  | 
| 
 | 
Создано: 01 сентября 2008 20:48 · Поправил: MaStak  · Личное сообщение · #29  | 
| 
 | 
Создано: 02 сентября 2008 02:16  · Личное сообщение · #30  | 
| . 1 . 2 . >> | 
| eXeL@B —› Вопросы новичков —› странный вызов MessageBoxA | 

 А если этот вызов вобще делаеться как нибудь так: MOV EIP, 77D7050B. Тогда вобще 
 Поделитесь опытом пожалуйста как отловить этот вызов ?








 А при попытке загрузки этой проги через ольку падают обе 
 и никаких следов ... 


 Кстати в других прогах реакция на трассировку STD аналагичная - ребут.

 Для печати