If you are looking for an English version of this article, please visit here.
Korsancılık oynayan herkes gibi bende yıllarca C programlama dili ile haşır neşir oldum, çok kaynak kodu inceledim çok program yazdım ve çoğu kez iyiki C programlama dili öğrenmişim dedim çünkü ne zaman başka bir programlama dili ile yazılmış kaynak koduna göz atsam kolayca anlamamda hep faydasını gördüm.
Zaman içinde, yazılan istismar araçlarının (exploit) C’den Python’a geçmesi Python‘a karşı olan ilgimi arttırmıştı. Bir gün aklıma esti ve Python dünyasına adım atmaya karar verdim. Ne zaman bir güvenlik testinde bir programa ihtiyaç duysam ne kadar doğru bir karar verdiğimi anlıyorum çünkü programa ihtiyaç duymam ile programı kodlamam ve kullanmam arasında geçen süre, programın karmaşıklığına göre ortalama en fazla 1-2 gün en az 15 dakika alabiliyor.
Bu programları C ile yazmaya çalışsam eminimki 2 katı daha fazla kod yazmam ve zaman harcamam gerekecek ama neyseki Python var. İşte Python’un güçlü yanları;
- Sentakslar (syntax) ile çok fazla uğraşmıyorsunuz, { } ( ) ;
- 100 saat derlemek ile uğraşmıyorsunuz, kodla ve çalıştır.
- 1 dünya modül ile geliyor, import et ve fonksiyonu çağır.
- Yazdığınız kodlar daha okunaklı, code re-use için daha verimli.
- Platform bağımsız, windowsta kodla, linuxte test et, mac’te kullan.
- Diğer dillerdeki gibi data tipleri ile uğraşmıyorsunuz, “1” + “1” = “11”, 1 + 1 = 2
Gerek günlük işlerde olsun gerek canım sıkıldığında ve “ya şöyle bir program yazsam vatana millete hayırlı olur mu acaba” diye düşündüğümde hemen ortaya bir program çıkmış oluyor. Sizde Python dünyasına adım atmak istiyorsanız, Google’ın kendi çalışanlarına vermiş olduğu Python derslerine ait videoları izlemenizi şiddetle tavsiye ederim.
İşte yine bir can sıkıntısı ve yukardaki düşünce ile python ile bir program yazsam ve bu program gitse Avira‘nın sitesindeki tüm listelenen zararlı programların md5 hash bilgilerini toplasa ve bir dosyaya kayıt etse, diskimde belirttiğim herhangi bir dosyanın md5 hashini alsa ve zararlı içeriğe sahip olup olmadığını bu hash kümesi ile tespit etse hatta daha da ileriye gitsem bir de aldığı bu md5 hashi Virustotal sitesine gönderse neticesini gösterse ve bir de Avira hash kümesini update etme özelliğine sahip olsa gerçekten faydalı bir eser olur mu dedim ve ortaya içinde proxy desteği de olan Malware Check Tool uygulaması çıkıverdi.
Programın kullanımı oldukça basit, 3 tane komut ile çalışıyor; online, offline ve update.
Update komutu (örnek: malware_check.py update) ile program zararlı içerik tespiti için kullandığı hash kümesini Avira’nın sitesini ziyaret ederek son sürüme güncelliyor.
Online komutu (örnek: malware_check.py online eicar.com) ile programı çalıştırdığınız taktirde belirtmiş olduğunuz dosyanın md5 hashini Virustotal sitesine göndererek size sonucu gösteriyor.
Offline komutu ile (örnek: malware_check.py offline virus.exe) ile programı çalıştırdığınız taktirde ise belirtmiş olduğunuz dosyasnın md5 hashini, lokal disk üzerindeki hash kümesinde arayarak sonucunu size gösteriyor.
Programa http proxy özelliğide koydum, proxy ayarları için malware_check.py dosyasının içinde yer alan aşağıdaki kısmı değiştirmeniz gerekmektedir.
proxy_info = {
‘user’ : ‘test’, # proxy username
‘pass’ : ‘test’, # proxy password
‘host’ : “127.0.0.1”, # proxy host (leave it empty if no proxy is in use)
‘port’ : 8080 # proxy port
}
Bu haftalık benden bu kadar, Malware Check programına buradan ulaşabilirsiniz, şimdiden herkese iyi haftasonları…
50 comments
Python ile ilgili giriş bölümündeki cümlelere aynen katılıyorum. Bende Python ile ilgili gelişim yolculuğuna çıkmış birisi olarak hem işlevsellik hem pratiklik hem de kolaylığı bir arada bulabiliyorum.
Python ile ilgili güncel bir yazı planınız olacak mı Mert bey. Bu yazı 2010 yılında yazılmış 9 yıl geçmiş üzerinden.
Düşüncelerim hala aynı olduğu için yeni, farklı bir yazı olmayacak.
Python da,dosya işlemleriyle ilgili birkaç soru sorabilmek için e mail inizi verebilir misin iz
Python konusunda bir yazılımcıya danışmanızı tavsiye ederim.
5
Phyton agir calisabilir ama cok guclu bir dildir bir suru modul kutuphanesi vardir hemen hemen her ortamda calisir. Android kutuphanesi kivy butonlar label hepsinin dokumani fazlasi ile var 800 sayfalik bir kivy dokumani var. Phyton icine gomulu bilgisayar grafik arayuz modulleri zaten var Tkinter modulu buton label hepsi hazir icinde. Phytonda matris bilimsel hesaplama derin ogrenme sinir aglari noronlar ne ararsaniz var. Yapay zeka otonam sistemler gelecegin dili phyton hacker lar bile phyton kullaniyor. Sonuc olarak herkesi tek cati altinda toplayan bu dilin populer olmasi kolay ve basit soz dizimi zaman +hizli proje daha az hata kolay okunurlugu.
4.5
Mert Bey bir önceki mesajımda size danıştığım konuyu hatırlıyorsunuzdur. Kivy’nin Python’a kurulumu…
İnternet den Python kullanan bir kaç bilgisayar mühendisine danıştım ama cevap alamadım. Malesef herkes sizin gibi değil:)internet de İngilizce ve Türkçe olarak aramalar yaptım ama bir sonuca ulaşamadım.
bu konuda kimden veya nerelerden bilgi alabilirim?
önerebileceğiniz biri, danışabileceğim biri var mı?
Google’da “Python kitap” diye arama yapıp kitap yazarları ile iletişime geçmeyi deneyebilirsiniz.
Peki
Teşekkürler Mert bey
Mert Bey Python dilinde Kivy diline geçmeyi düşündüm. Kivy dilini yüklemeye çalıştım ama başarılı olamadım yardımcı olabilir misiniz?
Kivy i yükledim lakin modülü içeri aktardığımda 3 adet problem ile karşılaştım bu problemleri önemsemeyip programı yazdığımda ise oluşan hata sayısı arttı. Anlaşılan ben bu modülü kurdum ama ciddi hatalar yaptım hataları düzeltebilmek ve en başa dönmek için Python’ı sildim ve yeniden yükledim, aynı hata aynı şekilde devam ediyor. Yardım edebilir misiniz??
Bunu bir Python yazılımcısına sormanıza fayda var, Kivy hakkında bilgim bulunmuyor.
Hepinize iyigünler
Mert bey teşekkür ederim yazdığınız yazıların bana çok faydası oldu.
Yaklaşık 1.5 yıldır python dili ile uğraşıyorum.orta seviye bir python bilgisine sahibim
İkinci bir dile başlamak istiyorum sizce hangi dile başlamalıyım ?
Rica ederim. Benim gibi güvenlik araştırmaları üzerine ilerleyecekseniz C ve Assembly dillerini de önerebilirim.
Merhaba abilerim ben 15 yaşındayım ve python diliyle başlamak istiyorum . İnternette araştırma yaptım pek fazla bişey bulamadım size sormak istedim exploit python dilinde yazılirmi veya python dili ile sifre kırmak ve şifreleme tarzı olaylar yapilabilirmi şimdiden teşekkür ederim
print"Arkadaşımıza Katılıyorum Bende Bu Dili Tercih etdim!"
Hi Mr. Sarica. I would like to know that, are you planing to update the version of the malware_check_tool and can you able to create a code for python 3.5+ please?
Regards.
Deepweb swimmer
Hello,
I dont have any plan to update it also I really dislike Python 3.x :)
Bende pythona yeni başladım. Keşke daha önceden keşfetseydim diyorum şimdi gördüğüm en tatlı dillerden biri. Ve kesinlikle çok işe yarıyor.
sadece 1 yıldır yazılım dillerinden haberdarım. C & C++ la ilgili kitaplar aldım kendimce faydalı şeyler yaptım ancak gerek okul gerekse yazılım mühendisliğini gerçekten isteyip istemediğim soruları çok fazla zaman kaybetmeme neden oldu henüz kendince akademik başarısı olan bir lisede 10. sınıf öğrencisiyim ve ingilizcemin çok üst düzey oldugnu söyleyemem youtube daki derslerde inanılmaz derecede faydasız açıkçası illa saglam yabancı dil bir kitapmı almam lazım birinci elden detaylı bir şekilde yazılım dili öğrenmem için? ve pythonu öğrenmeye nerden başlamalıyım tür dönüşümlerini ve 1 iki komutu bildiğimi varsarsak tabi?LÜTFEN YARDIMCI OLUN
Selam Ömer,
Eğer güvenlik uzmanı olacaksan ve bizler gibi bilginin peşinden koşacaksan o zaman İngilizce öğrenmen gerekecektir. Ülkemizde bilgi/bilişim güvenliği ile ilgili yerli kaynak sıkıntısı olduğu ve teknik yerine çoğunlukla hayat hikayesine yer verilen güvenlik kitapları olduğu için kendini geliştirmen diğer türlü pek kolay olmayacaktır. Python için ise istihza.com sitesinde yer alan e-kitabı okuyabilirsin.
Herkese merhaba arkadaşlar, öncelikle bu kadar istekli insanları görmek gerçekten ülke adına sevindiriyor. Burada python\’dan bahsedilmişmiş ama benim önerim sizlere C# öğrenmenizdir. C# ile oyun yapabilir, her platform için uygulama geliştirebilir, web programlayabilirsiniz ve bunu sadece tek bir ide(geliştirme ortamı) kullanarak yapabilirsiniz. C# dünyanın en çok kullanılan programlama dilidir ve arkasında Microsoft gibi dev bir şirket vardır. Neden öneriyorsun derseniz ben de eskiden python kullanıyordum fakat python bir çok işte yavaş kalıyor, kaynak arıyorsunuz her şey dağınık aradıklarınızı tek bir adreste bulamıyorsunuz ama C# a geçince gerçekten rahatladım diyebilirim çünkü herşey .NET uygulama çatısı altında bu ne demek bu şu demek sevgili arkadaşlar python da geniş kapsamlı bir uygulama geliştirmek isterseniz farklı web sitelerinde uygulama çatısı arayışında olacaksınız bu da size zamandan kaybettirecek ama C# ve diğer tüm Microsoft dillerinde yine Microsoftun geliştirdiği .NET Framework vardır ve bu çatıyı kullanarak istediğiniz (web,oyun,masaüstü,mobil) istediğiniz uygulamayı tek bir adresten geliştirebilirsiniz. Böylece işiniz daha da kolaylaşmış olur size sadece düşünmek ve kodlamak kalır. Sağlıcakla kalın.
Söylediklerin Türkiye sınırları içerisinde doğru olmakla beraber dünya genelinde java programcılık en üst seviyede. C# yüzünden işletim sistemi ve framework somurgesi altında kalmak yerine java python ruby kullanmak candır :)
Hocam, verdiğiniz Python eğitim linki kırılmış.
Düzelttim, bilgi için teşekkür ederim.
şimdi hocam ben programlama dili ogrenmek istiyorum visual basic araştırdım güzel dolphin güzel paskal güzel daha var c ,c++ falan da hangisini ogrenmem yararıma olur bilgisayar programcılığı öğrencisiyim
Merhaba,
Aşağıdaki yazımı okumanı tavsiye ederim.
https://www.mertsarica.com/nasil-ahlakli-korsan-olunur/
Sade ve faydalı bir yazılım olmuş. Projeyi Github’a koymayı düşünür müsünüz?
Açıkçası düşünmedim.
Fırsatım olursa tüm yazdığım kodları GitHub’a taşımayı düşünüyorum.
Bende Python’un yavaş olduğuna dair bir şeyler okumuştum.
Sanırım en hızlı dil : http://www.ruby-lang.org/en/
Interpreted programlama dili olduğu sürece Ruby’nin Python’dan gözle görülür farkı olamaz. Hız için compiled programlama dillerine bakmanızı tavsiye ederim.
Mert Bey performans olarak Python nası.c++ ile python arasında programın çalışma hızında ne kadar lık bir fark olur tahminen.Pythonda çeşitli yollarla yazdığımız programın hızını artırmamız münkün mü.Bu konuda bilgi verirmisiniz.
Selamlar,
Açıkçası geçtiğimiz günlerde bir güvenlik testi için ufak bir proxy programı yazmam gerekti. Bu program ile istemci ile sunucu arasında geçen tüm http trafiğinde bir anahtar kelime aratmam gerekiyordu fakat hem Python’un kendi find metodu ile hemde regex ile denemelerim başarısızlıkla sonuçlandı sebebi ise Python’un CPU kullanımı %90 seviyelerine yükseldiği için zaman aşımı sorunları yaşadım ve ilk defa Python’un performansından kaynaklanan bir sorun yaşamış oldum. Programı Quad-core CPU’lu bir sistemde denediğimde de ne yazıkki aynı sorunu yaşamadım.
Sonuca çok fazla şaşırmadım çünkü C compiled language, Python ise interpreted language bu nedenle bana göre C her zaman Python’a kıyasla daha hızlı olacaktır.
Mesleğim programcılık olmadığı için bir programcı kadar deneyimim olmadığından net bir ifade ile bu hızlı bu yavaştır demem doğru olmaz size tavsiyem Google’da arama yapmanız ve farklı kaynaktan bilgi edinmenizdir.
Örnek: http://theunixgeek.blogspot.com/2008/09/c-vs-python-speed.html
Thanks for your acceptance!
Hoping this tool becomes better!
Thanks M.S!
It works great!
But if the Malware names can display with the corresponding AntiVirus’ name, for example ,Kaspersky : Virus:DOS/EICAR_Test_File ,will be easier to read and see which detection related to. Maybe just for convenience, HAHA~~
I agree, added to my todo list.
Great! I will wait for you.
Hey roynal, I have released a new version that includes Virustotal fix, enjoy it.
Download Malware Check Tool v1.2
Thanks M.S fixed the MD5 bug. But unluckily, VT has changed its website in 11th Aug, so the old link/tool does not work now.
Oh that’s bad :) I will work on it when I have spare time.
The MD5 checking of files has problem.
For example, the correct md5 of 1.exe is D82C29D2B288F85208AC3B5DB6D11997, but Simple Malware Check Tool says a06f99fe61b11bebe5f726457c09bb90.
I hope this can be fixed asap. Thanks!
Thanks raynol, I implemented the calculation of md5 checksum in a wrong way. I have fixed the bug you could re-download the tool.
python ile yapabileceğimiz programları söylermisiniz hocam ve exploit geliştirebilmek için sadece python yeterlimidir.
Yapabileceğin programlar hayal gücün ile sınırlı olduğu için listelemem pek mümkün değil :) http://www.exploit-db.com/ adresini ziyaret edecek olursan bir çok kişinin istismar araçlarını (exploit) Python ile geliştirdiğini görebilirsin.
Daha gelismis uygulamalar icin,Java gibi bir dil kullanilabilir diye dusunuyorum.Bu yuzden bende ufak uygulamalar yapmaya sizin gibi 2x ile devam edeyim.Bu arada,istihza.com’u takip edenlerdeyim,oraya bakarak bir seyler ogrenmeye calisiyorum:)
Tesekkurler.
Merhaba,hangi programlama dilini ogrensem diye uzun bir sure arastirma yapanlardanim.En sonunda bu dili ogrenme karari aldim.Ilk olarak 3x surumlerini ogrenmeye basladim,fakat daha sonra Linux’a gecince varsayilan olarak 2x surumunun kurulu oldugunu gordum ve 2x surumune de bir goz atayim dedim.
Pratik yaparken gordum ki,2x surumunu ogrenmek 3x’ten daha kolay.Simdi size sormak istedigim,eski bir surum ile devam etmek uygun mudur?
Ben de 2x kullanıyorum bana kalırsa istediğinle devam edebilirsin tek sıkıntın 2x’in geliştirilmesi durdurulduğunda bunu 3. part uygulamalarda desteklemeyecektir bu nedenle 3’e geçmen gerekecektir. 3’de olan ve 2’de olmayan ve ihtiyaç duyacağın yeni fonksiyonlarda olabilir fakat benim bu zamana dek böyle bir ihtiyacım olmadı belki nedeni sadece işimi görecek ufak uygulamalar geliştirdiğim için olabilir. Python ile ilgili sorularına belki http://www.istihza.com/ buradan daha net yanıt bulabilirsin.
İyiki takip ediyorum dediğim insanlardansın :)
Teşekkürler.
Teşekkürler Volkan :)