27 Ağustos 2010 Cuma

Dinleme Cihazları

      Macro3 Güvenlik ve Elektronik şirketi , güvenlik sektöründe kendini ispatlamış kanıtlamış bir firmadır. 2009 yılında yeni bir yapılanma ile müşterileriyle buluşmuştur. Daha öncesinde yine bu sektörün önemli firmalarından birine ortak olan Macro3 firması tamamen ayrılarak kendi başına büyük projeler altına girmiştir. Yaşı küçük olmasına rağmen tamamen profesyonel ve yasal çalışması sayesinde iyi bir ad sahibidir.
Dinleme cihazları , gizli kameralar , gizli kamera dedektörleri , jammerlar , verici tespit cihazları gibi kategoriler üzerine çalışan Macro3 iyi bir geçmişe sahiptir. Yasal yollardan çalışmasından dolayı gsm dinleme taleplerini tamamen red cevabı veren bu firma hak ve hukuktan yanadır.Ses dinleme işlemlerini tamamen yasal yoldan yapılması için müşterilerini uyarmaktadır. 


Tüm ürünler İngiltere , Japonya , Thaiwan gibi teknolojide kendilerini kanıtlamış ülkeler ve firmalarla çalışmaktadır. Verici tespit cihazı ve dinleme cihazlarının üzerine kendi labrotuvarlarında ürettikleri ürünler vardır.

20 Ağustos 2010 Cuma

Pidgin üzerinden günlük işlerinizi yapın [Piglenti]

İlk başta kendi ihtiyaçlarım ötürü ufak bir uygulam olarak yazıcaktım ki  zaten hala ufak bir uygulama. Ama biraz daha geliştirince herkezin kullanabileceği ve geliştirebileceği türden bir şey çıkarttım ortaya. 

Belki şu anda içinde bulunan fonksiyonlar çoğumuzun günlük ihtiyacını gören fonksiyonlar değil ama bu konuyu açmamın asıl amacı da sizlerin görüş ve önerilerini alabilmek. Programa eklenebilecek yeni fonksiyonlar için sizlerin eleştirilerine ve fikirlerine ihtiyacım var. 

Lütfen çekinmeden program hakkındaki fikirlerinizi yazın ki geliştirip daha güzel bir şeyler ortaya çıkarabileyim.

Programı evrensellik açısından şimdilik sadece İngilizce dilinde yazdım. Daha sonra çoklu dil seçenekleri ekleyebilirim.

Programı proje sayfasından alıntılarla tanıtacağım.

1 - Piglenti Nedir?

Piglenti, python programlama dili ile yazılmış günlük işlerinizi kolaylaştırmanızı sağlayan pidgin ile entegre çalışan ufak bir linux uygulamasıdır.

Piglenti geliştirilmeye çok yatkın bir uygulamadır. Karşınızdaki ile konuşurmuş gibi komutlar gönderip çıktılarını alabilirsiniz.

Komutların çıktılarını yalnızca siz görürsünüz. Pidgin içerisindeki herhangi bir kişiye komutları yazabilirsiniz.

Şu anda piglentinin ilk sürümü içerisinde 8 tane fonksiyon bulunmaktadır.
/pig help
Yazarak kullanılabilir fonksiyonları görebilirsiniz.
/pig help fonksiyonadı
Yazarak istediğiniz fonksiyon hakkında detaylı bilgi alabilirsiniz. 2 - Kurulum Not:Eğer python'dan bağımsız çalışmasını istiyorsanız proje sayfasının sağ tarafındaki "*.binary.tar.gz" olan dosyayı indirin. İsterseniz proje sayfasının sağ tarafıntaki download linkine tıklayıp ".tar.gz" biçiminde indirebilir, isterseniz de svn versiyonunu indirebilirsiniz. Not:Son değişiklikler henüz download bölümüne eklenmemiş olabilir. O yüzden svn versiyonu yüklemeniz tavsiye edilir. Svn versiyonu indirebilmek için sisteminizde subversion yüklü olmalıdır. Subversion yüklü değil ise
sudo apt-get install subversion
Komutu ile subversion'u kurabilirsiniz. Subversionu yükledikten sonra
svn checkout http://piglenti.googlecode.com/svn/trunk/ piglenti-read-only
Komutu ile piglenti'nin svn versiyonunu piglenti-read-only klasörüne indirebilirsiniz. Ardından
python piglenti.py
şeklinde çalıştırınız. Not:Piglentinin çalışması için pidgin'in açık olması gerekmektedir. Nasıl çalışıyor? Piglenti dbus ile çalışan bir uygulamadır. Dbus uygulamalar arasında mesaj alışverişleri için köprü görevi gören bir araçtır. 3 - Neler gerekli?
  • Piglenti, pidgine entegre olarak çalışan bir uygulama olduğu için sisteminizde pidgin anlık mesajlaşma programının yüklü olması gereklidir. Pidgin yüklü değil ise aşağıdaki komut ile yükleyebilirsiniz.
    sudo apt-get install pidgin
  • Dbus sadece linux üzerinde çalışan bir araç olduğu için piglenti'yi windows üzerinde kullanamazsınız.
  • Piglenti python programlama dili ile yazıldığı için sisteminizde python 2.x yüklü olmalıdır.
  • python-pycurl kütüphanesinin yüklü olması gerekir.
    sudo apt-get install python-pycurl
    ile yükleyebilirsiniz.
  • dbus ve python-dbus yüklü olmalıdır. Yüklü değil ise
    sudo apt-get install dbus python-dbus
4 - Parametre biçimleri Piglenti de şu anda kullanılabilir 3 parametre vardır. Parametreler aralarındaki boşluklara göre parçalanmaktadır.
/pig params parametre1 parametre2 "text parametre"
Not: Eğer kullanılacaksa "text parametre" mutlaka tırnaklar içerisinde yazılmalıdır. Ekran görüntüleri Yardım komutu Detaylı yardım komutu Diğer bazı komutlar Proje sayfası:http://code.google.com/p/piglenti/

06 Temmuz 2010 Salı

Python + PyQt4 için IDE Maceraları

Son bir kaç entryden de farkedeceğiniz üzre son haftalarda python dili ile oldukça yakından ilgileniyorum. Python öğrenmesi ve yazması oldukça zevkli bir dil. "Built-in" şekilde gelen işlerimizi en basite indirgeyecek bir çok modülleri bulunuyor. Dediğim gibi python öğrenmesi ve yazması zevkli olduğu gibi size zamandan kazandıracak bir dil.

    Python ile ilgili yazılan her yazıda olduğu gibi ben de python'un en sevdiğim özelliklerinden biri olan "girintili" yazma meselesine deyineyim. Python syntax'ı diğer çoğu dil gibi köşeli parantez blokları kullanan bir dil değildir. Bildiğiniz üzere php,c,c++,c# vs. bir çok dilde kod blokları (döngüler,if-else,class tanımlamaları) köşeli parantezler ile belirlenir ({}). Pythonda ise bu durum farklıdır. Kod bloklarınızı girintiler ile diğer bir ifade ile tab atlamaları ile yazarsınız.

Hemen kısa bir örnek vermek gerekirse


<?
$dur=FALSE;
$i=0;
while(!$dur){
echo $i." xx";
$i++;
if($i == 5){
$dur=TRUE;
}
}
?>
Yukarıda ki php kodunun pythondaki karşılğı şudur.
dur=False
i=0
while not dur:
 print "%s xx" % (i)
 i+= 1
 if i == 5:
  dur=True

Python hakkında kısa(?) bir girişten sonra son bir haftadır PyQt4 modülleri ile birlikte python kodları yazmak için araştırdığım ve kullandığım IDE (Integrated Development Engine) 'leri kısaca tanıtayım. Hangisini kullanacağınıza siz karar verin.

Gedit

    Gedit gnome desktop ile gelen default text editördür. Default text editör deyip geçmeyelim. Gedit oldukça özelleştirilebilir ve plugin desteğine sahiptir. Pluginlerle gediti neredeyse windows ortamındaki notepad++' ya benzetmek mümkündür. Gedit ufak projelerde hata düzeltmelerinde vs. küçük işleriniz için kullanabileceğiniz bir araçtır. Bir çok dilde "syntax highlighting" desteğine sahiptir. Eklentilerle "auto complete" özelliği kullanabilirsiniz.  Yalnız bu çok işlevsel olmadığı için arayışlarımı başka ide'lerle sürdürdüm.



Stanis Python Editor

    Stanis Python Editor kısa adıyla SPE, wxPython Gui arabirimi ile yazılmış ufak boyutlu çok işlevsel bir editordur. Aslında Tam olarak IDE denemez. Ama SPE diğer IDE lere taş çıkartacak özelliklere sahiptir. Bunların başında kod tamamlama, syntax highlighting, debug gelmektedir. SPE başlarda ufak uygulamalarda işimi fazlasıyla görüyordu. Ta ki Gui arabirimleri olan uygulamalar yazmaya geldiğimde.(PyGTK,PyQt4). Eğer gui arabirimli uygulamalar yazmayacaksanız ve ufak boyutlu bir editor arıyorsanız SPE sizin için uygun editördür diyebilirim.



NetBeans

    Aslında NetBeans'ı bu yazıda sadece python için editör sıfatıyla değerlendirmek kulaklarımın çınlamasına neden olur. Netbeans java ile yazılmış "open source" bir IDE'dir. Linux üzerinde python dışında php && mysql ile ilgilendiğimden dolayı netbeansın büyük boyutuna aldırış etmeden hemen yükledim. Eğer python için kullanmayacaksam bile php için ne kadar güzel bir IDE olduğunu zaten biliyordum. Netbeans'a python desteğini eklenti ile sağlıyoruz. Eklenti dediğime bakmayın Netbeans IDE'sinde eklentilerle bile olsa bir yazılım geliştirmek başka bir ayrıcalık. NetBeans kod tamamlama, renklendirme, debug ve özelleştirmeleri sayesinde oldukça gözümü kamaştıran bir IDE. Boyutunun büyük olmasına karşın RAM'den az kullanması da NetBeans'ı sevmemde önemli bir etken oldu. Kullandıkça oldukça hoş özelliklerini keşfettim. Mesela sizin kodlama stilinizi analiz edip size ufak hatırlatmalarda bulunabiliyor. Örneğin çoğu değişkeninizi "is_true", "yeni_x" gibi alt tire işareti kullanarak tanımladınız. Ama bir class ismini "yeniSinif" gibi büyük küçük harf kullanarak tanımladınız. Netbeans farklı tanımladığınız classın sol tarafında ufak bir icon  çıkarıp "bu sizin kodlama stilinize uygun bir tanımlama değil" gibi bir açıklama ile sizi uyarabiliyor. Bilmiyorum sizce bu özellik ne kadar anlatılmaya değer ama böyle ufak birşeyi bile düşünenlerin kodladığı bir IDE ne kadar kullanışlıdır siz düşünün.
    Netbeans'da herşey mükemmeldi ta ki yine bir sorunla karşılaşana kadar. Evet Netbeans da "auto complete" için PyQt4 modüllerini indexleyemiyordu. Aslında "auto complete" in PyQt4 modülleri için çalışmaması sorunu IDE'ler yüzünden değildi. PyQt4 modülleri derlenmiş modüllerdir. Bu yüzden IDE'ler "auto complete" için gerekli analizi yapamıyorlardı.
NetBeans PyQt4 ile uygulama geliştirme dışında benim için en mükemmel IDE idi. Sistemimden silmedim, hala php için kullanıyorum.



Eclipse

    Eclipse tabiri caiz ise Netbeans kadar taşaklı bir IDE'dir. Yine Netbeans gibi java ile yazılmıştır. Eclipsede de kod tamamlama, syntax highlighting, debug gibi kısımlar ön plana çıkıyor. Lakin özelleştirme konusuna geldiğimizde eclipse biraz zayıf kalıyor. Sistemimde siyah ağırlıklı tema kullandığım için Eclipse'in editör alanı göze hiç hoş gelmiyordu. Renklendirme ayarlarını değiştirmek için ayarlar kısmına geldiğimde farkettim ki Eclipse hiç de kullanıcı dostu değil. Sırf editör arka planı değiştirmek için uzun bir süre internette araştırdım. En sonunda siyah ağırlıklı temalar kullanan sistemler için birisi Eclipse profil ayarları dosyasını paylaşmış. Ayarları aktardıktan sonra bir süre Eclipse kullanmaya devam ettim. Eclipse ile python uygulamaları yazmak için pydev eklentisini yüklememiz gerekiyor. Eklentiyi yükledikten sonra ilk iş PyQt4 modüllerinde kod tamamlaması olup olmadığına bakmaktı. Ön tanımlı olarak Eclipse PyQt4 modüllerini otomatik tamamlama yapamıyordu. Window->Settings>Pydev>Interpreter Python kısmından aşağıdaki seçeneklerden "forced-builtins" kısmına "PyQt4" eklememiz gerekiyor. Ekledikten sonra PyQt4 için otomatik tamamlama yapıp yapamadığına baktım. İlk başta tamamlama yapabildiği için sevinmiştim. Hatta built-in modüller için en iyi kod tamamlamalarını Eclipse yapıyordu. Ama PyQt4 için tamamlamaları sadece ilgili modülün ilgili sınıfını tam olarak yazdığınızda yapabiliyordu. Örnek vermek gerekirse


deneme=self.lineEdit
olarak bir değişken düşünün. Kod tamamlamalarını "deneme." yazdıktan sonra yapamıyordu. Ama "QtGui.QLineEdit." yaptığımızda tamamlıyabiliyordu. Tabi buda benim için hiç kullanışlı değildi. Eclipse'nin çok ram tüketmesi de cabasıydı. Bu nedenlerle Eclipse ile de yollarımı ayırıp başka IDE arayışlarını sürdürdüm. Eric4 Eric Python IDE python ile yazılmış diğer IDE'lere göre orta boyutta (30mb) tam teşekküllü bir PyQt4 IDE'si. Tam teşekkülü olmasa da diğer IDE'lere nazaran bence PyQt4 için kullanılabilecek en ideal IDE. Kod tamamlama(PyQt4 dahil), syntax highlighting, debugging, qt4 e özel araçlar(QMessageBox Wizard, QFileDialog Wizard,Regex Wizard vs.), IDE üzerinden form dosyasını python kodlarına çevirme, düşük ram kullanımı gibi özelliklere sahip. Eric ile PyQt4 de uygulama geliştirmeden önce kod tamamlamalarını etkinleştirmemiz için ufak bir ayar çekmemiz gerekiyor. Settings->Preferences->Editor->APIs' den language: python u seçip aşağıdaki Compile APIs butonuna basın ve auto complete için indexlemeye başlasın. Orjinal makale linki:http://www.h4ckinger.org/2010/07/python-pyqt4-icin-ide-maceralar.html Python kodcularına son söyleyeceklerim;
  • Eğer python öğrenmeye yeni başladıysanız ve gui arabirimleri olmayan uygulamar geliştirecekseniz SPE tam sizin için yazılmış bir IDE.
  • Eğer daha önce php && mysql,xhtml && css için Netbeans, Eclipse gibi büyük IDE'ler kullandıysanız ve kod yazarken bu konforları isterseniz düşük donanımlı pc'ler için en uygunu Netbeans, yüksek donanımlı pc'ler için en uygunu pythondaki gelişmiş "auto complete" özelliğinden dolayı Eclipse.
  • Eğer python'a zaten aşina iseniz ve PyQt4 uygulamaları geliştiriyorsanız sizin için en uygun IDE Eric Python IDE'dir.
  • Ufak tefek düzeltmeleriniz de de gedit gibi ufak editörleri kullanabilirsiniz.

03 Temmuz 2010 Cumartesi

LiteSpeed Web Server Remote Source Code Disclosure Scanner Demonstration

Demonstration of a small application  which written in python programming language via qt4 gui libraries to scan vulnerable litespeed web servers.

24 Haziran 2010 Perşembe

Blogger Özel Etki Alan Adı Erişememe Sorunu

      Youtube ip adreslerinin erişime engellenmesi  ve bu ip adreslerinin Google'ın başka servislerinde  de kullanılıyor olması nedeniyle, blogger'ı kendi alan adı ile kullanan bloglara yaklaşık 2 haftadır erişilemiyordu. Bu arada ne kadar acı bir durumdur ki  ben kendi bloguma erişilemediğini olaydan bir hafta sonra farkettim. Bunun nedeni de google dnslerini kullanıyor olmammış. Google dns'leri dışındaki dns leri kullanan kişiler bu sorunla daha erken karşılaştı sanırım.

Her neyse sorunun çözümünü baya bir araştırdıktan sonra şu blogda çözüme ulaştım.

//Anlatım Godaddy içindir.
Yapmanız gereken Godaddy panelinizde "Total DNS Control" kısmından önceden eklediğiniz "www" yi işaret eden "ghs.google.com" adresli "CNAME" kaydını silip onun yerine "www"  ve "@" işaretli 2 tane "A" kaydı eklemektir.

Yeni ayarlarınız aşağıdaki şekilde olmalıdır.

(Not "cs" i işaret eden adres counter-strike serverımızın adresidir. Siz onu görmezden gelebilirsiniz.)

22 Haziran 2010 Salı

Conky ile rhythmbox bilgilerini göstermek

Conky nedir diyecek olursanız Ubuntu-tr Wiki'den bir alıntı yapayım.

Conky adlı program ile masaüstünüzde text tabanlı olarak sisteminiz hakkında her türlü bilgiye , hatta daha gelişmiş özelliklere (hava durumu, şimdi çalınıyor gibi özellikler) sahip olabilirsiniz..

Bu script sayesinde masaüstünüzde faydalı olabilecek pek çok özelliği ekleyebilirsiniz. özelleştirilebilir olması sayesinde tamamen istediğiniz şekle sokabilirsiniz... 

Bu ufak bilginin ardından size Conky ile nasıl Rhythmbox'da şarkı bilgilerini alacağımızı göstereyim. Sol üst kısımda gördüğünüz resim aşağıdaki kodların ekran görüntüsüdür.


${color #DF5720}${font size=1}${alignc}Music${font}

${color 9ACD32}Artist:
${color a4a4a4}${execi 1 rhythmbox-client --no-start --print-playing-format %ta}
${color 9ACD32}Title:
${color a4a4a4}${execi 1 rhythmbox-client --no-start --print-playing-format %tt}
${color 9ACD32}Album:
${color a4a4a4}${execi 1 rhythmbox-client --no-start --print-playing-format %at}

${color a4a4a4}${execi 0.8 rhythmbox-client --no-start --print-playing-format %te}${alignr}${execi 1 rhythmbox-client --no-start --print-playing-format %td}
Bu kodları .conkyrc dosyamızda gereken bölüme yapıştırıyoruz. Eğer conkyrc dosyasını nasıl düzenleyeceğinizi bilmiyorsanız gerek ubuntu-tr forumlarında gerekse ubuntunun resmi forumlarında kullanıcıların örnek conkyrc dosyalarını paylaştıkları konular var. Ek olarak yararlanabileceğiniz kaynaklar. *http://wiki.ubuntu-tr.org/index.php/Conky_Nedir%3F_Nas%C4%B1l_Kullan%C4%B1l%C4%B1r%3F *http://conky.sourceforge.net/documentation.html *http://ubuntuforums.org/showthread.php?t=281865 *Örnek Conky screenshot'ları

20 Haziran 2010 Pazar

Compiz Fusion Screenshot Plugin - Imageshack Uploader Bash Script

Eğer Linux'nuzda Compiz Fusion yüklü ise gerçekten işletim sisteminizin yapabildiklerine git gide hayranlık duyuyorsunuz. Compiz'in gerçekten çok hoş özellikleri var. Bunlardan birisi de "Screenshot" aracı.

"Compiz Config Settings Manager" da screenshot yazdıktan sonra screenshot'ın yanındaki kutucuğa "tick" koyarak etkinleştirebilirsiniz.



Etkinleştirdikten sonra screenshot'ın üzerine tıklayarak ayarlar kısmına gelelim.



Bu kısımda ilk kutuya resimlerin kaydedileceği dizini giriyoruz.

"/home/h4ckinger/resimler/screenshots"
gibi
İkinci kısım ise ekran görüntüsü kaydedildikten sonra dosya yolunun argüman olarak verileceği uygulama için kullanılıyor.

Şimdi gelelim fasulyanın nimetlerine. Ben bu güzel Compiz aracı için ufak bir bash script yazdım. Script ekran görüntüsü alındıktan sonra dosyayı "imageshack.us" sitesine upload edip bize direk link şeklinde veriyor. Ayrıca linki otomatik olarak clipboarda alıyor ve bize resmi browserda açmasını isteyip istemediğimizi soruyor.

Hehe. Çok kullanışlı oldu benim için. Sizlerle de paylaşmak istedim.

Düzenleme:Bu arada betiği nautilus scriptlerine ekleyebilirsiniz. Böylece bilgisayarınızda varolan bir resme sağ tıklayarak upload edebilirsiniz.
mv h4-upload /home/kullaniciadi/.gnome2/nautilus-scripts
chmod +x /home/kullaniciadi/.gnome2/nautilus-scripts/h4-upload
#!/bin/bash 
# imageshack uploader bash script
# Kodlayan h4ckinger
# wwww.h4ckinger.org
# h4ckinger gmail com
# Otomatik Clipboarda alır ve isterseniz upload edilen resmi browserda açar
# Compiz Fusion Screenshot aracı ile kullanarak en iyi verimi alırsınız.
# Betiğin çalışması için curl,xclip ve zenity paketlerinin yüklü olmaları gereklidir.
# Yüklü değil ise betik otomatik olarak yüklemeyi dener.
# ./h4-upload.sh /home/h4ckinger/resim.jpg şeklinde kullanılır
#################################### 

#zenity varmı bak
VARMI=`which zenity`
if [ "$VARMI" = ""  ] ; then
    echo "uygulamanın çalışabilmesi için zenity programının yüklü olması gerekmektedir"
    sudo apt-get install zenity
fi
###

#xsel varmı bak
VARMI=`which curl`
if [ "$VARMI" = ""  ] ; then
    echo "uygulamanın çalışabilmesi için curl programının yüklü olması gerekmektedir"
    sudo apt-get install curl
fi
###

#xsel varmı bak
VARMI=`which xclip`
if [ "$VARMI" = ""  ] ; then
    echo "uygulamanın çalışabilmesi için xclip programının yüklü olması gerekmektedir"
    sudo apt-get install xclip
fi
###


linkver () {
SORU=$(zenity --width 450 --height 100 --entry --entry-text="$1" \
 --title="Resim linki"\
 --text="Browserda açmak için tamam'a basın")

if [ "$?" -eq 0 ] ; then
 `gconftool -g /desktop/gnome/applications/browser/exec` "$1"
fi
}

upload () {

out=upl.tmp.`date +%s`
echo "Upload ediliyor: $1"
curl -H Expect: -F fileupload="@$1" -F xml=yes -# "http://www.imageshack.us/index.php" > /tmp/$out 2>&1

if [ `cat /tmp/$out | grep image_link | wc -l` -lt 1 ]
 then
  echo "Error: $1"
 else 
  linkimiz=`cat /tmp/$out | tr -d " " | grep image_link | grep -o  http[^\<]*`
  echo "$linkimiz" | xclip -selection clipboard
  linkver "$linkimiz"
fi

rm /tmp/$out

}


if [ -z "$1" ]
then
 echo "Kullanım: `basename $0` [resim.jpg]"
 exit $E_NOARGS
else

upload "$1"

fi