Sayfalar

6 Aralık 2008

aMSN'de Unutulan MSN şifrelerini kurtarma

Bugün açık kaynak programcılığa bir kez daha hayran oldum; Msn şifremi unutmuştum. Genellikle önemsemediğim hesap şifrelerini programlarda kayıtlı tutarım. Bu yüzden aklımda kalmazlar. Ama bu kez eposta kutuma bir onaylama mektubu gittiği için açmak zorunda kaldım. Tabii ki şifreyi hatırlayamadım. Bunun için aMSN forumuna baktım ama benim gibi şifresini unutan herkes ilk oraya başvurmuş. Başta şifre sorunlarında yardımcı olan programcı, sonunda bu durumdan usanıp kullanıcılara iyi niyet dileklerini bildirmiş. :)

Şimdi yaptığım işe gelelim:

aMSN'de kullanıcı ayarları ve parolası ~/.amsn/msn_hesabı/config.xml dosyasında şifrelenmiş olarak yer alır. Parola ise encpassword etiketinin altında yer alıyor. Kaynak kodlarını indirip incelediğimde config.xml dosyasının config.tcl betiği tarafından oluşturulduğunu öğrendim. Parola aşagıdaki kodlarla şifreleniyor:


#Save encripted password
if { ([::config::getKey save_password]) && ($password != "")} {
set key [string range "${loginback}dummykey" 0 7]
binary scan [::des::encrypt $key "${password}\n"] h* encpass
puts $file_id " <entry>\n <attribute>encpassword</attribute>\n <value>$encpass</value>\n </entry>"
}

Burada amsn_des.tcl içindeki ::des::encrypt kullanılarak parolamız şifreleniyor. İlk olarak şifre çözmeyi buradan denedim. Ama benim için vakit kaybıydı. Daha sonra yine config.tcl'nin içinde yer alan aşağıdaki kodu farkettim. Yukarıdaki kodda parola şifrelenip config.xml içinde saklandığı gibi, aşağıdaki kodda da config.xml'nin içinden okunarak şifresi çözülüyor ve değer döndürüyor.

#Get the encrypted password
if {[::config::getKey encpassword]!=""} {
set key [string range "[::config::getKey login]dummykey" 0 7]
set password [::config::getKey encpassword]
catch {set encpass [binary format h* [::config::getKey encpassword]]}
catch {set password [::des::decrypt $key $encpass]}
#puts "Password length is: [string first "\n" $password]\n"
set password [string range $password 0 [expr { [string first "\n" $password] -1 }]]
#puts "Password is: $password\nHi\n"
::config::unsetKey encpassword
}
Bu kodda #puts "Password is: $password\nHi\n" satırı dikkatinizi çekmiştir. Bu satır aslında şifreyi ekrana yansıtmak için hazırlanmış olmalı. Daha sonra iptal edilmiş. Bu satırı düzenleyerek şifremi bir dosyanın içine yazdırdım. Bunun için söz konusu satırın altına aşağıdaki satırları ekledim ve kaydettim.

set outfile [open "/home/hasan/istebu.txt" w]
puts $outfile "Password is: $password"
close $outfile

aMSN'yi çalıştırıp, msn hesabımı açtığımda parolam ~/istebu.txt dosyasına yerleşti. :)

Örnek

~$ locate amsn/config.tcl
/usr/share/amsn/config.tcl
~$ sudo cp /usr/share/amsn/config.tcl /usr/share/amsn/YEDEK_config.tcl
~$ sudo nano -w /usr/share/amsn/config.tcl
~$ echo $HOME
/home/hasan

#puts "Password is: $password\nHi\n" satırını bulup altına:

  set outfile [open "/home/hasan/istebu.txt" w]
puts $outfile "Password is: $password"
close $outfile

satırlarını ekleyip kaydedin. Şimdi aMSN'yi açın, kayıtlı msn hesabınıza girer girmez ev dizininde istebu.txt oluşacaktır. Şifreniz onun içinde.

13 Ekim 2008

Kubuntu'dan Pardus'a geçişte opera ayarlarının aktarılması

Kubuntu kaldırılmadan önce:

hasan@kubuntu cp -Rvf ~/.opera /media/yedek/hasan

Pardus Kurulduktan sonra:

hasan@pardus sudo pisi ur

hasan@pardus sudo pisi it opera

hasan@pardus cp -Rfv /mnt/sda3/hasan/.opera ~/

Yukarıda kırmızı ile işaretlediğim her iki dizin de aslında /dev/sda3 'e bağlanmış dizinlerdir. Kubuntu'nun HAL'ı /media'ya Pardus'unki /mnt'ye bağlanmış.

Buraya kadar yapılanlar, diğer uygulamaların ayar aktarmasıyla aynı. Fakat Opera bu haliyle çalıştırıldığında gömülü flash uygulamalarını çalıştıramadığı gibi bu yüzden kilitlenebiliyor.

Menü çubuğundan, "Araçlar > Tercihler > Gelişmiş > İçerik > Eklenti Seçenekleri" açtığımda Operanın flash uygulamalarını çalıştırmak için "/usr/lib/opera/plugins/libflashplayer.so"ve "/opt/netscape/plugins/libflashplayer.so" dosyalarını taradığını gördüm. Ne var ki "/usr/lib/opera/plugins" dizini boş. Opera aradığını burada bulamadığı için kilitleniyor olsa gerek.

hasan@pardus sudo ln -s /opt/netscape/plugins/libflashplayer.so /usr/lib/opera/plugins/

18 Mayıs 2008

ip adresini görüntüleyen kabuk betiği

Bu betiği işi yapan bir python betiğinden esinlendim.

$ nano -w ipne
#!/bin/bash
wget -q http://www.ipimne.com/ -O .tmp
#Açıklama: ipimne.com adresinden ip adresimin bulunduğu index.html
#dosyasını indirip .tmp adıyla kaydettim
cat .tmp |grep "Your" |cut -c85- | cut -d\< -f1
#Açıklama: Önce .tmp'nin içinde ip adresinin bulunduğu satırı ayıkladım.
#Sonra da bu satırın gereksiz olan ilk 85 karakterini sildim.
#Şimdi geriye IPADRESİM "cut -d\< -f1" komutu ile "<" işaretinden sonrasını kırptım.

$ chmod +x ipne
$./ipne

Airties modemimin ddns özelliğini farketmeden önce, sunucumun elektriği kesilirse yeni aldığı
ip adresini başka bilgisayardan öğrenebilmek için yazdım. Öncelikle ip adresini ftp suncuya
aktarabilmek için:


$ sudo apt-get install wput


#!/bin/bash
set `pwd` # geri dönüş dizini. dikkat tırnak işareti AltGr+x ile olunca çalışıyor.
# Q klavyede de x yerine i olsa gerek.
cd ~/ wget -q http://www.ipimne.com/ -O .tmp
TMP=`cat .tmp |grep "Your" |cut -c85- | cut -d\< -f1` BASLA="<wml><p>" BITIR="</p></wml>" echo $BASLA$TMP$BITIR > ip.wml
#Açıklama: Burada IPADRESİM'i cep telefonumdan görüntüleyebilmek için wml olarak hazırlıyorum.
#Turkcell hattı olan birisine bu önerilmemektedir. Çünkü her defasında 5'er 10'ar kontör geçirilmektedir.
wput ftp://guvenlik:benimsifre@ftp.angelfire.com ip.wml
#Açıklama:İp adresini angelfire'dan aldığım ftp'ye gönderdim. TürkTelekom bunu da engellemezse iyi. :)
rm -f ~/.tmp
rm -f ~/ip.wml
cd $1

#Açıklama: Gereksiz dosyaları sildim ve ilk dizine geri döndüm.

4 Nisan 2008

Terminalden YouTube videolarını indirmek

Firefox eklentileri, Youtube videolarını indiren siteler ve bunun için hazırlanmış görsel programlardan sonra, daha kullanışlı ve daha az kaynak tüketen bir seçenek aramaya karar verdim. Python betiği ile hazırlanmış ve kuruluma ihtiyaç duymayan youtube-dl'yi buldum. http://www.arrakis.es/~rggi3/youtube-dl/ adresinden programı indirdim.

~$
wget http://www.arrakis.es/~rggi3/youtube-dl/youtube-dl

~$ ./youtube-dl
bash: ./youtube-dl: Erişim engellendi
~$ sudo chmod +x
Parola:
~$ sudo mv youtube-dl /usr/bin

Artık youtube-dl çalıştırmaya hazır. Deneyelim:



İşte çalışıyor!

Biraz daha kaliteli videolar elde etmek için:

~$ youtube-dl -o DimmuBorgir.flv -f 18 http://www.youtube.com/watch?v=dS7YLRGkqTU

"-f 18" eki daha kaliteli video izlemek için videonun Youtube adresine eklenen "&fmt=18"e karşılık geliyor. "&fmt=6" için de "-f 6" yazılabilir.