Christian Archer Chase Your Dreams!

воскресенье, 24 февраля 2013

Зачем нам нужно вдохновенье // Сделай глубже вдох // Ни для кого не откровенье // Что Шепард сдох

21:09 Расшифровывалка паролей FTP для FAR Manager
Потребовалось сегодня по работе, все забыли пароль к одному серваку =)

Всё оказалось проще пареной репы.

  1. Лезем в настройки фара и находим заветный пароль в формате hex:a1b21a2112100162681711

  2. Идем в репо фара и находим исходник шифорвщика/дешифровщика — http://farmanager.com/svn/trunk/plugins/ftp/Crypt.inc

  3. Пишем обертку для дешифоратора или переделываем его по аналогии на любимый язык



Я подумал и решил, что проще всего переделать его на Ruby

#!/usr/bin/ruby

src = String.new()
ARGV[0].scan(/../).each { | tuple | src += tuple.hex.chr }

XorMask = (src[0]^src[1]) | 80

src = src[2..-1]
src.each_byte do |c|
res = c ^ XorMask
print res.chr
end

print "\n"


p.s. Господа Ruby-кодеры, если меня, конечно, читают такие, объясните, пожалуйста, почему лезет варнинг? Совсем не понимаю где я Doing It Wrong.

./far_pwd_decode.rb:4: warning: already initialized constant Src
./far_pwd_decode.rb:8: warning: already initialized constant Src


p.p.s За гениальную строчку
.scan(/../).each { | tuple | Src += tuple.hex.chr }
спасибо г-ну James "raggi" Tucker. Thanks pal, but the design of your blog sucks =)

p.p.p.s ога, оказывается переменная с заглавной буквы это константа. thnx to Подвальный кот. Актуальную версию со всеми фиксам всегда можно стащить с репы: http://code.sunchaser.info/miscellaneous/src
URL
... прямо таки зверски... Ложусь рано в 22:30 - 23:30... ...
Какой, однако, продвинутый у нас аэрофлот! Встреча с ним ...
Для достижения полного и абсолютного :roll: (в смысле про...
Давеча отведал полную экзотику, то есть совершенных гадов...
Шестнадцатилетний Дима выглядит очень серьезно и сосредот...
Вычитала сегодня: Называться будет "Lyrics of love&...
Добавить комментарий

Расширенная форма

Подписаться на новые комментарии
Получать уведомления о новых комментариях на E-mail