2 Mayıs 2008 Cuma

Güvenlik (Bölüm 1)

Güvenlik hepimizin büyük dertlerinden birisidir bildiğimiz gibi. Bi'sürü çözüm bi'sürü mantık vardır kullandığımız projelerimizde, sitelerimizde.
Genelde hazır mantıklar vardır kullandığımız(strip_splashes bla bla). Farklı mantıklar da vardır ürettiğimiz tabiî ki(strings_replace vb.). Ben kendi yazdığım sitelerin kodlarında (veya programlarımda) genelde yazı değiştirme(string replace) işlemi yapıyorum. Bence daha güvenli ama hazır kütüphanelerin hızını da esgeçemem.Bi'kaçını anlatmaya çalışacağım.
1) Şifre Seçimi:
Genelde veritabanımızdaki tablolara genelde şifreyi direkt olarak gireriz. Aslında olacaklardan haberimiz yoktur gibi görünse de hepimiz bir açık olacağını çok da iyi biliyoruz(bilmeyenler artık biliyor). Genelde sitelerde MD5(bu zamana kadar ters mantığı yapılamayan tek şifreleme tekniğidir. Bkz: Wikipedia ) şifreleme tekniği kullanılır. Bazı yerler ise MD5'i o kadar abartmış ki (mesela VBulletin) bi' şifreyi MD5'liyor daha sonra tekrar MD5'liyor. Pekiî neden? Çünkü güvenlik herşeyden önce gelir. Sitenizin görünümü ne kadar güzel olursa olsun(mesela bizim timin sitesi örnek değil :P ) ne kadar ayrıntılı olursa olsun, güvenlik olmadığı sürece yüzde sıfır demektir. Çünkü kodunuzu sizin (veya iş arkadaşlarınızın) dışında birisi gördüyse (açık sayesinde) siz çıplaksınız demektir. Çıplak insan yolda yürüyemez ki koşabilsin derim ben... PHP'de MD5'i kullanmak hiç de zor değildir. Yapmanız gereken "md5($yazi)" bu kadar basit.

4 Şubat 2008 Pazartesi

Nesne Tabanlı Programlama

Object Oriented: Nesneye Dayalı Run-Time Type Information RTTI araştırınız…

Genel:
Yazılım projelerinin %84 zamanında bitmez
%30’u asla tamamlanamaz
Çoğu yazılım böceklidir, güvensizdir ve dayanıklı değildir
Devam ettirilmesi güçtür

Yapım Adımları:
İş modelleme (UML araştırınız)
Gereksinimleri belirleme
Analiz ve tasarım
Program yazımı
Test

Gerçekler:
Dünya büyük ve karmaşıktır
Çok şeyler var ama:
Bir işin küçük bir bölümünü yapar
İnsan hatalarını düzeltemez
Yüksek bir öğrenme eğrisi var
Çalışması için bir yapıya ihtiyaç duyar
Hatalar pahalı sonuçlara neden olur

Öneriler:
Planlı çalışın
Küçük sürümler yapın (hata bulmak ve gidermek kolay)
Basit tasarım (google örneğin)
Birden fazla kişi test etsin
Kodlama standardı oluşturun
Entegre edilebilir program (gerekli kod parçalarını alt programlara bölün)
Tekrarlanan kodlara engel olun
Yaptığınız geçici değişiklikleri silin
Parametreli metotlar kullanın
Açıklama satırları ile dokümantasyon yapın
Platforma bağımlı kalmayın
Exception (nadir durumlar) kullanın

Programlama Araçları:
Visual Studio .NET
Borland
Sun Java Eclipse
Python
Ruby…

Başlangıç:
Bir bisiklet aldığınızda kitapçığını mı önce okursunuz yoksa üstüne binip sürer misiniz?
Programlama dilini kavramak için önce öğrenmek için çabalayın, daha sonra kendi programlarınızı yazabilirsiniz
Ekrana basit bir mesaj çıkaran programı yapınız (merhaba dünya!)

Hikaye:
Bilgisayarı bir “uzaylı” olarak düşünün
Açsınız ve uzaylı sizin dilinizi bilmiyor, ama ona bir süre sonra bazı kelimeleri öğrettiniz
Resim çizerek anlaşmaya çalışıyorsunuz
Omzunuza çıkıp bir hindistan cevizi alabilir
Ama uzaylı bir şey anlamadı… Onun bakış açısı ile düşünmelisiniz

Temeller:
Class: SınıfDünya; hayvan, bitki gibi sınıflardan oluşur
Object: Nesne Bitki sınıfındaki hindistan cevizi ağacı gibi
Hayvan sınıfındaki fil nesnesi gibi
Property: ÖzellikHayvan sınıfındaki fil nesnesinin ağırlık özelliği (2 ton) gibi
Event: OlayHer zaman olaylar oluşur. Acıkmak gibi.Filin rahatsızlanma olayı tetiklenebilir, böylece bize yardımcı olur
Method: YöntemOlayın nasıl gerçekleşeceğini adım adım belirtiriz.
–Mesela “hindistan cevizini indirme”:
Kayanın arkasına saklan
Kızgın fil yaklaşınca kaçmaya başla
Ağaca çarpacak, sersemleyecek
Gittikten sonra cevizleri topla ve sonucu bildir

Örnek:
"Uzaylı" adında bir sınıf (class) var
Algy uzaylı sınıfına ait nesne (object)
İsim, kulakŞekli, TVseyretmeyiSever gibi özellikleri (properties) var
KurtarmaTiminiGönder adında bir yöntemi (method) var

Ne yapacağız:
Biz (insan) bir dil öğrenip OOP yöntemi ile nesneleri tanımlayacağız
Bilgisayara programlama dilini kurarak bizimle anlaşmasını sağlamak

Özet:
Etrafımızdaki dünya sınıflara bölünebilir. Mesela kediler, evler ve ağaçlar gibi
Sınıfların içinde alakalı nesneler vardır.Mesela köşedeki sarı bina; ev sınıfının bir objesidir.
Objelerin özellikleri vardır. Böylece nesne daha iyi tanımlanır. Türkçe dilinde sıfatlara benzetebiliriz.Renk, ağırlık ve boy gibi
Olan şeylere olay deriz. Rüzgarın esmesi gibi. Bilgisayarda ise fare tıklanması, tuş basımı gibi
Aksiyon ise olayın içindeki bir adımdır. Mesela düğme tıklanınca ekrana mavi daire çizme komutu gibi.
Metot ise olayın içindeki adım adım çalışan kodlardır. Yemek tarifi gibi.

SINIF
Okuldaki öğrenciler yaş gruplarına göre sınıflara ayrılırlar, böylece benzer şekilde muamele görürler, benzer şeyleri öğrenirler, benzer şekilde test edilirler.
Sınıftaki herkes aynı özellik değerlerine sahip değildirler.


Basic dilinde sınıf:
Class Hayvan

End Class

NESNE
Sınıf içinde bazı şeyler farklılık gösterir.
Mesela adı Tekir olan kedi, hayvan sınıfındandır.
Tekir bir hayvandır. Bunu Basic’te şu şekilde tanımlarız:

Dim Tekir As HayvanTekir = New Hayvan()


Tekir’in ne anlama geldiğini bilgisayar anlamaz. Ama hayvan olduğunu bilir.
İlk satırda Hayvan sınıfını program tarar, varsa problem yok. Deklare (bildirmek) ettik.
İkinci satırda Tekir için bellekte Hayvan sınıfındaki özelliklere göre yer ayırır. Gerçek bir objeye dönüşür.

ÖZELLİKLER
Alanlar, onların türleri ve değerlerMesela kedinin; türü, yüksekliği, ağırlığı, bacak sayısı, kuyruğu var mı gibi…
Bazı değerler sayısal (number), bazıları da metin (string), bazıları da ikiliktir (boolean).
Sayılar üzerinde hesap yapılabilirken, metinlere harf harf erişilebilir. Mantık değerleri ise sadece True ve False olabilir.

Class Hayvan
Dim hayvanTuru As String
Dim ismi As String
End Class

Kullanırken:
Dim Tekir As Hayvan
Tekir = New Hayvan()

Tekir.hayvanTuru = "Kedi"
Tekir.ismi = "Tekir"


Public: Herhangi bir sınıf ulaşabilir
Private: Sadece kendi sınıfı içinde kullanılır
Protected: Yakın sınıflar kullanabilir


Class Hayvan
Public hayvanTuru As String
Public ismi As String
Protected memeli As Boolean
Private dogruYazili As Boolean
End Class


Class HayvanatBahcesi
Dim a As Hayvan = New Hayvan()
a.hayvanTuru = "Kangaru"
a.memeli = False
a.dogruYazili = True
End Class

METHOD
Nesnenin iş yapabilmesi içindir
Ekrana yazmak, hesap yapmak ve fotoğrafın rengini açmak gibi
Metotlar bildiğimiz Sub End Sub arasına yazdığımız alt programlar gibidir.
Public, Private ve Protected özellikleri vardır.


Class Kisi
Public adi As String
Public soyadi As String
Public Sub AdSoyadGoster () 'içinde parametre olabilirdi
Console. WriteLine("Adi " & Me.adi & " " & Me.soyadi)
End Sub
End Class


Kullanımı:
Dim Mehmet As Kisi = New Kisi()
Mehmet.adi = "Mehmet"
Mehmet.soyadi = "Çilli"
Mehmet.AdSoyadGoster ()

Alıntı: http://msdn2.microsoft.com/en-us/library/bb330926(VS.80).aspx

13 Ocak 2008 Pazar

Mozilla Thunderbird (Taşınabilir)

Sürekli bilgisayar değiştiren insanlar için tarayıcı aç, üye adı yaz, şifre yaz bekle derdini bitirmek için bi' kaç önerim var:
Portable Mozilla Thunderbird (TB)
Eklenti 1 (Webmail Add-in)
Eklenti 2 (Hotmail Add-in)
Sırayla indirin ve kurun.Thunderbird'i USB belleğinize yükleyin.Daha sonra 1. ve 2. eklentileri masaüstünde bi yere atabilirsiniz onun önemi yok.TB'de "Tools" menüsünden "Add-ons" a tıklayın.Açılan pencerenin alt kısmında "Install" Butonuna tıklayın ilk önce Eklenti 1 de indirdiğiniz dosyayı daha sonra Eklenti 2 deki dosyayı kurdurun.
"File>New>Account..." a tıklayın.Yeni açılan pencerede "Web Mail" opsiyonuna tıklayın.İleri diyin, açılan sayfada ad ve soyadınızı alltaki kutucuğa Hotmail mail adresinizi girin ve ileri diyin.Daha sonra gelen pencerede tekrar mail adresinizi tam girin.Tekrar ilerleyin ve "Finish" diyin işiniz tamam ;) Bi'yer atladıysam kusura bakmayın.
Selametle...

9 Ocak 2008 Çarşamba

Desimal'i Heksadesimal'e çevirmek(basit hal)

Heksadesimal nedir?
Cevap sayının onaltılık sayı sistemine çevirilmiş halidir.
Nasıl çevrilir?
Bir sayı ele alınır, daha sonra o sayı hangi 16’nın katında ise basamak basamak çevirilir.
16’nın 0. katı 0’dır
16’nın 1. katı 16’dır
16’nın 2. katı 256’dır
(hesaplarken 2. katı diyosak eğer 16 X 16, 5. katını hesaplıyacaksak eğer 16 X 16 X 16 X 16 X 16 olur.)
Çeviride bir kriptografi kullanılır bu kriptografide
1=1
2=2
3=3
4=4
5=5
6=6
7=7
8=8
9=9
a=10
b=11
c=12
d=13
e=14
f=15
olarak çevrilir.
Örnek yapıcak olursak eğer:
200 sayısını heksadesimale çevirelim.
16’nın 1. katı 16 dır.16, 200’den büyükmü? Hayır.16nın 2. katını deneyelim.256 büyük mü 200 den? Evet.256 bölü 16 eşittir 12. 12 eşittir "C" harfine.C’yi kenara yazıyoruz.Kalan sayı 16’ya bölünebiliyosa böleriz ve yeni heks kriptosuna çevirir kenara yazarız.Eğer 16 ya bölünemiyorsa: (200 sayısına devam) 12 X 16 = 196, 200 - 192 = 8.Kalan sayıyı 8 olarak buluyoruz.Yani Decimal 200 = Heksadesimal C8.

1 Ocak 2008 Salı

Rüyalar Ve Kâbuslar

Rüyalar Ve Kâbuslar
Sosyal Mühendislik'te rüyaların ve kâbusların rôlu büyüktür.
Rüyaları tanımlayacak olursak: gün içerisinde bilinçaltımıza giren düşünceleri, olayları, duygusallıklarımız, gördüğümüz şeyleri gece bilincimizin açık olduğunda farkettiğimiz derlemeler ve karışımlar sonucu görselliğe kavuşan, beynimize geri yansıtmadır.
Kâbuslar ise; rüyalarla aynı özellikleri taşır fakat, bilinçaltımızda korkunç veya şüphe, adrenalin esnasındaki nesnelerdir.Yani kötü rüya olarak açıklayabiliriz.
Bir kişinin bilinçaltına girebilmek için: açık açık, imalı veya dolaylı yollarla bir şeyi ard arda söyleyerek veya göstererek amacımıza ulaşabiliriz.
İnsan gördüğü rüya veya kâbusları gün içinde hatırlar(eğer etkilenmişse).Bu sayede direktiflerimiz veya sorduğumuz sorulara cevap vermek için bizimle konuşma ihtiyacı duyar.Bi' nevi muhtaç kalır.
Kâbus gördürtmek için ise tekrar bilinçaltına emirler göndermeliyiz.Fakat bu sefer göndereceğimiz direktifler kötü yönde olmalı.Örneğin bir kişiyi spordan soğutabilmek için sporda yaşanan kazalar, kavgalar, sakatlanmalar, holiganlıklar vb. durumları anlatarak gözünü korkutmalıyız.Kâbuslar kişinin psikolojisini olumsuz yönde etkiler.Bunu bildiğimiz için az ve düzgün bir şekilde yapmalıyız.
Tabiî kişi o gece rüyayı veya kâbusu aynı gece görecek diye bir kural da yok tabiki.Aslında görür, ama görmez.Yani anlatmaya çalıştığım kişinin uyuma veya uyuklama esnasında bilincinin açık olması gerekir.Bilincinin açık olabilmesi için birkaç faktör büyük ölçüde rôl oynar.Bunlar yemek ve yorgunluktur.
Uyuklama veya uyuma işlemine geçilmeden önce yenen yemeğin önemi aşırı fazladır.Bizim için yemek türleri tatlı, arasıcak vs. gibi ayrılmaz.Yumuşak ve sert olarak adlandırıyorum ben bunları(yani 2 şekilde).
Yumuşaklıktan kasıt yenen yemeğin hazımı zor/kolay olmasıdır sadece.Yani yumuşak = hazmı kolay, sert = hazmı zorlaştıran.
Şimdi içinizden sorduğunuz soru: "ne bu yemek muhabbeti?Ben sm için gelmiştim" olucaktır.Cevabı basit "biyoloji".Bedenimiz birçok işi aynı anda yapabilicek şekilde yaratılmıştır.Fakat bu uyuma/uyuklama esnasında yavaşlar.Eğer sert birşey yersek duymak yerine beynimiz yediklerimizi hazmetmek ile uğraşıcağı için bilinç kapalı olur.Aksi taktirde beyin, mide ile uğraşmaz, serbesttir ve dışarıdan gelecek küçük bir çıta bile tepki verebilir.Hatta bunu anlayabilirsiniz.Bazı insanların parmakları oynar, göz kapakları açılacak gibi refleks verir, dişleri gıcırdar, nefes alıp verişi değişir ve tekrar düzene girer.

24 Aralık 2007 Pazartesi

Sosyal Mühendislikte Fiziksel Durum - Bölüm 2

Düşünceli :
Düşünceli bir insanı anlamak aslında çok basittir.Düşünceli insanla konuşurken gözlerinizin içine baksa da düşünmeye devam eder aslında.Gözlerine bakarak anlayabilirsiniz.Gözleri sizin gözlerinize bakar bakmacasına fakat göz bebeklerinin tespitini yapmanı gerekmektedir.Bunun için bi geri bi ileri yavaşca hareket edin ve göz temasınızı kesmeden inceleyin.Eğer göz bebeklerinde siz giderken küçülme yoksa o insan düşüncelidir anlamına gelir.Gözlerini göremeyecekseniz yani gözleriniz bozuk veya gözlük vs kullanıyorsa eller ve kollarına bakın.Kolları birbirinin üstüne kenetlenmiş, yani birbirine paralel veya bir kolu göbeğinden bağlı diğer kolu ise diğer kolunun üstünden çenesine veya boynuna gidiyorsa yine bir düşünce örneğidir.Başka bir yöntem ise eğer kişi herhangi birşeyle oynuyor, gözleri boş ve salakça bir bakış içinde ise yine düşünceli bir insandır.

Aptal :
Aptal insanlardan bahsedicem.Kimse yanlış anlamasın bunu yazmamın nedeni insanların aptal rôlu yapıp yapmadığını anlamanız.Bazı insanlar saf rôlu yapar fakat aslında saf değillerdir.Bunlara da aptal derim ben.
Aptal insanlar yine salakça bir bakış içersinde olup, konuşurken kollarını gereksiz yere sallar veya oynatırlar.Lafları zor anlar bazem ağızları şaşkınlık veya duyduğunu anlamak için açık kalır.Ara sıra vücudunu boş boş sallar.Bişey söyledikten bi' kaç dakika sonra unutur.Aptal insanlardan yararlanmak için sulanmış beyinlerini biraz daha sulandırın ve amacınıza ulaşın.Rol yapmak içinse bunu da artık kendinize uyarlayın...

Aşık:
Aşık insanlar en kolay avlardan birisidir ve oynaması en kolay olanlar listesindedir.
Eğer cicim ayları dediğimiz zamanlarda ise mutludur, ha bire sevgilisinden bahseder.Ara sıra eline telefonu alır çağrı, mesaj vs bişeyler yapar.Msn adresini değiştirebilir, nickini değiştirir romantik şeyler yapar.
Cİcim aşklarında değilse eğer suratı genelde asık, düşünceli, sinirli, asabi, durgun hallerden birisini maske edinir.Birşeyler söylendiğinde ya anlamaz ya da tersler.Canı birşeyler istemezcesine davranır.Söylediğinizi anlar, bilinç altına girer ama cevap vermeyebilir.Düşünceli ise davranın, sinirli ise mutlu edin ve yararlanın.

Şarkı söyleyen :
Şarkı söyleyen insanları anlamamak salaklıktır =).Şarkı söyleyen fakat kulağında kulaklık olmayanlar: dediğinizi anlar, yapmaz, fazla konuşmaz, dalgındır.
Kulaklık olana bir hareket edin, omzuna vs dokunun ilgisini çekin bi şekidle, kulaklığını çıkarttırdıktan sonra ne isterseniz sorun, söyleyin.Ama sesi kısmasını istemeyin sakın =).Yine dediğinizi anlar veya yapar ve kulaklığını geri takar.Kesinlikle kasıtlı olarak dinlemez çünkü insanın beyni anlanıcak iki şey arasındaki geçişi hızlı bir şekilde konuşmaya dökülücek şekilde anlayamaz.Diensefalon beyindeki vücudu yöneten kısma denir.Diensefalon hareketi anlaması için yeterli zamanı bekleyin.Yaklaşık 5-6 saniye kadar sürer bu.Lap diye yapışmayın yani...

23 Aralık 2007 Pazar

Sosyal Mühendislikte Fiziksel Durum - Bölüm 1

Selamun aleyküm kardeşlerim...
Elimden geldiğince fiziksel durumdan söz etmeye çalışacağım.Sizden isteğim lütfen beğenmediyseniz düşük not verin ve tartışma çıkartıcak birşeyler yazmayın.Daha önceden bir yazım bi arkadaş yüzünden silindi de..
Bismillahirrahmanirrahim diyerek işimize başlayalım...
SM’nin sadece sanalda yapılmayacağını biliyoruz.Günlük hayatımızda kişiyle konuşurken karşıdakinin fiziksel durumu gibi bizim de fiziksel durumumuz çok önemlidir.Bir insandan yararlanmak, bilgi almak, emir vermek için duruşunu gözlemleyip ona göre bilinç altına sızarız.Aklıma geldiğince fiziksel durumlardan söz edeceğim.Siz kendi durumunuzu buna göre ayarlayın ki karşı taraftaki de sizden yararlanmaya çalışırken av olsun.
Sarhoş :
Sarhoş insanlar bizim Türk filmlerindeki gibi sağa sola yalpalayarak yürümezler.Yürümeleri bozuktur fakat her hareketinde 45º dönüp hareket etmezler yani...Yürürken ayaklar birbirine takılır, gözler fazla hareketli fakat boştur."Sana birşey itiraf edicem" diyip saçma sapan birşeyler söylenebilir.Öpülme (ne yazık ki), miğde kalkarmışcasına hareketler, kusma, tende soğukluk, biraz daha içki isteme gibi durumlar sarhoşluk belirtileridir.
Uykulu :
Uykudan kalkmış insanlara emir vermek veya bilgi almak çok basittir.Bi insanın uykudan kalktığını anlarım diyosunuz genelde fakat her uykulu adam belli etmez.Uykulu insanların genelinin göz kapakları yarıya kadar FAKAT göz bebeği aşağıya bakmaz dümdüz karşıya bakar ve hareket ettirmez göz bebeklerini, kollar ölü gibi aşağı sarkıktır, refleksler zayıf, algılama zayıftır, söz dinler anlar ama anlamaz(yani anlar fakat hatırlamaz), bol bol esner, parmaklarındaki kaslar kasılmadan durum( parantez işareti gibidir fakat kasılmamalıdır),bişey söylerken saçmalar vs.
İnsanlara uyku modunda iken direktif verme ve ağzından laf almak çok kolaydır.Sadece belli etmeden sorun.Herkezin bilinci açıktır fakat hatırlamaz uykulu iken.
Bi insanı uyutucak gibi yormak için illaha enerji sarfettirmeye gerek yoktur.Eğer kişi dışarıdan geliyorsa ve dışarıdaki hava soğukse uyuması zor olur.Çünkü insanın uyuyabilmesi için vücut ısısının ortam ısısına yakın olması gerekir.İnsan ister istemez uyur.İstediği kadar kahve içmiş olsun ben bunu söylerim "kafein uykuyu bozmaz".Dediğim gibi bi insanı uyutabilmek için ortamın sıcaklığını sabit tutun.Çabuk uyutabilmek için kişinin üzerine birşeyler giydirebilir, örtebilirsiniz.Veya (afedersiniz ama) Nuri Alço gibi sakinleştirici verebilirsiniz.Sakinleştirici vücutta yayıldığı anda ten ısısı ile organ ısılarını yakınlaştırır.
Normal :
Uyanık ve ayık ise yapabiliceğiniz çok şey vardır hâla.Konuşurken gözlerinin içine bakın.Karşınızdaki her zaman gözlerinizin içine bakmaz, ve gözlerini kaçırdığı anda bilincine girilmeye yakınlaşır.Normal bi insanın bilinç altına direktif yollamak istiyorsanız etrafta kişinin ilgi çekebileceği, renkli(renkli olması gözlerini ağrıtır ve gözlerinizin içine bakamaz bakamadığı için de etrafa bakınır), ince ayrıntılı eşyalar olması işinize yarayabilir.
Mutlu :
Mutlu insandan yararlanmak daha kolaydır.Siz mutluluğunu bozmadığınız sürece her dediğinizi anlar ve yapar.Yeter ki belli etmeyin.Emelinize ulaşmak için gerekiyorsa kişinin ilgi alanlarındaki başarılarından söz edin ki daha mutlu olsun.Ama eğer az önceki söylediğim maddede bi kırılganlık yaşadıysa sakın ama sakın dikkati olun ağzınızdan o olayı çıkartmayın.
Mutlu insanları anlamak için, 100 wattlık ampul gibi sırıtan insanlar mutlu değildir genelde.Ya zorla gülüyodur, ya da yalakalığa vurmak için debeleniyodur.Eller ve kollar hareketli, gözler sakin ama gözlerin baktığı yön ile kafa aynı yöne bakar.Ara sıra bacaklarını oynatarak mutlu olma nedenini hatırlar ve tekrar dile getirir.