![]() |
eXeL@B —› Вопросы новичков —› странный вызов MessageBoxA |
. 1 . 2 . >> |
Посл.ответ | Сообщение |
|
Создано: 21 августа 2008 12:55 · Личное сообщение · #1 Всем привет Вобщем ковыряю одну прогу, там защита на дебаггер. И при запущенном дебаггере она сообщает что так мол и так сначала выруби дебугер потом запускай. Ставлю бряк на MessageBoxA, после отработки функции управление возвращаеться той проге на адрес A478E2, смотрю выше jmp`ы. Ставлю бряки на джампы, колы (рядом с этим адресом), и они не срабатывают ! Т.е. явного вызова типа Call MessageBox нет, а откуда он вызываеться я не знаю. И не знаю как узнать ![]() ![]() ![]() |
|
Создано: 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 вроде не используються ![]() И ещё, хоть на разных машинах адреса могут и отличаться, но на всякий случай, нашёл какой-то странный адрес (в разных прогах один и тотже) 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 ![]() ![]() Прога на самом деле не лёгкая ибо написана крэкером, он то уж знал как взламываються проги. ![]() |
|
Создано: 01 сентября 2008 14:51 · Личное сообщение · #28 |
|
Создано: 01 сентября 2008 20:48 · Поправил: MaStak · Личное сообщение · #29 |
|
Создано: 02 сентября 2008 02:16 · Личное сообщение · #30 |
. 1 . 2 . >> |
![]() |
eXeL@B —› Вопросы новичков —› странный вызов MessageBoxA |