eXeL@B —› Основной форум —› Про анти-дебажные выкрутасы FRAPS'a |
<< . 1 . 2 . |
Посл.ответ | Сообщение |
|
Создано: 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. Как она еще может вывернуться ? |
|
Создано: 08 декабря 2005 23:44 · Личное сообщение · #2 |
|
Создано: 09 декабря 2005 08:24 · Поправил: TOG · Личное сообщение · #3 mysterio Спасибо за плагин. Да, теперь Олька робит нормально. Но переменную-призрака не ловит все равно. Будем искать. Ara пишет: А ваще прочитайте статью небезъизвестоного Марио555 в Хакере за №57 Да, статьи безусловно хороши. И очень похоже на этот случай. Если один физический адрес проецируется на 2 разные виртуальные страницы, то изменения в одной, приводят к изменениям во второй , а отладчик ничего не видит. Щас проверю...... Все равно нефкурил. Память аллоченая. Как это можно реализовать, чтобы одну физическую страницу спроецировать на 2 виртуальные ? |
|
Создано: 09 декабря 2005 14:56 · Личное сообщение · #4 |
|
Создано: 09 декабря 2005 19:15 · Личное сообщение · #5 |
|
Создано: 10 декабря 2005 03:45 · Личное сообщение · #6 |
|
Создано: 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 НИКОГДА НЕ СРАБОТАЕТ, хотя значение по этому адресу меняется. Вот и вся "антиотладка". Просто и изящно. Странно, что Крис Касперски в своей статье приводил такие замысловатые примеры с перекрывающимися секциями файла. Имхо этот пример более прост и нагляден. Апплодисменты |
|
Создано: 11 декабря 2005 13:18 · Личное сообщение · #8 |
|
Создано: 11 декабря 2005 16:17 · Личное сообщение · #9 |
|
Создано: 12 декабря 2005 20:14 · Личное сообщение · #10 |
|
Создано: 23 декабря 2005 11:48 · Поправил: TOG · Личное сообщение · #11 Вниманию всех тех кто ломал, ломает, собирается ломать FRAPS. Скриншоты он пишет только в BMP, потому-что процедуры записи JPEG и PNG там просто отсутствуют. Ограничение на запись видео отламывается. Противный логотип в AVI файлах тоже отламывается. Даже имя юзера можно свое вставить. А со скриншотами засада. Эти процедуры придется дописывать самому. Проще через GDIPLUS.dll. Короче автор фрапса жжот. ПС. Если у кого есть исходник на асме записи JPEG и PNG файлов через GDIPLUS, поделитесь плиз. |
<< . 1 . 2 . |
eXeL@B —› Основной форум —› Про анти-дебажные выкрутасы FRAPS'a |