psi-0.10

Изображение пользователя axet@jabber.ru.

Мы часто вводим пароль в программу и через год забываем напрочь, о том какие секретные символы образовывали пароль. Иногда для восстановления пароля достаточно использовать программу анализа трафика, иногда написать письмо в службу поддержки. Но есть другой более простой вариант: восстановить пароль из конфигурационного файла программы.

Вот скрипт на питоне позволяющий восстановить пароль:
По ссылке на странице автора http://docs.google.com/Doc?id=dd4b849c_53cbd863
Далее в этом документе.
  
def hexChar2int(c):
    if (c >= 'A' and c <= 'F'):
        return ord(c) - ord('A') + 10
    elif(c >= 'a' and c <= 'f'):
        return ord(c) - ord('a') + 10
    elif(c >= '0' and c <= '9'):
        return ord(c) - ord('0')
        return 0

def decodePassword(password,key):
    result=""
    n1=0
    n2=0

    if(len(key) == 0):
        return password

        n2=0
    for n1 in range( 0, len(password), 4):
        x = 0
        if(n1 + 4 > len(password)):
            break
        x += hexChar2int(password[n1])*4096
        x += hexChar2int(password[n1+1])*256
        x += hexChar2int(password[n1+2])*16
        x += hexChar2int(password[n1+3])
        c=x ^ ord(key[n2])
        n2+=1
        result += chr(c)
        if(n2 >= len(key)):
            n2 = 0
    return result
   
print decodePassword("001101010101011","axet@jabber.ru")

Опубликовано axet@jabber.ru в сб, 2007-04-07 17:34. categories [ ]
Изображение пользователя Lisiki.

А что нужно

А что нужно сделать простому пользователю, чтобы этот скрипт запустить?

Изображение пользователя axet@jabber.ru.

- Наличие Python. -

- Наличие Python.
- Возможо небольшая правка отступов, так как форматирование на вебе не саоме хорошее.
- И строчка запуска print decodePassword("001101010101011","axet@jabber.ru")

Изображение пользователя axet@jabber.ru.

Если вы все

Если вы все правильно сделаете то получите следующий вывод:

c:\Temp>b.py
Traceback (most recent call last):
File "c:\Temp\b.py", line 34, in
print decodePassword("001101010101011","axet@jabber.ru")
File "c:\Temp\b.py", line 29, in decodePassword
result += chr(c)
ValueError: chr() arg not in range(256)

А если, будите использовать правильный ввод, то на экране появится ваш пароль.

Изображение пользователя Lisiki.

Кстати, этож

Кстати, этож ваш скрипт, да?

Изображение пользователя axet@jabber.ru.

да

да

А зачем такие прибамбасы???

Есть тут один метод... Заложен разработчиками jabber.
Для смены пароля нужно, находясь в “онлайн” (выбранный аккаунт имеет статус, отличный от “оффлайн”), сделать Service Discovery своего сервера и выбрать Register, в поле username ввести имя текущего аккаунта (без суффикса @domain.com), в поле password - желаемый пароль. Готово!!! =)

Примечание:
Новый пароль будет использоваться уже при следующем соединении с данным jabber-сервером.

to lisiki:
:-* вы конечно молодцы, но зачем так человека мучить? (а также тех, кто читает RSS с сайта и выпадает в осадок)

Изображение пользователя Lisiki.

А?:) Мы не

А?:) Мы не разработчики джаббера! Метод не делали.

Изображение пользователя zet.

А также и

А также и другая полезная информация доступна здесь http://bombus-im.org/wiki/bombus_faq ;)

Без питона:

Без питона: http://blogmal.42.org/rev-eng/psi-password.story
На случай если ссылка помрёт:

How to recover your jabber password from PSI.

1. Search for your config.xml
2. Extract the jid and password part from within your account group
3. Decrypt by interpreting the password as hex 16bit-unicode, and XORing it to the jid.

If you have only Ascii characters in your password, you can try this line of perl:

perl -le '($jid,$pw)=@ARGV;$pw=~s/..(..)/chr hex$1/ge; print substr($pw^$jid,0,length$pw)'

000100020003007e

перл есть у всех.
P.S. Страно тут с форматированием на этом сайте...

Изображение пользователя evgs@jabber.ru.

где перл?

странно... перла не нашёл на своей машине...

Изображение пользователя zet.

А дельфей? ;)

А дельфей? ;)

Изображение пользователя bobrik@jabber.ru.

Сразу видно,

Сразу видно, что не Джедай.

Изображение пользователя izo@jabber.ru.

Пароль к учётной записи в Psi

Решил не создавать отдельную тему. Вопрос то в общем-то пустяковый...

Подскажите пожалуйста, возможно ли, чтобы Psi_0.10 не запоминал пароль? Поиск нифига не рулит...

Изображение пользователя zet.

В настройках

В настройках аккаунта просто не заполняйте поле Password:

Изображение пользователя izo@jabber.ru.

В настройках...

А как же логиниться без пароля? о_О

Изображение пользователя zet.

При коннекте Psi

При коннекте Psi спросит пароль :)

Изображение пользователя izo@jabber.ru.

Действительно...

Действительно...=)
Это прекрасно, чесс слово!(с)знаменитый профессор =)))

Пароль стёр, теперь враг не пройдёт х_Х Спасибо.

Изображение пользователя jonie@jabber.ru.

скрипты - скриптами, но обычным юзеверям...

....но обычных юзверей все эти скрипты... мягко говоря пугают)... посему чиркнул быстренько прожку для восстановления на С-ях (win32 only)
слить можно оттуда: http://e-jonie.narod.ru/src/psipassrecover/psiPassRecover.rar (1 206 byte)
исходники: http://e-jonie.narod.ru/src/psipassrecover/src.rar (3 773 byte)

использование:

  1. найти файлик от пси с именем config.xml
  2. открыть его хоть в чем (желательно что понимат uncode)
  3. найти в файлике свой jid
  4. в той же секции найти поле <password/>
  5. стартануть программу и вписать соотв. поля и давить кнопку [GetMyPassword]

Изображение пользователя Lisiki.

Добавили

Добавили скрипт прямо в тушку текста для сохранности.
__________________
Пресс-служба J.ru.

Вариант на php

Мне было быстрее почитать исходники Psi и перевести на то, что знаю. Вот, ловите:

<?php
function decodePassword($pass, $key) {

if(strlen($key) == 0)
return pass;
$result = '';
for($n1 = 0, $n2 = 0; $n1 < strlen($pass); $n1 += 4) {
$x = 0;
if($n1 + 4 > strlen($pass))
break;
$x += hexdec($pass[$n1])*4096;
$x += hexdec($pass[$n1+1])*256;
$x += hexdec($pass[$n1+2])*16;
$x += hexdec($pass[$n1+3]);
$c = chr($x ^ ord($key[$n2++]));
$result .= $c;
if($n2 >= strlen($key))
$n2 = 0;
}
return $result;
}
echo decodePassword('001101010101011', 'axet@jabber.ru') . "\n";
?>

А можете помочь

А можете помочь с обратной задачей - есть JID и пароль, нужно получить хэш для автоматического создания профиля пользователя.

Нивапрос!

<?php
function encodePassword($pass, $key) {

if(strlen($key) == 0)
return $pass;
$result = '';

for($n1 = 0, $n2 = 0; $n1 < strlen($pass); ++$n1) {
$x = ord($pass[$n1]) ^ ord($key[$n2++]);
$hex = sprintf("%04x", $x);
$result .= $hex;
if($n2 > strlen($key))
$n2 = 0;
}
return $result;
}
echo encodePassword('pyd', 'axet@jabber.ru') . "\n";
?>