Сейчас на форуме: YDS, _MBK_, user99 (+10 невидимых)

 eXeL@B —› Основной форум —› Про анти-дебажные выкрутасы FRAPS'a
<< . 1 . 2 .
Посл.ответ Сообщение


Ранг: 84.8 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 07 декабря 2005 12:38 · Поправил: TOG
· Личное сообщение · #1

Ломаю прогу FRAPS (v2.7.1, build: 5499, http://www.fraps.com). http://www.fraps.com). Защита: Armadillo (1 процесс).
(ZOoMiK ее вроде уже сломал, но я сам хочу).
Прога создает 3 потока, и еще ее DLL висит и хучит клавиатурные события.
Есть переменная, которая в один прекрасный момент обнуляется. И я никак не могу отследить
этот момент. Железный бряк не срабатывает именно при записи в этот байт. Везде вокруг срабатывает,
а на этот адрес - нифига! Запускал SuperBPM - тоже бряк не робит. Думал, если она сама дебажные регистры кончает, тоесть вызывает исключение и потом правит поля в структуре CONTEXT, так ведь не вызывает она исключения !! (faults on - поставил, бряк на KiUserExceptionDispatcher). Че за детектив ?
Пользуюсь SoftIce.
Как она еще может вывернуться ?




Ранг: 332.0 (мудрец)
Активность: 0.180
Статус: Участник
•Pr0tEcToRs KiLLeR•

Создано: 08 декабря 2005 23:44
· Личное сообщение · #2

Ara пишет:
статья безусловно рулез, жаль сюда из-лени вышеназванного нашего товарища ее еще не запостили...

а я тут при чём ? я что за руки кого-то держу ? =)




Ранг: 84.8 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 09 декабря 2005 08:24 · Поправил: TOG
· Личное сообщение · #3

mysterio
Спасибо за плагин.
Да, теперь Олька робит нормально. Но переменную-призрака не ловит все равно. Будем искать.

Ara пишет:
А ваще прочитайте статью небезъизвестоного Марио555 в Хакере за №57


Да, статьи безусловно хороши.

И очень похоже на этот случай. Если один физический адрес проецируется на 2 разные виртуальные
страницы, то изменения в одной, приводят к изменениям во второй , а отладчик ничего не видит.
Щас проверю......

Все равно нефкурил. Память аллоченая. Как это можно реализовать, чтобы одну физическую страницу
спроецировать на 2 виртуальные ?




Ранг: 84.8 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 09 декабря 2005 14:56
· Личное сообщение · #4

Тээкс. Раунд II.
Вот, что я выяснил:
Эта страница памяти наполняется данными с помощью ф-и MapViewOfFile.
Поправьте меня если я ошибаюсь: при изменениях файла, его образ в памяти будет автоматически
меняться ? Или какая там система ?




Ранг: 283.6 (наставник), 56thx
Активность: 0.130
Статус: Участник
Author of GeTaOEP

Создано: 09 декабря 2005 19:15
· Личное сообщение · #5

Господа,простите если немного не в тему,но мог бы кто-нибудь выложить этот .djvu в какое-нибудь другое место??
А то качать 8МБ со скоростью 0.5КБ в секунду с этого WebFile - это можно просто повеситься .

-----
the Power of Reversing team





Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 10 декабря 2005 03:45
· Личное сообщение · #6

DillerInc, качай *.chm без картинок здесь http://wisesoft.ru/ .




Ранг: 84.8 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 11 декабря 2005 10:17
· Личное сообщение · #7

Братцы ! Нашел !
Ёмаё !!!
Кто про этот фокус знает, камнями не закидывайте, думаю, что многим это будет интересно !

Кто уже забыл о чем тут речь, напомню:
Есть переменная-призрак, ее значение изменяется, но "BPM _ADDRESS RW" на этот адресок никогда
не срабатывает.

Что это было(прогу сам набросал):

invoke CreateFileMapping, -1, NULL, PAGE_READWRITE, 0, 1000h, offset sMap1
mov hCMap1, eax

invoke MapViewOfFile, hCMap1, FILE_MAP_ALL_ACCESS, 0, 0, 1000h
mov hMap1, eax

invoke MapViewOfFile, hCMap1, FILE_MAP_ALL_ACCESS, 0, 0, 1000h
mov hMap2, eax

mov edi, hMap2
mov eax, 1
mov [edi], eax

Заметьте, один и тот-же объект hCMap1 проецируется по двум различным адресам hMap1 и hMap2.
Мы пишем во второй - hMap2, а изменения автоматически происходят в первом - hMap1, и бряк
"bpm hMap1 rw" установленный на hMap1 НИКОГДА НЕ СРАБОТАЕТ, хотя значение по этому адресу
меняется. Вот и вся "антиотладка". Просто и изящно. Странно, что Крис Касперски в своей статье
приводил такие замысловатые примеры с перекрывающимися секциями файла. Имхо этот пример более прост и нагляден.

Апплодисменты



Ранг: 40.9 (посетитель)
Активность: 0.020
Статус: Участник
diProtector Software

Создано: 11 декабря 2005 13:18
· Личное сообщение · #8

TOG у меня все работает. Используй вместо "hMap1" реальный адрес




Ранг: 84.8 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 11 декабря 2005 16:17
· Личное сообщение · #9

Broken Sword
Подожди-ка. Ты этот примерчик откомпилил и когда ты пишешь в адрес hMap2 у тебя бряк на адрес hMap1 срабатывает ??? Ёмаё ! Не может быть ! Поподробнее напиши.




Ранг: 84.8 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 12 декабря 2005 20:14
· Личное сообщение · #10

Для закрепления пройденного материала хочу поинтересоваться у "монстров отладки":
Как работают команды софтайса: PAGE и PHYS ? (я имею ввиду реализацию)
Что-то подобное в ринг3 смастерить можно ?




Ранг: 84.8 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 23 декабря 2005 11:48 · Поправил: TOG
· Личное сообщение · #11

Вниманию всех тех кто ломал, ломает, собирается ломать FRAPS.
Скриншоты он пишет только в BMP, потому-что процедуры записи JPEG и PNG там просто отсутствуют.
Ограничение на запись видео отламывается. Противный логотип в AVI файлах тоже отламывается.
Даже имя юзера можно свое вставить. А со скриншотами засада. Эти процедуры придется дописывать
самому. Проще через GDIPLUS.dll.
Короче автор фрапса жжот.

ПС. Если у кого есть исходник на асме записи JPEG и PNG файлов через GDIPLUS, поделитесь плиз.


<< . 1 . 2 .
 eXeL@B —› Основной форум —› Про анти-дебажные выкрутасы FRAPS'a
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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