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

Поделиться ссылкой ВКонтакте
Просмотров: 2510 | Комментариев: 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-2024
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.1 сек. / MySQL: 2 (0.0049 сек.) / Память: 4.5 Mb
Наверх