Популярные статьи

Боремося з платними jar-архівами

Рунет вже кілька років поспіль пещріт всілякими засобами швидкого збагачення. Одним з подібних способів є використання платних архівів. В принципі, нічого поганого у використанні подібних інструментів я не бачу, якщо, звичайно, не зловживати цим. Для розробників і письменників даний спосіб є чи не єдиним засобом гарантованого заробітку. Користувач качає контент і на розпакуванню пропонує купити його відправкою СМС з телефонного номера. Я сам так заробляв на своїх книгах, беручи за них 50 рублів. Дуже зручно.

Але коли жадібні до чужих грошей люди починають сходити з розуму, призначаючи за крадені об'єкти авторського права суми від 500 і більше рублів, то вже мимоволі згадаєш про свою професію комп'ютерника.

Найкраще вламуються zip-архіви. Набагато складніше rar. Те зламати все ж їх можна. Однак, з вашого дозволу, я залишу поки дані архіватори на наступну статтю. А поки займемося тим, що мене здивувало-платні java програми для телефонів.

Мій молодший двоюрідний брат одного разу скачав з мережі іграшку під назвою God of War 2. При установці вона зажадала відправити СМС на короткий номер. Як програміста, мене зацікавив спосіб запаковування.

Отже, що таке jar? Це всього лише архів, в який збираються всі компоненти java додатки. І відкрити його можна через WinRar або 7zip.

І відкрити його можна через WinRar або 7zip

Так виглядають нутрощі jar-файлу

Ми бачимо набір різних файлів. Нас цікавить файл aplicationc.class. У ньому і знаходиться алгоритм порівняння введеного коду. Але залишимо його поки на потім. На скріншоті явно кидається в очі текстовий файл p.txt. Не замислюючись, відкриємо його.

У ньому виявляється всього один рядок, що містить набір ціфр- 43122. Судячи з усього, це і є наш пароль від архіву. Чому я так вирішив? Пароль повинен призначатися людиною, який розмістив платний архів. Даний архіватор дуже примітивний і зчитує вміст даного пароля з текстового файлу.

Але не будемо ризикувати. Замість цього використовуємо утиліту jad. Для любителів віконець скажу відразу, що вона консольная. Але використовувати її вкрай просто.

Що робить ця програма? Вона відновлює вихідний код java class. Тобто ми будемо мати вихідний код самої програми.

Давайте закинемо jad в директорію з розпакованої грою. Тепер натиснемо клавіші Win + R, що спричинить за собою запуск вікна виконати (Run). Заб'ем в його поле CMD і натиснемо Enter. Повинна з'явитися консоль з командним рядком.

Введіть там команду CD шлях з архівом.

Тепер зробіть приблизно те ж, що і на моєму скріншоті:

І натисніть Enter. Jad запуститься і пропарсіт файл, а в поточній діреткоріі з'явиться файл aplicationc.jad. Це як раз і є питання, що цікавлять нас сорци. Для зручності замінимо розширення jad на java. Відкриємо файл або блокнотом, або Notepad ++. Це редактор коду з підсвічуванням. Він безкоштовний.

Я використовував Notepad ++. Відкриємо наш файл і відразу ж вобьем в поле Знайти наші цифри, виявлені раніше і тиснемо кнопку «Шукати далі». Редактор тут же знайде цей рядок.

Редактор тут же знайде цей рядок

Як бачите, в 38 рядку є оператор if, що порівнює пароль і встановлює true (істину) з додатком. Кажучи російською мовою, це означає, що програмі подобається наш пароль.

Зі спокійною совістю вводимо пароль у вікно архіватора і тисне далі. Гра спокійно встановиться на телефон. Можна грати J

Файлу з паролем може і не бути. Даний архіватор просто дуже слабенький. У цьому випадку нам допоможе jad і класи джава з архіву. Там шукаємо оператори порівняння.

З найкращими побажаннями,

В'ячеслав Головлев

Отже, що таке jar?
Чому я так вирішив?
Що робить ця програма?