Сейчас на форуме: subword, rtsgreg1989, zds (+9 невидимых) |
eXeL@B —› Основной форум —› Как спрятать SoftIce, если IceExt 0.65 не помогает? |
. 1 . 2 . >> |
Посл.ответ | Сообщение |
|
Создано: 23 февраля 2006 02:57 · Поправил: Canakau · Личное сообщение · #1 Проблема выглядит так: Есть прога Кредо 3 Топоплан. Защищена новексом GS II. С выдиранием дескрипторов из ключа образовалась проблема, поэтому решил идти по пути наименьшего сопротивления - а именно достать все проверочные 16-ти байтовые пары (запрос/ответ) так как фильтром, конечно хорошо, но дюже долго их выковыривать. И столкнулся с тем, что прога при попытке поставить бряки на _lopen, например, молча отправляет комп в горячую перезагрузку. То-же проиходит если ставить бряки где-нибудь вглубине проги. Как быть? |
|
Создано: 23 февраля 2006 11:23 · Личное сообщение · #2 |
|
Создано: 23 февраля 2006 15:11 · Личное сообщение · #3 Canakau пишет: столкнулся с тем, что прога при попытке поставить бряки на _lopen, например, молча отправляет комп в горячую перезагрузку. То-же проиходит если ставить бряки где-нибудь вглубине проги. Как быть? ана по ходу применяет проверку на бряки в своем теле и в теле апи, тебе нада поставить бряк на доступ к памяти (на том же месте где ты ставил обычные бряки), тогда скорее всего ты её поймаешь на проверке, а там уже можно править эту процеруру. |
|
Создано: 24 февраля 2006 04:44 · Личное сообщение · #4 2MoonShiner: так я тоже пробовал. И еще глубже пробовал - не помогает. И внутри тела АПИ Guardant'а ставил - то-же... амое интересное- ели бряки тоят вначале проги в районе ОЕП, все нормально. А тоит поставить много глубже (даже не внутри АПИ) происходит перезагрузка. 2Warrior: попробую... то-есть ты предлагаешь поставить бряк на выполнение и бряк на доступ к памяти одновременно? попробую... я както раз столкнулся с защитой, где было что-то похожее... Старфорс на Автодилер Авто каталог №11. но там была ДЛЛ px3p.dll в которой были почти все функции из kernel32.dll переписаны. заменил ее соответственно на kernel32 и как бабка пошептала здесь такого нет... |
|
Создано: 24 февраля 2006 05:12 · Личное сообщение · #5 |
|
Создано: 24 февраля 2006 15:08 · Личное сообщение · #6 |
|
Создано: 24 февраля 2006 18:19 · Личное сообщение · #7 2stalker: а под ним тоже не работает... Видишь-ли... хотелось бы кавалерийки набегом - раз, бряку на head потом два - найти вызов трансформа и три - разгрести завалы,где зырыты q&a пары. А тут вырисовывается первым пунктом разгребать завалы по поводу детекта отладчика. Тяжелая форма в случае Olly и, как я подозреваю, по-легче - с софтайсом. Вот я и интересуюсь - есть ли что-нибудь поновее да позаковыристее чем IceExt. Неспортивно... но время поджимает или, все-таки придется запускать фильтр и долбить прогу раз 300 для отлова некоторого количества q&a. А после 50 запусков ни одного повтора пар - это заставляет задуматься... |
|
Создано: 24 февраля 2006 19:43 · Поправил: Error_Log · Личное сообщение · #8 Canakau что-то мне кажется, что сия прога перенаправляет вектор 3-го прерывания (int3) на свой обработчик, и когда он срабатывает(на бряках), делает следующее : mov ax, 0911 mov dx,@'HBOOT' mov si, 4647 mov di, 4a4d jmp на обработчик int 3 софтайса. ................................ =ушел в нирвану= ................................ про backdoor SoftICE можешь тут почитать: http://xtin.km.ru/view.shtml?id=88 http://xtin.km.ru/view.shtml?id=88 если так, то нужно вернуть родной обработчик int 3 (SoftICE) на базу (в IDT). ----- Research is my purpose |
|
Создано: 24 февраля 2006 20:00 · Личное сообщение · #9 |
|
Создано: 25 февраля 2006 03:14 · Личное сообщение · #10 |
|
Создано: 25 февраля 2006 18:05 · Личное сообщение · #11 |
|
Создано: 26 февраля 2006 03:02 · Личное сообщение · #12 2MoonShiner: Вроде IceExt от этого спасает? INT3 protection. Но тут еще одна вещь... если ставишь бряку на ф-цию, оторая не используется (например bpx MessageBoxIndirectA), то прога отрабатывает нормально. То-есть срабатывает не тогда, когда бряки есть вообще, а тогда, когда прога об них спотыкается. |
|
Создано: 26 февраля 2006 15:52 · Личное сообщение · #13 Вот вопрос, можно ли скрыть отладчики и прочие инструменты с помощью руткитов? Технология просто жо безобразия, но на сколько я знаю, это имеет место быть..... Тот же ОЛЛИ прекрсано маскируется с помщью этого...... а вообще, особо не тестил, т.к. нет необходимого опыта во взломе..... В использовании руткитами есть ----- The blood swap.... |
|
Создано: 26 февраля 2006 17:03 · Личное сообщение · #14 Canakau пишет: С выдиранием дескрипторов из ключа образовалась проблема, поэтому решил идти по пути наименьшего сопротивления - а именно достать все проверочные 16-ти байтовые пары (запрос/ответ) так как фильтром, конечно хорошо, но дюже долго их выковыривать. И столкнулся с тем, что прога при попытке поставить бряки на _lopen, например, молча отправляет комп в горячую перезагрузку. То-же проиходит если ставить бряки где-нибудь вглубине проги. Как быть? esli filter ne nravitsya - mozhet prosto v ide nait vse vyzovy transform i bryak na nego? [and of course, usual excuse for translit] |
|
Создано: 27 февраля 2006 11:36 · Поправил: Error_Log · Личное сообщение · #15 Canakau пишет: Вроде IceExt от этого спасает? INT3 protection Ну сам понимаешь, вчера спасал - сегодня уже может и не спасать... Поскольку перезагрузка возникает именно при срабатывании бряков, а не при их установке, то вполне разумно предположить, что код, вызывающий перезагрузку находится в обработчике... А что мешает сравнить несколько дампов IDT? При загрузке виндовс, при загрузке айса, при загрузке проги... уже можно былобы кое-какие выводы сделать, утилит для этого хватает... P.S. to DrGolova Безусловно, для этого нужен драйвер ----- Research is my purpose |
|
Создано: 27 февраля 2006 16:41 · Личное сообщение · #16 в общем !bpr X _hread 1 - тоже не помог (вместо _hread пришлось вставить реальный адрес процедуры) давно я с таким не встречался... со времен первого знакомства с китайской защитой... печально. Думаю, придется выпаивать микруху памяти с ключа и читать напрямую. одно плохо - марку ее не знаю. известно, что проц - пик16ф84 а вот память... все спилено. мож кто подскажет? вероятно - это самый эффективный метод будет. 2 ssx: знаешь, даже в хэлпе от новекса пишут, что эти вещи лучше прятать. А ребята явно не профаны. В проге еще есть кодированные участки...попробую, конечно, но думаю - это не оптимальный путь. попробую "разрубить Гордиев узел" и залезу в хардварь... |
|
Создано: 27 февраля 2006 17:19 · Поправил: ssx · Личное сообщение · #17 |
|
Создано: 28 февраля 2006 02:15 · Поправил: Canakau · Личное сообщение · #18 |
|
Создано: 28 февраля 2006 15:22 · Личное сообщение · #19 |
|
Создано: 28 февраля 2006 17:41 · Личное сообщение · #20 ssx: боги молчат... вообще я нашел эту падлу. драйвер printsrv.sys в systemroot\system32\drivers. Не знаю - стандартная это приблуда от новекса или нет, но она- определенно. В нем установлен только Create и Close события. При открытии драйвера, если есть бряки где-либо в теле проги, происходит все плохое. Причем драйвер (как я понял) вызывается всего один раз. ставить бряку на "после вызова" бесполезно. Ребут - однозначно. При остановке сервиса, запускаться не хотит. В деталях разобраться не успел. Место вызова драйвера шифрованое. драйвер просто вызывается через CeateFileA затем, если возврат не -1 то закрывается. если нет, то процесс закрытия опускается. То-есть скорее всего он что-то выставляет в памяти. Данные ему не передаются. Короче еще одна головоломка В аттаче тот самый драйвер, если кому интересно. не знаю - есть он в стандартной поставе отновекса, или это местное нововведение. 4199_printsrv.rar.zip |
|
Создано: 28 февраля 2006 17:49 · Поправил: ssx · Личное сообщение · #21 |
|
Создано: 28 февраля 2006 19:20 · Личное сообщение · #22 |
|
Создано: 28 февраля 2006 20:57 · Личное сообщение · #23 Canakau пишет: Думаю, придется выпаивать микруху памяти с ключа и читать напрямую. одно плохо - марку ее не знаю. известно, что проц - пик16ф84 а вот память... все спилено. мож кто подскажет? вероятно - это самый эффективный метод будет. само по себе чтение микросхемы внешней памяти мало что дает - вся память пошифрована. |
|
Создано: 01 марта 2006 00:13 · Личное сообщение · #24 |
|
Создано: 01 марта 2006 02:17 · Поправил: Canakau · Личное сообщение · #25 |
|
Создано: 01 марта 2006 03:38 · Личное сообщение · #26 |
|
Создано: 01 марта 2006 20:56 · Личное сообщение · #27 ssx пишет: а второй стелс все-таки на pic сделан? или на cypres? не знаю, да и не так это важно. На коленке читались только старые стелсы-1. Потом если не ошибаюсь F84 поменяли на F84A и старый метод чтения отпал. Те кто смогли прочитать F84A думаю и с cypres справятся. Внешняя память, если не изменяет склероз, была на 93C56A (или на чем схожем по интерфейсу). |
|
Создано: 02 марта 2006 01:31 · Личное сообщение · #28 2nd: За информацию огромное спасибо. Буду пробовать.да, я тут в проге нашел большой таой массив с парами q&a. Олно плохо - таблицысоответствия нет. то есть какому q какое a соответствует. Экстраполяция, разумеется, не помогла. при бряке !bpr R adr len все так же вылетает. В драйвере по смещению C6C находится call в котором заносится куча вякого хлама в память. При одном из таких занесений происходит бум. При игнорировании и всего этого call и, даже, только одной-двух подмен в памяти драйвер отрабатывает хорошо, но прога вылетает (правда только выдает стандартное виндовое окошко об ошибке). Трассировать это все - Сизифов труд. Появилась мысль, древняя как мир - если гора не идет... Решил забить блок q&a нулями (чем не решение?) но прога проверяет свою чексумму. причем такой умо помрачительной матеатикой... ессно даже поменять 2 рядом тоящих байта и +1 -1 тоже не прокатывает. правда спасает то, что проверка эта до загрузки (ненависсссстного..горлум горлум...) драйвера. сегодня утром пришел мысэл - а если прога считает себя ВСЮ целиком (от 401000 и до упора) то где-то же ей надо хранить что-то, с чем оно сравнивается? Дай бог, что бы не с нулем. и если это что-то и есть, то оно где-то вне проверяемого участка... сегодня буду искать. |
|
Создано: 03 марта 2006 16:11 · Личное сообщение · #29 Прогу я таки запустил. Скопировал секцию .text в конец файла (а целостность проверялась только ее) и подправил адрес, откуда проверять. Забил нулями массив запросов/ответов. Прога запустилась. (при наличии эмулятора ессно) Но, возникли проблемы с созданием/открытием проекта. Правда, как мне кажется, это поправимо (я воспрял духом! результат налицо) Если все удастся, напишу статью о гибридном взломе. Кстати, драйвер отправляет машину в перезагрузку, если после его запуска СРАБАТЫВАЕТ какой-либо бряк, а нге просто стоит. Причем, после запуска проги, при попытке выгрузить драйвер (вероятно он запускается еще раз) прога опять же летит в космос. |
|
Создано: 03 марта 2006 16:14 · Личное сообщение · #30 |
. 1 . 2 . >> |
eXeL@B —› Основной форум —› Как спрятать SoftIce, если IceExt 0.65 не помогает? |