Сейчас на форуме: vsv1, asfa, tyns777 (+4 невидимых)

 eXeL@B —› Вопросы новичков —› Нужен совет по крэкингу программы. Что я делаю не так?
Посл.ответ Сообщение

Ранг: 0.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 05 ноября 2016 15:31 · Поправил: Thomas
· Личное сообщение · #1

Добрый день, я новичок в обратной разработке и сейчас пытаюсь крякнуть программу RMS, а точнее ее модуль remote manipulator system - viwer ( Официальный сайт, Ссылка с сайта на RMS Viwer ).

Без лицензии триал на 30 дней. Если получить "Бесплатную лицензию" то триал снимается, но появляется ограничение в 10 компьютеров, которые можно подключить (не знаю, если ли такое ограничение пока не введешь ключ). P.S.: Ключ для "Неограниченной лицензии" не генерируется в программе, а дается разработчиком.


Моя задача: снять триал и ограничение в 10 компьютеров (либо заменить 10 компьютеров на число 9999).

Посмотрев обучающие материалы и погуглив, я понял что для начала в OllyDBG мне нужно найти функцию которая генерирует ключ, функцию которая отвечает за подсчет подключенных компьютеров и функцию которая считает дни триала. Для этого я хотел использовать Search for -> All Referenced Strings, что бы найти функции рядом со строками:


Но поиск ничего не дал, пролистал строки, многие строки были похожи на это:
Code:
  1.  ASCII 11,"TAppExtensionList"
  2.  
  3.  ASCII "-TList<LicenseManager.TLicenseKey>.TEnumerator5"
  4.  
  5.  ASCII "!TList<LicenseManager.TLicenseKey>&"


Провел поиск по ключевым словам trial, license, нашел это:

Code:
  1. 007B4BB8  MOV EDX,007B53F8                         UNICODE "product"
  2. 007B4C10  MOV EDX,007B5414                         UNICODE "version"
  3. 007B4C6A  MOV EDX,007B5430                         UNICODE "text_version"
  4. 007B4CC2  MOV EDX,007B5458                         UNICODE "beta_version"
  5. 007B4D1C  MOV EDX,007B5480                         UNICODE "protocol_version"
  6. 007B4D76  MOV EDX,007B54B0                         UNICODE "kind"
  7. 007B4DD0  MOV EDX,007B54C8                         UNICODE "id"
  8. 007B4E28  MOV EDX,007B54DC                         UNICODE "device_name"
  9. 007B4E80  MOV EDX,007B5500                         UNICODE "country_code"
  10. 007B4EDA  MOV EDX,007B5528                         UNICODE "user_data"
  11. 007B4F32  MOV EDX,007B5548                         UNICODE "sync_data"
  12. 007B4F8A  MOV EDX,007B5568                         UNICODE "ratio"
  13. 007B5002  MOV EDX,007B5580                         UNICODE "trial_state"
  14. 007B505C  MOV EDX,007B55A4                         UNICODE "license_key"
  15. 007B50CA  MOV EDX,007B55C8                         UNICODE "days_left"


Сначала я подумал что не могу найти строки из за того, что программа упакована. Проверил ее через DIE, упаковки не было.


В Hex редакторе, в колонке ASCII, тоже не нашел этих строк, там только это:


Пробовал искать через Memory Map, не нашел. Думаю что проблема в чем то другом.


Итак, из всего проделанного выше, я сделал вывод, что где-то допускаю ошибку или у меня неправильный подход к решению проблемы.

Я хотел бы получить совет и узнать:

1. Почему я не могу найти текстовые строи из программы и как их найти.

2. То ли я вообще ищу для снятия триала и ограничения подключаемых компьютеров.

3. И общие советы для решения моей задачи .



Ранг: 10.7 (новичок), 2thx
Активность: 0.060
Статус: Участник

Создано: 05 ноября 2016 15:40
· Личное сообщение · #2

Строки запросто могут храниться где-нибудь снаружи PE-файла. Пробегитесь поиском по всем файлам, поставляемым вместе с данным приложением.

| Сообщение посчитали полезным: Thomas

Ранг: 0.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 05 ноября 2016 15:54 · Поправил: Thomas
· Личное сообщение · #3

b0r3d0m пишет:
Строки запросто могут храниться где-нибудь снаружи PE-файла. Пробегитесь поиском по всем файлам, поставляемым вместе с данным приложением.


Спасибо, я очень сильно затупил. В папке с программой лежит файл Russian.lng и в нем содержатся все строки в таком виде:
Code:
  1. fm_reg_key_successfully_added = Ключ успешно добавлен в хранилище лицензий.

По ним я смог найти строки и функции в Olly.



Ранг: 95.1 (постоянный), 247thx
Активность: 0.260.01
Статус: Участник

Создано: 05 ноября 2016 16:19 · Поправил: unknownproject
· Личное сообщение · #4

В делфи нужно искать диалог/форму по названию класса - TFormReg/TDialogReg и тд.В пределах класса будут заголовки процедур - Button1Click,FormCreate,FormShow и тд, а вот выше этих заголовков будут как раз указатели на код этих самых процедур.Ща покажу на примере своего софта.







В коде процедуры уже можно будет спокойно распознать все строчные константы.

Если название (суть: поле Name, задаваемое или в коде, или в свойствах) неизвестно, то делаем активной нужную форму/диалог и ставим отладку на паузу.Потом валим во вкладку окон в олли и срисовываем результат:


-----
TEST YOUR MIGHT


| Сообщение посчитали полезным: Thomas

Ранг: 0.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 07 ноября 2016 15:52
· Личное сообщение · #5

Решено. Всем спасибо за ответы.


 eXeL@B —› Вопросы новичков —› Нужен совет по крэкингу программы. Что я делаю не так?
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати