![]() |
Извлекаем пароль из JIMM
Извлекаем пароль из JIMM ПРЕДИСЛОВИЕ: Бывает такое, что по какой либо причине вы забыли пароль от ICQ, но он остался сохраненным в JIMM и тогда появляется необходимость выдрать его от туда, но увы это оказывается очень тяжело. При условии что, пароль нельзя скопировать из поля ввода и он закрыт звездочками. Всё что тут будет описано, касается платформы MIDP-2.0 (на других не проверял) ПРИЧИНА НАПИСАНИЯ СТАТЬИ: Как-то раз решил сменить пароль от своего шестизнака, но как выяснилось – я забыл старый пароль. Зато он был сохранен в QIP Infium и JIMM. Все попытки восстановления через мыло не удались (возможно потому, что номер был инвизом). При этом Infium был настроен на использование SSL и по этому отснифать не получилось, а при попытке настроить через обычный коннект, Infium вообще стер пароль и затребовал его сново. Готовых реализаций и статей в инете я не нашел. В виду того, что это был шестизнак, как-то не хотелось использовать публичные ICQ снифферы, а ставить свой – не было возможности. Вот и пришлось разбираться с JIMM. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ: В платформе MIDP-2.0 данные JAVA приложений хранятся в RMS (Record Management System). В зависимости от модели телефона RMS в файловой системе может представлять из себя разного рода файлы. default_rms_*.db или *.rms итд. Другими словами присутствуют буквы rms. Эти файлы чаще всего находятся в папке с JAVA приложениями. Это было описано, как всё организовано со стороны телефона. Теперь разберемся с JIMM. Для этого понадобились исходники. Архив с исходниками нам дал следующее: Прочитав CHANGES выяснилось: VERSION 0.1 BETA-4 - Password is now encrypted saved (trivial algorithm) VERSION 0.4.0 - Password is saved in UTF-8 format now Другими словами теперь мы знаем, что пароль шифрован (простым алгоритмом). А также то, что все русские символы кодированы в UTF-8 Далее покопавшись в исходниках, была найдена в модуле Util.java следующая функция: Код:
public static final byte[] PASSENC_KEY = explodeToBytes(Теперь алгоритм наших действий должен быть примерно таков: 1) Запускаем JIMM 2) Добавляем в начало пароля определенные символы, сохраняем и закрываем JIMM 3) Подключаем телефон к компу и скачиваем rms файл 4) Ищем определенную последовательность байт 5) Дешифруем пароль и при необходимости переводим его из UTF-8 в ANSI ПРАКТИЧЕСКАЯ ЧАСТЬ: Из дополнительных инструментов нам понадобятся следующие: - WinHEX или любой другой HEX редактор - Delphi( для дешифрования пароля) ШАГ 1 Открываем Delphi. На форму кидаем 2 edit и 2 button Edit1 – поле ввода Edit2 – поле вывода Button1 – будет расшифровывать пароль Button2 – будет шифровать введенные данные Код программы: Код:
constЗапускаем JIMM. Заходим в настройки аккаунта. В начало уже существующего пароля добавляем 3 цифры – 123(какие именно – роли не играет). Сохраняем настройки и выходим из JIMMa. ШАГ 3 Подключаем телефон к компьютеру и копируем все файлы, связанные с rms. В моём случае(телефон MOTOROLA) я воспользовался P2KTools и скопировал все файлы C \ kjava \ *.rms. На других телефонах могут быть другие имена файлов. Далее просмотрев каждый из файлов неоходимо найти именно тот, который нам нужен. Делаем это через простой поиск ICQ номера, который вбит в настройках. У меня это оказался j2me9.rms ШАГ 4 Запускаем скомпилированную программку. В Edit1 вписываем 123 и нажимаем button2 для шифрования этого текста. В поле Edit2 мы получим текст: C214B2 – это как раз и будет сигнатура для поиска пароля в файле. ШАГ 5 Открываем найденный файл в WinHEX и ищем наши HEX данные Поиск -> Поиск HEX-данных (Ctrl + Alt + F) в открывшееся окно вписываем C214B2 и нажимаем OK для поиска. При желании F3 – для продолжения поиска. Найденные данные должны быть следующего формата E4 00 N C2 14 B2 XX XX XX XX XX XX 24 N – длинна пароля с учетом того что он перекодирован в UTF-8. ВНИМАНИЕ: N – это шестнадцатеричное значение, так что не ошибитесь при копировании нужного кол-ва байт. При этом на счет чисел E4 и 24 я сомневаюсь, т.е. может это просто совпадение. При этом E4 и 24 – для первого UIN’a, а E5 и 25 – это для второго UIN’a. Так что не обещаю что у вас они будут. У меня в нескольких копиях аськи именно эти числа были постоянно. Если не нашли нужное место, то жмем F3 для продолжения поиска. Когда необходимый блок данных будет найден, выполним следующие действия: 1) выделим N байт начиная с символов C2 14 B2 2) Правка - > Copy Block -> Hex – значения (CTRL + SHIFT + C). Для того чтобы поместить в буфер обмена наши данные в HEX виде. 3) Вставляем эти данные в нашу программку в поле edit1 и нажимаем button1 для дешифрования. 4) В поле edit2 появятся данные 123XXXXXX где XXXXXX – пароль. Вот и всё. Мы получили пароль. Данный метод был протестирован на Motorola L6, Motorola L7, И на RMS файлах создаваемых эмулятором Midp2Exe. Везде удачно получилось дешифровать пароль. (С) SLESH 2009 |
для меня лично не актуально-юзаю квип мобаил, но очень часто встречал данную тему на форуме, по этому зачот.
|
2 nonamez Когда-то тема была очень актуальной. Но сейчас всё у большего и большего числа людей появляются сматфоный. MIDP отмирает.
Вообще можно было бы написать программку которая сама бы делала бы эти действия, но нед под рукой большого числа телефонов для теста. |
у меня как раз такая ситуация как в начале статьи указано, зато перешёл на шоху. Всё что не делается, делается к лучшему)
|
а я недавно забыл пароль от дима на телефоне..,хотел чисто файлы сохранения с прошлого телефона на новый перебросить, да забил (нада патч устанавливать ,потом через фар копировать...- ЗАБИЛ,да и чутка подзабыл =) )...,щас вот все вспомнить нимагу =(
|
Да с этими поролями весь запутаешся...
Тож очень часто вспоминать приходится.. |
P.S. Народ, если комуто не влом, то плз проверьте у себя работоспособность данного способа. Особенно больше всего интересуют магические числа E4/E5 и 24/25.
Если у всех будет так, то напишу прожку которая будет сама всю работу делать. |
хм. Для Jimm Core ( 0.5.2 ) E4 и E5 есть, а вот 25 и 24 вконце отсутствуют. Скорее всего идентификаторы идут в другой последовательности
|
помоему легче поставить на комп "icq msg loger" или "Icq password recalling" и подключиться с телефона к своему ip. Но если нет такой возможности, то интересный способ. Хорошая статья
|
хм.. может кто знает где jimm хранит пароли на Эриксонах?
|
| Время: 02:23 |