"Телефонные базы операторов" - ломаем лохотрон Phone-A
В последнее время на многих сайтах, например, здесь, предлагается бесплатно скачать телефонные базы сотовых операторов, в том числе, МТС, Билайна, Мегафона и TELE2. Надо же, - подумал я, наткнувшись на показанную выше ссылку, - лихие ребята, мало того, что абсолютно незаконно распространяют информацию, утечке которой сотовые операторы всячески препятствуют (к слову сказать, никакой единой "базы" и не существует), так ещё и не боятся предлагать её в открытую. Не иначе как уволенные "суперадмины" :)
Что ж, траффик у меня не ограничен, давайте скачаем базу МТС и посмотрим.
Вирусов в скачанном не обнаружено, какой-либо защиты EXEшки тоже, последнее хорошо, легче будет ковырнуть, если что. Размер "базы" - примерно 512 Мб, по самым скромным подсчётам у МТС 50 миллионов активных номеров, делим эти 2 числа и получаем примерно 10 байт на номер... мда, маловато, чтобы сохранить не только номера, в которых 10 цифр без "восьмёрки", но ещё и фамилии с адресами, как заявлено на сайте.
Второй ключ к разгадке - главная фраза из "лицензионного соглашения", ссылка на которое есть в проге:
Программа не гарантирует достоверность данных в справочнике.
И вот это:
Цена на сайте указана за регистрацию программы на год. После регистрации программы вы сразу же имеете возможность использования всего функционала программы. В некоторых случаях требуется отправка двух смс.
Итак, за 2 SMS по 300 рублей Вы получаете (или не получаете) возможность целый год лицезреть недостоверные данные. Позвольте, а откуда они берутся-то, если это действительно операторская база, в которой 99% инфы как раз достоверно?
Более того, если поискать, в Сети легко найти и "лицензионный ключ к программе Phone-A" (интересно, те же самые или другие люди предлагают его за деньги?), и версию с "таблеткой" (разумеется, качать ещё 500 Мб, чтоб взглянуть на "таблетку", не стал).
Дальше, в общем-то, можно и не смотреть, но для порядка хотелось бы заглянуть внутрь, избавившись вот от этого:
регистрация 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
Код опять в единственном экземпляре, хехе, так это же условный переход 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
Код опять в единственном экземпляре, жмём в программе F4
, чтобы перейти к правке, заменяем байты
0F85
(это код команды jne
, можно хоть
вот тут
32-разрядные коды глянуть) на 0F84
(это je
, переход по противоположному условию).
Жмём в biew
клавишу F2
для сохранения изменений в файле, выходим клавишей Esc
.
Теперь, наверное, понятен и формат CRK-файла на первом листинге. Единственный изменённый нами байт имеет
16-ричный адрес 000CC54D
и мы просто записали, какой байт на какой заменить. Тот же результат можно получить,
сравнив оригинальный и изменённый файлы phone-a.exe
консольной командой Windows fc /b
(бинарное сравнение файлов):
бинарное сравнение файлов командой fc /b
Запускаем изменённую прогу, скопировав её в исходную папку, ставим галку "Лицензионное соглашение", жмём "Регистрация", всё работает.
Чтобы узнать результат проверки базы, перейдите к оригиналу статьи :)
22.07.2011, 12:07 [51644 просмотра]