Blog. Just Blog

Исследование защиты программы Exif Tag Remover

Версия для печати Добавить в Избранное Отправить на E-Mail | Категория: Темная сторона Силы | Автор: ManHunter
Скриншот программы Exif Tag Remover
Скриншот программы Exif Tag Remover

Exif Tag Remover предназначена для удаления метаданных Exif, GPS, IPTC и XMP из графических файлов. Есть платные и бесплатные аналоги, но, на мой взгляд, и эта программа тоже имеет место быть. Большой плюс ей прибавляет портативность и интересная функция "обфускация даты". Остается только сделать так, чтобы она не просила денег.

Скачиваем дистрибутив портативной версии, распаковываем, смотрим. Если внимательно изучить список файлов, то оказывается, что это всего лишь надстройка над бесплатной утилитой ExifTool от Phil Harvey. Мне кажется, что как-то неправильно требовать денег за бесплатную программу, да к тому же и чужую. Ну да ладно, оставим это на совести автора, у нас сейчас другая задача. Основное ограничение незарегистрированной программы в том, что за один раз она позволяет обрабатывать не более одного файла:

Ограничение незарегистрированной версии
Ограничение незарегистрированной версии

При попытке ввода в окне регистрации неправильного серийного номера программа вываливает вот такое сообщение:

Сообщение о неправильной регистрации
Сообщение о неправильной регистрации

Исполняемый файл написан на Visual Basic и ничем не упакован, искомая строка находится легко. Она хранится в юникодном формате.

Текст сообщения в файле
Текст сообщения в файле

К этому моменту файл уже должен быть в дизассемблере, там же и поищем код, из которого вызывается эта строка:
  1. .text:004383B5 loc_4383B5:
  2. .text:004383B5                 lea     edx, [ebp-0B0h]
  3. .text:004383BB                 lea     ecx, [ebp-40h]
  4. .text:004383BE                 mov     dword ptr [ebp-0A8h], offset aNotAValid
  5. ; "Not a valid license key..."
  6. .text:004383C8                 mov     dword ptr [ebp-0B0h], 8
  7. .text:004383D2                 call    ds:__vbaVarDup
  8. .text:004383D8                 lea     edx, [ebp-70h]
  9. .text:004383DB                 lea     eax, [ebp-60h]
В свою очередь, сюда выполняется условный переход из кусочка кода, расположенного чуть выше:
  1. .text:00437EDB                 push    offset dword_445028
  2. ; Вызвать функцию проверки
  3. .text:00437EE0                 call    sub_43AAC0
  4. ; Если она вернула AX=FFFFh, то серийный номер правильный
  5. .text:00437EE5                 cmp     ax, 0FFFFh
  6. .text:00437EE9                 mov     [ebp-68h], ebx
  7. .text:00437EEC                 mov     [ebp-70h], edi
  8. .text:00437EEF                 mov     [ebp-58h], ebx
  9. .text:00437EF2                 mov     [ebp-60h], edi
  10. .text:00437EF5                 mov     [ebp-48h], ebx
  11. .text:00437EF8                 mov     [ebp-50h], edi
  12. ; Иначе переход на сообщение о неправильном серийном номере
  13. .text:00437EFB                 jnz     loc_4383B5
Что мы тут видим? По адресу 00437EE0 вызывается функция проверки, если после ее выполнения в регистре AX записано шестнадцатеричное значение FFFFh, то серийный номер считается правильным. Функция проверки слишком громоздкая, чтобы тратить время на ее полный реверс, поэтому просто запишем в ее начало по адресу 0043AAC0 команды MOV EAX, 0FFFFh и RET. В этом случае любой серийный номер будет считаться правильным. Сохраняем изменения, проверяем.

Программа успешно "зарегистрирована"
Программа успешно "зарегистрирована"

После запуска пропатченной программы даже не требуется ввод серийного номера, она сразу же становится зарегистрированной. Лимит по файлам тоже исчез. А это значит, что теперь Exif Tag Remover можно смело переносить на дежурную флешку и брать с собой в дорогу. Очередная защита повержена.

Поделиться ссылкой ВКонтакте Поделиться ссылкой на Facebook Поделиться ссылкой на LiveJournal Поделиться ссылкой в Мой Круг Добавить в Мой мир Добавить на ЛиРу (Liveinternet) Добавить в закладки Memori Добавить в закладки Google
Просмотров: 5081 | Комментариев: 15

Внимание! Статья опубликована больше года назад, информация могла устареть!

Комментарии

Отзывы посетителей сайта о статье
Андрей (24.12.2013 в 09:01):
AyTkACT, jpegtran -copy none
ManHunter (23.12.2013 в 23:45):
H2o, помнится твои тёзки выпустили последний релиз шестерки и в инфо зареклись его дальше ковырять, ибо задолбались раскурочивать защиту. А у меня жена, ребенок, им тоже надо время уделять. Я не такой фанатик :)
AyTkACT (23.12.2013 в 16:43):
Андрей, jpegtran не удаляет exif.
Для оптимизации размера (веса изображения) ничего лучше Advanced JPEG Compressor и Photoshop'a пока не встречал.
Андрей (23.12.2013 в 11:48):
AyTkACT, jpegtran тоже нормально (jpeg в progressive переводить умеет, иногда полезно).
ManHunter (22.12.2013 в 01:15):
Noobie, скриншоты делаются при помощи HyperSnap в режиме захвата "окно или элемент управления". Скриншотится внутренняя часть консольки HIEW и наступает счастье.
егорыч (21.12.2013 в 22:29):
есть ещё консольная jhead с открытым кодом.
AyTkACT (21.12.2013 в 21:31):
Noobie, в ОС начиная с 7ки и выше, HIEW нельзя развернуть на весь экран полноценно. Стандартный оконный режим 1:1 к скринам.
Noobie (21.12.2013 в 20:16):
Давно хотел спросить - каким образом делаются скришоты HIEW? Когда окно развернуто на весь дисплей, не получается, когда окно небольшое, не развернешь по желаемым размерам, слишком мелко. Или я чего-то не знаю про оконный режим HIEW?
H2o (21.12.2013 в 14:42):
ManHunter, хватит уже баловаться, руку набил достаточно, пора приступать к расколу защиты Cubase 7 )))
ManHunter (21.12.2013 в 12:39):
ExifCleaner и пользуюсь
AyTkACT (21.12.2013 в 12:10):
ManHunter, чем сам пользуешься для удаления exif ?

Я пока для своих целей не нашёл ничего лучше ExifCleaner от superutils.com
ManHunter (21.12.2013 в 10:27):
Выделение работает, а копирование выделенного таким образом - нет.
unreal666 (21.12.2013 в 01:44):
> 2 ManHunter

У тебя в javascript.js:

>> function SelectElement(id) {
>>    if (window.opera) {
>>        return false;
>>    }
>>    $('#' + id).sel();
>>    return false;
>>}

Чего так обделил Opera? В ней выделение тоже работает. По крайней мере в v12.1x
ManHunter (20.12.2013 в 13:36):
Вообще странно просить деньги за софт...
Андрей (20.12.2013 в 11:44):
За гуёвину странно просить $15, хотя лицензия на ExifTool позволяет продавать производные.

Добавить комментарий

Заполните форму для добавления комментария
Имя*:
Текст комментария (не более 2000 символов)*:

*Все поля обязательны для заполнения.
Комментарии, содержащие рекламу, ненормативную лексику, оскорбления и т.п., а также флуд и сообщения не по теме, будут удаляться. Нарушителям может быть заблокирован доступ к сайту.
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2017
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.1 сек. / MySQL: 2 (0.0048 сек.) / Память: 4.5 Mb
Наверх