Нажмите CTRL-D чтобы добавить нас в закладки
Внимание! Вы находитесь в незащищенном режиме (HTTP). Для перехода в защищенный режим SSL, нажмите здесь
HackZone.RU - Исследование защиты программы Noiseware Professional Актуальные базы 2GIS в форматах CSV,Excel,SQL
Войти / Регистрация / Участники
Определение даты выпуска iPhone по серийному номеру
-
Поиск по сайту
Форумы



Реклама

Поиск ТОП Добавить публикацию

Исследование защиты программы Noiseware Professional

23.01.2013


Скриншот программы Noiseware Professional

Noiseware Professional от компании Imagenomic - одна из лучших программ для удаления артефактов и цифрового шума с фотографий. Все действия выполняются буквально в несколько кликов, есть пакетный режим работы и множество ручных настроек для профессионалов. Но, как обычно бывает в таких случаях, весь кайф портит запредельная стоимость программы.

Скачиваем дистрибутив, устанавливаем, запускаем. Сразу появляется окно с предложением заплатить. Ну или с предупреждением, что триальный период закончился. Это кому как повезет.


Триальное окно

Самой приметной строчкой в этом окне является "is not registered", поищем ее в файле. Он, кстати, ничем не упакован. Все лежит как на блюдечке. Там же и другие строчки, так или иначе связанные с незарегистрированным статусом программы:


Нехорошая строка найдена

Дальше все по классической схеме. В дизассемблере смотрим на участок кода, который ссылается на эту строку, а также все, что относится к переходам на этот участок. Вот что находится:
  1. .text:00401977                 add     eax, 10h
  2. .text:0040197A                 mov     [esp+1Ch+lpString], eax
  3. ; Указатель на участок памяти
  4. .text:0040197E                 mov     ecx, dword_4B5A68
  5. ; Загрузить в EAX значение из указателя
  6. .text:00401984                 mov     eax, [ecx-0Ch]
  7. ; Если EAX=0, то программа не зарегистрирована
  8. .text:00401987                 test    eax, eax
  9. .text:00401989                 mov     [esp+1Ch+var_4], 0
  10. .text:00401991                 jz      short loc_401A03
  11. ; Иначе добавить в окно информацию о ID программы и регистрационном имени
  12. .text:00401993                 mov     edx, dword_4B5A6C
  13. .text:00401999                 push    edx
  14. .text:0040199A                 lea     eax, [esp+20h+lpString]
  15. .text:0040199E                 push    offset aS_0     ; " %s"
  16. .text:004019A3                 push    eax
  17. .text:004019A4                 call    sub_4018E0
  18. .text:004019A9                 mov     ecx, ArgList
  19. .text:004019AF                 push    ecx             ; ArgList
  20. .text:004019B0                 lea     edx, [esp+2Ch+lpString]
  21. .text:004019B4                 push    offset aS       ; "\r\n %s"
  22. .text:004019B9                 push    edx             ; int
  23. .text:004019BA                 call    sub_401900
  24. .text:004019BF                 mov     eax, dword_4B5A68
  25. .text:004019C4                 push    eax             ; ArgList
  26. .text:004019C5                 lea     ecx, [esp+38h+lpString]
  27. .text:004019C9                 push    offset aProductIdS
  28. ; "\r\n\r\n Product ID: %s"
  29. .text:004019CE                 push    ecx             ; int
  30. .text:004019CF                 call    sub_401900
  31. .text:004019D4                 add     esp, 24h
  32. .text:004019D7                 push    0               ; nCmdShow
  33. .text:004019D9                 push    3F4h            ; nIDDlgItem
  34. .text:004019DE                 mov     ecx, esi
  35. .text:004019E0                 call    ?GetDlgItem@CWnd@@QBEPAV1@H@Z
  36. ; CWnd::GetDlgItem(int)
  37. .text:004019E5                 mov     ecx, eax
  38. .text:004019E7                 call    ?ShowWindow@CWnd@@QAEHH@Z
  39. ; CWnd::ShowWindow(int)
  40. .text:004019EC                 push    0               ; nCmdShow
  41. .text:004019EE                 push    3F5h            ; nIDDlgItem
  42. .text:004019F3                 mov     ecx, esi
  43. .text:004019F5                 call    ?GetDlgItem@CWnd@@QBEPAV1@H@Z
  44. ; CWnd::GetDlgItem(int)
  45. .text:004019FA                 mov     ecx, eax
  46. .text:004019FC                 call    ?ShowWindow@CWnd@@QAEHH@Z
  47. ; CWnd::ShowWindow(int)
  48. .text:00401A01                 jmp     short loc_401A4E
  49. .text:00401A03 ; ----------------------------------------------------
  50. .text:00401A03 loc_401A03:
  51. ; Триальная ветка алгоритма
  52. .text:00401A03                 test    edi, edi
  53. .text:00401A05                 jle     short loc_401A20
  54. ; Сообщение, если триальный срок еще не закончился
  55. .text:00401A07                 push    edi
  56. .text:00401A08                 lea     edx, [esp+20h+lpString]
  57. .text:00401A0C                 push    offset aTheEvaluationP
  58. ; "The evaluation period will expire in %d"...
  59. .text:00401A11                 push    edx
  60. .text:00401A12                 call    sub_4018E0
  61. .text:00401A17                 add     esp, 0Ch
  62. .text:00401A1A                 mov     byte ptr [esi+74h], 0
  63. .text:00401A1E                 jmp     short loc_401A36
  64. .text:00401A20 ; -----------------------------------------------
  65. .text:00401A20 loc_401A20:
  66. ; Сообщение, если триальный срок уже закончился
  67. .text:00401A20                 lea     eax, [esp+1Ch+lpString]
  68. .text:00401A24                 push    offset aTheEvaluatio_0
  69. ; "The evaluation period has been expired."...
  70. .text:00401A29                 push    eax
  71. .text:00401A2A                 call    sub_4018E0
  72. .text:00401A2F                 add     esp, 8
  73. .text:00401A32                 mov     byte ptr [esi+74h], 1
  74. .text:00401A36 loc_401A36:
  75. .text:00401A36                 push    offset aThisSoftwareIs
  76. ; "This software is not registered."
  77. .text:00401A3B                 push    4C3h            ; nIDDlgItem
  78. .text:00401A40                 mov     ecx, esi
  79. .text:00401A42                 call    ?GetDlgItem@CWnd@@QBEPAV1@H@Z
  80. ; CWnd::GetDlgItem(int)
  81. .text:00401A47                 mov     ecx, eax
  82. .text:00401A49                 call    ?SetWindowTextA@CWnd@@QAEXPBD@Z
  83. ; CWnd::SetWindowTextA(char const *)
  84. .text:00401A4E loc_401A4E:
  85. .text:00401A4E                 mov     edi, [esp+1Ch+lpString]
  86. .text:00401A52                 push    edi             ; lpString
  87. .text:00401A53                 push    4C4h            ; nIDDlgItem
  88. .text:00401A58                 mov     ecx, esi
  89. .text:00401A5A                 call    ?GetDlgItem@CWnd@@QBEPAV1@H@Z
  90. ; CWnd::GetDlgItem(int)
  91. .text:00401A5F                 mov     ecx, eax
  92. .text:00401A61                 call    ?SetWindowTextA@CWnd@@QAEXPBD@Z
  93. ; CWnd::SetWindowTextA(char const *)
Все должно быть понятно. Берется указатель по адресу 004B5A68, затем относительно него считывается двойное слово. Если оно равно нулю, то программа незарегистрирована, иначе все в порядке. Точка отсчета найдена, теперь посмотрим перекрестные ссылки, которые относятся к этому указателю.


Перекрестные ссылки на указатель

Не так много. Посмотрим их все по очереди:
  1. .text:00401570                 mov     eax, dword_4B5A68
  2. .text:00401575                 cmp     dword ptr [eax-0Ch], 0
  3. .text:00401579                 push    esi
  4. .text:0040157A                 mov     esi, ecx
  5. .text:0040157C                 jz      short loc_401582
Практически такая же проверка, забиваем условный переход по адресу 0040157C NOPами. Вторая перекрестная ссылка относится к вышеуказанному коду, там по адресу 00401991 тоже патчим условный переход. Третья находится чуть ниже по коду, там, по всей видимости обрабатывается "Product ID", это нам не интересно, пропускаем.
  1. .text:004143A8                 mov     eax, dword_4B5A68
  2. .text:004143AD                 cmp     dword ptr [eax-0Ch], 0
  3. .text:004143B1                 jz      short loc_41442A
Тут также забиваем условный переход NOPами.
  1. .text:0041A060                 mov     eax, dword_4B5A68
  2. .text:0041A065                 cmp     dword ptr [eax-0Ch], 0
  3. .text:0041A069                 jnz     short loc_41A084
А вот тут условный переход надо заменить на безусловный, так как условие проверки обратное. Теперь можно сохранить изменения и попробовать запустить программу. Триальное окно при запуске пропало, в окне "О программе" сказано, что программа зарегистрирована (надпись на скриншоте уже я немного подрихтовал). Других ограничений в программе нет.


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

Вот и все, программа работает как зарегистрированная, все ограничения по времени работы сняты.

При копировании материалов ссылка на HackZone.RU обязательна

Добавить страницу в закладки

 Детали
Категория: Взлом
Опубликовал: BRUNOTTI
Просмотров: 7544
Проголосовало через SMS: 0
  Разместить у себя на сайте
Прямая ссылка
HTML
BBCode ссылка
BBCode ссылка с текстом

 Комментарии (оставить свой комментарий можно здесь)
Отличная работа! как раз сейчас учу крэкинг
28.01.2013 / pbetro
Только зарегистрированные пользователи могут оставлять комментарии

Зарегистрироваться *** Авторизоваться


 Последние новости и статьи  Последние сообщения с форумов
  • Самозащита от вируса Petya
  • Google Pixel взломали за 60 секунд
  • В CMS Joomla обнаружена критическая 0-day уязвимость
  • ФБР не смогло взломать протокол шифрования переписки террористов ...
  • Полиция обыскала дом предполагаемого создателя платежной системы ...
  • Google: квантовый ПК будет в 100 млн раз быстрее стандартных чипо...
  • "Лаборатория Касперского" констатирует усиление атак кибергруппир...
  • Microsoft Edge откроет исходные коды ChakraCore
  • Anonymous объявили 11 декабря «днём троллинга» ИГИЛ
  • Миллионы телевизоров, смартфонов и маршрутизаторов оказались уязв...

    Все новости... Все статьи... Прислать новость RSS
  • Разное / Предложения работы » Куплю пароли обнальщиков
  • Взлом и безопасность / Новичкам » Re: Взлом Whatsapp.Viber.Instagram. facebook.Узнаем взломаем...
  • Разное / Предложения работы » Re: Услуги хакера и взлом на заказ Заказать взлом? - пишите ...
  • Взлом и безопасность / Новичкам » Взламать фейсбук
  • Разное / Предложения работы » Re: Нужен взлом Вайбер
  • Разное / Предложения работы » Есть ли настоящая возможность украсть переписку Viber?
  • Разное / Предложения работы » скачать дистрибутив с фтп
  • Взлом и безопасность / Новичкам » Re: Профессиональные услуги по взлому
  • Взлом и безопасность / Программы » Re: Взлом программы
  • Разное / Предложения работы » Re: Нужен взлом вконтакте

    Все форумы... RSS


  • Разместить рекламу
    © HackZone Ltd. 2007-2012. Все права зарегистрированы.
    Перепечатка материалов без согласования и указания источника будет преследоваться по Закону

    О проекте | История проекта | Размещение рекламы | Обратная связь | Правила поведения на портале
    Ya-Cyt службы мониторинга серверов

    #{title}

    #{text}

    x

    #{title}

    #{text}