Blog. Just Blog

Исследование защиты программы Photo Date Changer

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

Уникальная по своим возможностям Photo Date Changer непременно должна быть в арсенале каждого профессионального фотографа. Ведь больше ни одна программа в мире не способна выполнить вселенскую задачу - привести время создания и модификации файла фотографии в соответствие со временем создания снимка из EXIF. А кто еще сможет так мастерски изменить дату снимка в EXIF? Photo Date Changer - отличный выбор! И поверьте, каждый цент, вложенный в ее покупку, будет оправдан! Да шучу я, шучу. Обычная, никому нахер не нужная программа, по качеству не дотягивающая даже до школьного реферата по информатике.

Больше 13 мегов в упакованном инсталляторе... *facepalm*... Установим и посмотрим, что же там такого наворочено. Файл exiftool.exe в папке с программой однозначно указывает, что все это поделие - очередная надстройка над бесплатной утилитой ExifTool от Phil Harvey. Упомянуть Фила в благодарностях или в описании программы аффтару, видимо, не позволила гордость. Так же аффтар скромно умолчал, что всю работу с метаданными в файлах выполняет как раз ExifTool, а самому разобраться в формате EXIF не хватило мозгов. Зато десятку баксов вынь да положь, куда ж без этого.

При старте незарегистрированной программы появляется окно с предложением выложить бабло, а также упоминается ограничение на обработку не более 5 файлов. Начинаем искать зацепки для исследования. У всех свои методы, я обычно начинаю с поиска по файлам характерных строк типа "trial", "registered", "licensed" и тому подобных. Итак, по слову "registered" в файле pdc.dll обнаруживается следующая строка:

Строка в файле
Строка в файле

Значит в дизассемблер отправится именно эта библиотека. Когда анализ файла будет закончен, переходим по адресу, откуда есть перекрестные ссылки на эту строку:
  1. ; Вызвать функцию проверки
  2. .text:100019A2                 call    sub_10017800
  3. .text:100019A7                 test    al, al
  4. ; Если AL!=0, то вывести строку о зарегистрированной программе
  5. .text:100019A9                 jz      loc_10001AB3
  6. .text:100019AF                 push    432h
  7. .text:100019B4                 mov     ecx, ebx
  8. .text:100019B6                 call    sub_1002E181
  9. .text:100019BB                 mov     ecx, [eax+20h]
  10. .text:100019BE                 push    edi
  11. .text:100019BF                 push    edi
  12. .text:100019C0                 push    31h
  13. .text:100019C2                 push    ecx
  14. .text:100019C3                 mov     [esp+28h], eax
  15. .text:100019C7                 call    ds:SendMessageW
  16. .text:100019CD                 push    eax
  17. .text:100019CE                 call    ?FromHandle@CGdiObject@@SGPAV1@PAX@Z
  18. .text:100019D3                 mov     eax, [eax+4]
  19. .text:100019D6                 lea     edx, [esp+0ECh]
  20. .text:100019DD                 push    edx
  21. .text:100019DE                 push    5Ch
  22. .text:100019E0                 push    eax
  23. .text:100019E1                 call    ds:GetObjectW
  24. .text:100019E7                 mov     ecx, 17h
  25. .text:100019EC                 lea     esi, [esp+0ECh]
  26. .text:100019F3                 lea     edi, [esp+8Ch]
  27. .text:100019FA                 rep movsd
  28. .text:100019FC                 lea     ecx, [esp+8Ch]
  29. .text:10001A03                 push    ecx
  30. .text:10001A04                 mov     dword ptr [esp+0A0h], 2BCh
  31. .text:10001A0F                 lea     esi, [ebx+268h]
  32. .text:10001A15                 call    ds:CreateFontIndirectW
  33. .text:10001A1B                 push    eax
  34. .text:10001A1C                 mov     ecx, esi
  35. .text:10001A1E                 call    sub_10025514
  36. .text:10001A23                 test    esi, esi
  37. .text:10001A25                 jz      short loc_10001A2A
  38. .text:10001A27                 mov     esi, [esi+4]
  39. .text:10001A2A loc_10001A2A:
  40. .text:10001A2A                 push    1
  41. .text:10001A2C                 push    esi
  42. .text:10001A2D                 mov     esi, [esp+20h]
  43. .text:10001A31                 mov     edx, [esi+20h]
  44. .text:10001A34                 push    30h
  45. .text:10001A36                 push    edx
  46. .text:10001A37                 call    ds:SendMessageW
  47. ; Строка сообщения о зарегистрированной программе
  48. .text:10001A3D                 push    offset aYouAreUsingARe
  49. ; "You are using a registered version of t"...
  50. .text:10001A42                 lea     ecx, [esp+30h]
  51. .text:10001A46                 call    sub_10002150
Патчим функцию проверки, чтобы она всегда возвращала AL=1. По адресу 10017800 вписываем хорошо известную нам пару команд MOV AL,1 и RET. Сохраняем изменения, запускаем.

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

Стартовое окно регистрации пропало, ограничений на 5 файлов тоже нет. Цель достигнута. Мне кажется, что подобные чудо-программы пишутся специально для выведения крякеров из состояния душевного равновесия. Смотреть на листинг через перманентный фейспалм очень неудобно.

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

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

Комментарии

Отзывы посетителей сайта о статье
ManHunter (16.12.2016 в 11:17):
Ок, для блондинок процитирую:
ЦитатаДа шучу я, шучу. Обычная, никому нахер не нужная программа, по качеству не дотягивающая даже до школьного реферата по информатике.

Это означает, что программа - унылое говно, весь ее функционал ущербный чуть более, чем полностью, качать ее ни в коем случае не надо, пользоваться тем более, а автору надо убиться об стену.

А сама статья про исследование ее защиты. Ни единого слова про Exif или про программы для работы с датами и тегами тоже нет. Поэтому вопрос
ЦитатаА разве Exifer всего этого не может?

абсолютно неуместный. Может, и еще куча другого реально офигенского софта может, но речь тут ВООБЩЕ не о них.
solokot (16.12.2016 в 10:20):
ЦитатаА разве Exifer всего этого не может?

Цитатаsolokot, неужели дальше половины первого абзаца не читал?


Да вроде читал. И изменение даты-времени, и установка даты создания файла по дате съёмки из exif в Exiferе есть. Ок, пусть я буду блондинка, но что я не увидел?
pawel97 (10.12.2016 в 16:57):
В dll зашит белый список из 5! преобразованных серийников. ВОТ сколько чуваков повелось и потратило деньги на ЭТО. Лень ковырять преобразования, просто меняем переход после первого сравнения на безусловный.
x86: 10015EB9
x64: 18001A1BF
И вводим любой сериал.
Улыбнули названия других его прог - "A Better File Rename", "Better File Attributes". Видел их автор тотал коммандера? :)
Never (10.12.2016 в 14:17):
ЦитатаСмотреть на листинг через перманентный фейспалм очень неудобно.
- чувство юмора тебя не оставляет )))
ManHunter (10.12.2016 в 11:32):
solokot, неужели дальше половины первого абзаца не читал?
solokot (10.12.2016 в 09:01):
А разве Exifer всего этого не может?
ManHunter (10.12.2016 в 01:03):
Да там одна сплошная пичалька, а не программа. С русскими названиями каталогов не работает, файлы .jpeg не воспринимает, надо переименовывать именно в .jpg, и это только за несколько минут тестирования. Внутри еще хуже, налеплена куча компонентов и подперта костыликами. Про ExifTool написал в статье.
pawel97 (10.12.2016 в 00:56):
Вот так вот читаешь начало, и аж купить захотелось, ибо учитель плохого не посоветует. :) С ентого погромиста надо бы бабок поиметь за такую рекламу.

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

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

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