БлогNot. "Телефонные базы операторов" - ломаем лохотрон Phone-A

"Телефонные базы операторов" - ломаем лохотрон Phone-A

В последнее время на многих сайтах, например, здесь, предлагается бесплатно скачать телефонные базы сотовых операторов, в том числе, МТС, Билайна, Мегафона и TELE2. Надо же, - подумал я, наткнувшись на показанную выше ссылку, - лихие ребята, мало того, что абсолютно незаконно распространяют информацию, утечке которой сотовые операторы всячески препятствуют (к слову сказать, никакой единой "базы" и не существует), так ещё и не боятся предлагать её в открытую. Не иначе как уволенные "суперадмины" :)

Что ж, траффик у меня не ограничен, давайте скачаем базу МТС и посмотрим.

Вирусов в скачанном не обнаружено, какой-либо защиты EXEшки тоже, последнее хорошо, легче будет ковырнуть, если что. Размер "базы" - примерно 512 Мб, по самым скромным подсчётам у МТС 50 миллионов активных номеров, делим эти 2 числа и получаем примерно 10 байт на номер... мда, маловато, чтобы сохранить не только номера, в которых 10 цифр без "восьмёрки", но ещё и фамилии с адресами, как заявлено на сайте.

Второй ключ к разгадке - главная фраза из "лицензионного соглашения", ссылка на которое есть в проге:

Программа не гарантирует достоверность данных в справочнике.

И вот это:

Цена на сайте указана за регистрацию программы на год. После регистрации программы вы сразу же имеете возможность использования всего функционала программы. В некоторых случаях требуется отправка двух смс.

Итак, за 2 SMS по 300 рублей Вы получаете (или не получаете) возможность целый год лицезреть недостоверные данные. Позвольте, а откуда они берутся-то, если это действительно операторская база, в которой 99% инфы как раз достоверно?

Более того, если поискать, в Сети легко найти и "лицензионный ключ к программе Phone-A" (интересно, те же самые или другие люди предлагают его за деньги?), и версию с "таблеткой" (разумеется, качать ещё 500 Мб, чтоб взглянуть на "таблетку", не стал).

Дальше, в общем-то, можно и не смотреть, но для порядка хотелось бы заглянуть внутрь, избавившись вот от этого:

регистрация phone-a
регистрация phone-a

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

Вот Crack к скачанному мной лохотрону phone-a.exe версии 1.1.6:

; phone-a.exe
; 1 049 088 bytes
000CC54D: 85 84

После изменения исполняемого файла запустите прогу, поставьте галочку "Принимаю пользовательское соглашение" и нажмите "Регистрация".

Как изменить файл? Хорошо, дам заодно небольшой урок по взлому.

Всё, что нам понадобится - любая утилита, способная показать 32-разрядный ассемблер, например, вполне подойдёт дизассемблер WinDASM, чтобы вам его не искать, выложу прямо здесь, установки он не требует, просто скачать архив и развернуть:

 Скачать W32dasm 9.00 в архиве ZIP (314 Кб)

Запускаем дизассемблер, жмём единственную активную кнопку "Открыть", загружаем файл phone-a.exe и ждём, пока пройдёт дизассемблирование.

Что надо поискать в нём в первую очередь? Правильно, строку "Введён неправильный регистрационный ключ!" - ведь именно такое сообщение выдаётся при нажатии кнопки "Регистрация" в окне с ошибкой.

Жмём меню Search, Find, вводим текст, дизассемблер мог разбить его на строки, так что я ограничился словом "Введён". Упс, вот оно, да ещё и встречается только 1 раз:

Введён неправильный регистрационный ключ
Введён неправильный регистрационный ключ

Получается что на этот кусок кода мы переходим с 16-ричного адреса 004CD14C, об этом говорит строка

Referenced by a (U)nconditional or (C)onditional Jump at Address

Теперь ищем в файле этот волшебный переход 004CD14C и видим:

переход 004CD14C
переход 004CD14C

Код опять в единственном экземпляре, хехе, так это же условный переход jne, видимо, он означает "если введён неправильный ключ, перейти туда-то" (к выдаче сообщения об ошибке). Что ж, заменим jne на je и получим логику "если введён правильный ключ, перейти на сообщение об ошибке"... Так что теперь будет работать любой код, кроме купленного за 600 рублей :) Осталось выписать, что там в этом месте за байты:

0F 85 B4 00 00 00 8D 55 F4

(для надёжности прихватил несколько байт из следующей строки, вдруг там не одно такое сочетание байт) и воспользоваться второй незаменимой хакерской утилитой biew, чтобы пропатчить файл. Вот она, эта утилита, установка ей тоже не нужна, как большинству полезных программ:

 Скачать biew 5.3.2 в архиве ZIP (251 Кб)

В любом удобном файл-менеджере, лучше всего в Far Manager, копируем EXE-шку phone-a.exe в папку с файлом biew.exe

Запускаем biew командой

biew -d phone-a.exe

Видим ассемблерный код EXEшки.

Жмём в программе F7, клавишей F5 ставим опцию "Search for hex" (все галочки-опции поиска переключаются клавишами от F2 до F7), вводим наши байты, ищем:

поиск 16-ричного значения в biew
поиск 16-ричного значения в biew

Код опять в единственном экземпляре, жмём в программе F4, чтобы перейти к правке, заменяем байты 0F85 (это код команды jne, можно хоть вот тут 32-разрядные коды глянуть) на 0F84 (это je, переход по противоположному условию).

Жмём в biew клавишу F2 для сохранения изменений в файле, выходим клавишей Esc.

Теперь, наверное, понятен и формат CRK-файла на первом листинге. Единственный изменённый нами байт имеет 16-ричный адрес 000CC54D и мы просто записали, какой байт на какой заменить. Тот же результат можно получить, сравнив оригинальный и изменённый файлы phone-a.exe консольной командой Windows fc /b (бинарное сравнение файлов):

бинарное сравнение файлов командой fc /b
бинарное сравнение файлов командой fc /b

Запускаем изменённую прогу, скопировав её в исходную папку, ставим галку "Лицензионное соглашение", жмём "Регистрация", всё работает.

 Чтобы узнать результат проверки базы, перейдите к оригиналу статьи :)

22.07.2011, 12:07 [51566 просмотров]


теги: софт мошенничество мобильник взлом ассемблер

показать комментарии (6)