Hakkımda

Fotoğrafım
istanbul, Avrupa, Türkiye
Hey if the you a c note become love does what what from adds stay the situation... Hey love the you reach or the and every thing victorious is not be legally to the you." "EY AŞK SEN OLMASAN NE KALIR HİKAYEDEN... EY AŞK; SEN VAR YA SEN, HER ŞEY SANA MAĞLUP HÜKMEN." cik... (¯`★.•*•.♥ღ Cindy Wow ♥ღ .•*•.•★´¯) We come to love not by finding the perfect person but by learning to see an imperfect person perfectly! (Biz sevmek için geliriz, kusursuz kişiyi buluyor ama kusurlu bir kişi için kusursuz biçimde görmeyi öğreniyoruz!) (¯`★.•*•.♥ღ Cik...♥ღ .•*•.•★´¯)

Cuma, Aralık 28, 2007

Mutlu Yıllar

Her yeni yıl


bir başka güzel..


2008 yılının hepimize,


hayatımız boyunca unutamayacağımız


güzellikler yaşatmasını diliyoruz.


Şeker gibi tatlı,


masal gibi güzel bir yıl umuduyla...


Yeni yılınız kutlu olsun…

Neşe dolu yıllar ..!

Ebru & Onur




(¯`★.•*•.♥ღ Cindy Wow ♥ღ .•*•.•★´¯)
(¯`★.•*•.♥ღ Cik...♥ღ .•*•.•★´¯)

Perşembe, Kasım 22, 2007

Güzel bir söz:)

Doğduğunda herkes gülüyordu, sen ağlıyordun.
Öyle bir hayat yaşaki, öldüğünde herkes ağlasın, sen gül..."
(¯`★.•*•.♥ღ Cindy Wow ♥ღ .•*•.•★´¯)
(¯`★.•*•.♥ღ Cik...♥ღ .•*•.•★´¯)

ilginç ...




A guy in St. Louis was driving to work on Highway 144 when he heard a 'pop'. He thought it sounded like a flat tire, though his ride wasn't affected. After pulling over, checking the tires and finding them all intact he opened the bonnet to look at the motor.
Adamın biri St. Louis’in 144 no.’lu otobanında, işine yetişmek üzere arabasını sürmektedir. Bir patlama sesi işitir. Sesin, patlayan bir lastiğinden geldiğini düşünür. Arabayı sürmede bir güçlüğü yoktur. Arabayı yolun kenarına çeker; lastikleri kontrol eder. Hiçbirinde patlama yoktur.
Motor kaputunu açar...

Before the bonnet was even all the way open he jumped back in shock and knocked his head on the partially opened bonnet, unable to believe what his eyes were seeing!
Kaputu tümüyle açarken gördüğü şey karşısında dehşete kapılıp geri çekilirken, başını, henüz tam açılmamış kaputa çarpar.
Gördüğüne inanamaz...


Nobody was going to believe this! You sure wouldn't have either! Fortunately, a work mate with a camera recognised him along side the road and stopped to see if he could help..


Buna, siz de inanmayacaksınız.


Bir şans eseri, arabasıyla oradan geçen bir işçi durumu görür. Arabasında bir fotograf makinesi de vardır. Arabasını durdurarak yardım edip edemeyeceğine bakar...


Now, this has to be right up there at the top of the list of unusual but verified “Reasons I was late for work!”


Bu durum “İşe geç kalmadaki haklı nedenlerden biri” olarak, alışılmadık şeyler listesinin en üst sıralarında yerini alır


Gönderen / Sent by
A. U. (Warren-Michigan-USA)
YAPIMCI / PRODUCER : BİLİNMİYOR / UNKNOWN
İngilizceden Çeviri / Translated in Turkish by
Kâmil Şekerkaran

(¯`★.•*•.♥ღ Cindy Wow ♥ღ .•*•.•★´¯)


(¯`★.•*•.♥ღ Cik...♥ღ .•*•.•★´¯)

Çarşamba, Kasım 21, 2007

cracking... istemediğiniz kadar bilgi :) Hadi iyi okumalar...

Internet'ten indirilen ya da bilgisayar dergileri tarafından verilen çoğu programın belirli bir kullanım süresi bulunmaktadır. Bu programlar, içeriğine göre 1 hafta ila 1 ay arasında kısıtlı kullanım süreleri olan shareware veya limited software'lerdir. Yani paylaşım amaçlı yazılmış ve daha sonra paylaşılan süre sonunda ya belirli bir miktar ücret ödeyip bu yazılımın satın alınmasını ya da kullanıcının bilgisayarından silinmesini talep etmektedirler. Bunun yanında freeware denilen, shareware programlara göre daha amatör coder'lar (yazılımcılar) tarafından hazırlanan ve kar amacı gütmeyen yazılım çeşitleri de mevcuttur ve bu programlar için para ödenmesi gerekmemektedir. Aslında shareware programlar için de para ödenmeyebilir ancak bu, devletler hukukları altında korunan progamcının haklarını ve telif ücretlerini gasp ederek yani illegal yollardan mümkün olmaktadır [1].
Program kırmak, cracker’lık, bilgisayar programlarındaki lisans haklarının aşırıya kaçması, BSA (Business Software Alliance)’nın aşırı baskılarıyla ve Microsoft’un tekelini daha fazla yaymasıyla ivme kazandı. Günümüzde piyasaya yeni çıkan programların birkaç gün içerisinde kırılıp crack patch’inin internete konulduğu görülmektedir. Program kırabilmek için programcılıktan biraz anlamak gerekir. Özellikle dongle adı verilen donanımla korunan programlar kırılmak isteniyorsa, Assembly dilini mutlaka bilmek gerekmektedir [2].
Programlar için çeşitli koruma tipleri mevcuttur. Örneğin, CD sürücüde CD olup olmadığını kontrol eden koruma tipleri, password koruma tipleri ki eğer doğru password girilmemişse ya program register olmaz ya da çalışmaz. Son olarak da süreli programlar ki, özellikle dergilerin verdiği cd'lerdeki programlar bu şekildedir. Program, süresi dolduğunda (30 gün, 90 gün) çalışmaz. En kolay kırılan programlar, Windows altında çalışan ve register etmek istendiğinde bir pencere içerisinde hata mesajı veren programlardır. Çoğunlukla, programı register etmek için sizden bir user name ve password ister fakat program satın alınmamışsa, girilen bilgiler, "invalid registeration number" gibi ya da benzer hata mesajlarıyla geri dönecektir [3].
Bir programın kırılması, o programın yazılış amacı dışında davranmasına sebep olmak olarak yorumlanabilir. Programlar belli bir programlama dilinde yazıldıktan sonra derleyici denilen başka programlar ile çalıştırılabilir kod haline çevrilir. Bu çalıştırılabilir kod, CPU nun anlayacağı dilde ve işletim sisteminin özelliklerine bağlı olarak, makine dilinde Hexedecimal (onaltılık) bir düzende bulundurulur. Makine koduna çevrilmiş programlar, içerisinde programcının yazmış olduğu kodu içermezler. Bu durumda programın içeriğini, derlenmiş bir koddan açık ve net bir biçimde anlamak çok zordur. Makine dili denilen dil, aslında rakamsal bir dildir. Bu onaltılık sayı düzeninde bulunan kodlar, ikilik sayı sistemine (binary) dönüştürülerek CPU‘ya gönderilir. 0 ve 1 ler (bilgisayarın işleyişinde temel olan elektrik sinyali var (1) ve elektrik sinyali yok (0) ) CPU tarafından yorumlanarak işlenir. Makine dilininin bu şekilde zor ve anlaşılmaz oluşundan dolayı ASSEMBLY dili geliştirilmiştir. Assembly Dili, bilgisayar dilleri içerisinde en alt düzey programlama dilidir. Assembly ile yazılan programlar CPU’ya direkt olarak hitap eder . Fakat bu dil ile uzun programlar yazmak oldukça zordur. Bunun yerine, diğer diller ile yazılan programlarda o programlama dilinin yetersiz kaldığı ya da yavaş kaldığı noktalarda daha hızlı ve direkt erişim olanağına sahip bir dil olan ASSEMBLY dili ile prosedür veya fonksiyonlar yazılabilir. Günümüzde bu, sadece bazı aygıt sürücülerini yazarken ya da viruslerde kullanılmaktadır [4].
Windows için yazılan programlar da, çeşitli programlama dilleri ya da program geliştirme araçları ile yazılarak derlenir ve çalıştırılabilir kod haline dönüştürülür. Bu çalıştırılabilir kodun DOS programlarından en belirgin farkı, içerisinde kullandığı işletim sisteminin özel fonksiyonlarıdır. DOS işletim sisteminin INTERRUPT denilen bazı fonksiyonları vardır. Bu fonksiyonlar, Windows için yazılan programların içerisinde direkt olarak yer almazlar, bunun yerine Windows işletim sisteminin hali hazırda yazılmış fonksiyonları kullanılır [4].
Windows / System dizini altında bir çok DLL uzantılı dosya mevcuttur. Bu dosyalar, içerisinde programların çalışırken kullandığı birçok fonksiyon ya da tanım bulundururlar. Sözkonusu fonksiyonlar, programların kırılmasına yardımcı olacak noktalardır. Programlar makine dilinde bulunurlar , bu kodların anlaşılabilmesi için, ASSEMBLY kodlarına çevrilmesi gerekir. Bu iş için kullanılan programlara DISASSEMBLER denilir. Programların ham, yani onaltılık sayı düzenindeki içeriğinin görüntülenebilmesi için de, HEX EDITOR denilen programlar kullanılır. Bunların dışında, programların CPU daki işlenişi sırasındaki içeriğini görüntüleyebilen ve gerçekte programlardaki hataları ayıklamak için kullanılan DEBUGGER denilen programlar da kulanılmaktadır [4].
Bu durumda, program kırmak için gerekli olan bilgi ve dökümanlar şu şekilde sıralanabilir:
1-ASSEMBLY dilini bilmek,
2- Windows İşletim Sistemini iyi tanımak ve fonksiyonlarını bilmek,
3-Disassembler Programı,
4-Hex Editör Programı,
5-Debugger Programı.
Bu tool(doküman) lardan faydalanarak, programların Serial Number (Seri Numara) ları ya da password (şifre) leri kırılabilir; deneme sürümlerinin kısıtlanmış fonksiyonları genişletilebilir ve Time Trial’lı (Süreli Deneme ) programların da tarih kısıtlamaları kaldırılabilir.
Disassembler, Hex Editör ve Debugger kavramına ve bu türdeki programların çalışmasına yabancı olanların, program kırılımına geçmeden önce 5. Bölüm'e göz atmaları tavsiye edilir.
Assembly kodlarına uzak olanların da, program kırımına geçmeden önce EK-B'ye bakmaları tavsiye edilir. Başlangıç için yeterli olabilecek notlar eklenmiştir.
1. BİR WINDOWS PROGRAMININ ŞİFRESİNİN KIRILMASI
Windows altında çalışan bir çok program, password korumalıdır. Çoğunlukla, programı register etmek için sizden bir user name ve password ister fakat program satın alınmamışsa ya da doğru password bilinmiyorsa, girilen bilgiler, "invalid registeration number" gibi ya da benzer hata mesajlarıyla geri döner. Bu tür programlar, kırılımı en kolay olan programlardır. Burada, Windows programlarının kırılımı örnek bir program üzerinde, aşamalar halinde gösterilmiştir:
1.1. Kırılacak Program
Hedef Program : HexWorkshop
Programın Bulunabileceği Adres : www.bpsoft.com
Program ilk açıldığında ekrana, bu programın 20 gün süreli bir demo versiyon olduğunu hatırlatan bir pencere gelecektir. Eğer bu versiyon yakın tarihte kurulmuşsa upgrade edilmesini öneren bir başka pencere daha görülecektir. Bunun haricinde, programın Demonstration Version diye bir menüsü olduğu görülür ve bu menüye tıklandığında ise Serial Number soran bir pencere ile karşılaşılır. Bu durumda, burada yapılması gereken doğru bir seri numarası ya da programa girilen seri numarasının doğru olduğunu zannetirecek bir yöntem bulmaktır [5].
1.2. Kırılımı Gerçekleştirecek Program
Kırarken Kullanılan Program : Wdasm89
Wdasm89 bir disassembler’dır. Disassembler ile program kırma tekniği, hata mesajından faydalanarak, kod içinde şifrenin bulunmasına dayanır [4].
1.3. Programın Kırılım Aşamaları
Programın kırılımı on aşamada gerçekleştirilmiştir. Bu aşamalar:
1.3.1. Programın disassemble edilmesi
Program disassemble edilerek crack işlemine başlanır. Programın disassemble işlemi bittikten sonra ise, kullandığı Windows fonksiyonlarının incelenmesi gerekir [5].
1.3.2. Sonuca götürecek en uygun fonksiyonun bulunması
Disassembler ekranında, Functions Menüsünden, Imports‘a bakılarak sonuca götürecek en uygun fonksiyon bulunur. HexWorkshop programının kırılımında, User32.getwindowtexta fonksiyonundan faydalanılacaktır [5].
1.3.3. Fonksiyonun bulunduğu yerlere breakpoint konulması
Program load edilip (yüklenip) user32.GetWindowTextA fonksiyonlarının kullanıldığı yerlere breakpoint (durak noktası) konulur [5].
1.3.4. Register menüsüne herhangi bir değer girilmesi
Daha sonra program çalıştırılarak Demonstration Version menüsü açılır ve buraya Serial Number olarak herhangi bir numara girilir. Burada seri numarası olarak 99999999 girildiği varsayılacaktır [5].
1.3.5. Wdasm programına girilmesi
Seri numarası girme işlemi sonucunda REGISTER tuşuna basıldığında Wdasm programının içine otomatik olarak girilecektir. Bu durum crack işleminde doğru yolda olunduğunu gösterir. Daha sonra F8 tuşu ile hatalı Serial Number girildiğine dair ekran çıkana kadar ilerlemeye devam edilir. Bu noktaya gelinceye kadar işlenen kodlar iyi takip edilmelidir çünkü en son işlenen Dallanma Komutunun (je , Jne , Jz , jnz , Ja , Jb gibi ) yeri oldukça önemlidir [5].
1.3.6. Hata ekranının bulunması
Hata ekranı çıktığında OK tuşuna basılarak işlem tekrarlanır ve her işlenen koşullu dallanma komutuna bir durak noktası konulur.
:0043178B E8E8DC0100 call 0044F478 ; Seri Numarası’nın ekrandan okunması
:00431790 8B8DFCFEFFFF mov ecx, dword ptr [ebp+FFFFFEFC]
:00431796 83C164 add ecx, 00000064
:00431799 E8F21BFDFF call 00403390
:0043179E 50 push eax
:0043179F 8D45DC lea eax, dword ptr [ebp-24]
:004317A2 50 push eax
:004317A3 E8E8B90000 call 0043D190
:004317A8 83C408 add esp, 00000008
:004317AB 680C534800 push 0048530C
:004317B0 8D45DC lea eax, dword ptr [ebp-24]
:004317B3 50 push eax
:004317B4 E867CE0000 call 0043E620
:004317B9 83C408 add esp, 00000008
:004317BC 85C0 test eax, eax
:004317BE 0F8414000000 je 004317D8
:004317C4 8D45DC lea eax, dword ptr [ebp-24]
:004317C7 50 push eax
:004317C8 E893970000 call 0043AF60
:004317CD 83C404 add esp, 00000004
:004317D0 8945EC mov dword ptr [ebp-14], eax
:004317D3 E907000000 jmp 004317DF
:004317DF 837DEC00 cmp dword ptr [ebp-14], 00000000
:004317E3 0F8479000000 je 00431862 ;Seri Numarası yanlış ise dallanma olur
:004317E9 8B8DFCFEFFFF mov ecx, dword ptr [ebp+FFFFFEFC]
:004317EF 83C164 add ecx, 00000064
:004317F2 E8991BFDFF call 00403390
:004317F7 50 push eax
Crack işlemine tabi tutulan HexWorkshop Programında, girilen numara doğru kabul edildikten sonra çalıştığı dizinde bir dosya oluşturulur. REG uzantılı olan bu dosya oluşturulduğunda ya da içerisinde belli bir imza olduğunda, girilen seri numarasının doğru olup olmadığı bir daha kontrol edilmez ve sonsuza dek Full Version olarak çalışır [5].
1.3.7. Kodun değiştirilmesi
Programın girilen herhangi bir kodu kabul etmesi için yapılması gereken işlem, Koşullu Dallanma ( Conditional Jump) komutunun durumunu değiştirmektir. Koddan da görüldüğü üzere, 004317E3 satırında seri numarasının 00431862’den farklı olması durumunda hata verecektir. Ancak JE 00431862 komutu JNE 00431862 komutuna ya da tamamı NOP komutuna çevrildiğinde, program girilecek herhangi bir kodu kabul edecektir ve Crack işlemi tamamlanmış olacaktır [5].
1.3.8. Kırılacak programın exe’sinde kodun değiştirilmesi
Wdasm programından aranılan byteların 30BE3h adresinde yer aldığı görülmektedir. HexWorkshop programının kendisini kullanarak Hworks32.exe dosyası açılarak 30BE3h adresine gidilir ve 0F8479000000 byteları 909090909090 byteları ile değiştirilerek başka bir isimle kaydedilir. Çünkü aynı isimle o an hafızada olan bir dosya kayıt edilemez [5].
1.3.9. Programın son halinin kaydedilmesi
Daha sonra HexWorkshop programından çıkılarak orijinal dosyanın adı başka bir isimle kaydedilip, kırılmış dosya orijinal adıyla kaydedilerek program hazır hale getirilir[5].
1.3.10. Programın register edilmesi
Daha sonra yapılması gereken, programı çalıştırıp herhangi bir Seri Numarası yazarak kayıtlı hale getirmektir.
2. PROGRAMLARIN DENEME SÜRÜMLERİNDEN FONKSİYON KISITLAMASININ KALDIRILMASI
Program koruma tiplerinden bir tanesi de, programın bazı fonksiyonlarının kısıtlanmasına dayanır. Satın alınmadığı müddetçe bu tür programların en önemli fonksiyonları kullanılamaz. Bu tür korumaya bir örnek verilecek olursa, Acrobat Reader programının freeware(ücretsiz) sürümleri kolaylıkla bulunmasına rağmen, programın bünyesinde bulunan Acrobat Writer kısmına ulaşmak için programın satın alınması gerekir. Aşağıda da bu koruma tipine örnek teşkil edecek şekilde, internetten sayfa ve site indirilmesine yardımcı olan Teleport programındaki kısıtlamanın kaldırılması aşamalar halinde gösterilmiştir:
2.1. Kırılacak Program
Hedef Program : Teleport Pro
Program açıldığında Serial Number(seri numarası) sormak gibi rahatsız edici herhangi bir ekran gelmemektedir ancak bir siteyi indirirken en fazla elli dosyanın indirilmesine izin vermektedir.
2.2. Kırılımı Gerçekleştirecek Program
Kırılımında Kullanılacak Araçlar : Soft-ICE
Kırılımda kullanılan Soft-ICE programı, en çok kullanılan debugger’dır. Debugger’lar programların breakpointler (durma noktaları) ile durdurularak kodlarının incelenmesini ve hataların düzeltilmesini sağlarlar.
2.3. Programın Kırılım Aşamaları
Programın kırılımı, sekiz aşamada gerçekleşmiştir. Bu aşamalar:
2.3.1. Programın register bilgilerinin öğrenilmesi
İlk olarak yapılacak iş, help dosyasında register kısmını okumaktır. Bu, programın nasıl kayıtlı hale getirileceği konusunda az da olsa bir bilgi verecektir. Klasik olarak, help kısmında about ya da register diye bir kısım olup olmadığına bakılır. Bu program itibariyle register diye bir kısım olduğu görülür. Bu kısma tıkladığında ekrana Name, Company ve Code dan oluşan bir pencere gelir. Makineye daha önceden kurulmuş olan Soft-ICE Programına girilir. Program, breakpointler ile durdurulur. En fazla kullanılan breakpointler, bpxgetwindowtexta ve bpxgetdlgitemtexta’dır. Bu fonksiyonların sonundaki a karakterleri, 32 bit programlar için kullanılacağını göstermektedir [4].
2.3.2. Register ekranında istenen bölümlere herhangi bir değer girilmesi
Register ekranında, name kısmına Hilal Akarkamçı, company kısmına Gazi Universitesi, Serial kısmına da 7777777 diye herhangi bir serial yazılsın.
2.3.3. Soft-ICE’ta breakpoint konulması
Enter tuşuna basılmadan önce Ctrl+D ile Soft-ICE 'a geçip breakpoint konulmalıdır. Soft-ICE ta iken bpx getwindowtexta yazıp entere basılır ve sonra x ile yeniden Windows’a dönülür [4].
2.3.4. Girilen bilgilerin onaylanması
Enter'a basıldığında yeniden Soft-ICE ekranına gelindiği görülür, çünkü program getwindowtexta ile yazılanları okumaya çalışır ve Soft-ICE da bu komutu görünce durur[4].
2.3.5. Girilen değerlerin okutulması
Kayıt ekranında üç tane girdi olduğu için program bunları teker teker okuyacak ve kendi gerçek seri numarası ile verilen seri numarasını karşılaştıracaktır. Bu nedenle, Soft-ICE’ta iken x yazılıp enter’a basılacaktır. Sonra bir kez daha x yazıp entere basılacak, böylelikle girilen isim ve şirket kısımları programa okutulmuş olur. Bundan sonra program artık registerlar aracılığıyla bu bilgileri değişik hesaplardan geçirecek ve kodu hesaplayarak sonradan girilen kod ile karşılaştıracaktır. Soft-ICE’ta şu şekilde bir ekran çıkacaktır [4] :
USER32!GetWindowTextA
BFF51804 B1B2 MOV CL,B2
BFF51806 55 PUSH EBP
2.3.6. Gerçek seri numarasının bulunması
Burada iken bc 0 ile koyulan breakpoint temizlenir. Şimdi bu kod takip edilerek gerçek serial bulunmaya çalışılır. Kodları adım adım izlemek için F10 tuşuna basılır. Alt tarafta o an hangi exe veya dll’nin çalıştığı yazmaktadır. Hala Teleport Pro verilen bilgileri okuduğundan şu noktaya gelinceye kadar F10 a basılır [4].
* Reference To: USER32.GetWindowTextA, Ord:013Fh
:0044A950 FF15C0434600 Call dword ptr [004643C0]
:0044A956 8B4D10 mov ecx, dword ptr [ebp+10]
:0044A959 6AFF push FFFFFFFF
:0044A95B E83793FFFF Call 00443C97
:0044A960 EB0B jmp 0044A96D
00444A95B deki çağrı (call) nın F8 ile içine girilebilir ancak çağrıların ardından conditional jump yani "je" "jne" gibi kodlar yoksa bu çağrılar F10 ile izlenebilir. F10 ile kod izlendiğinde şu noktaya gelinir [4] :
.................
0042472D C6415C01 mov [ecx+5C], 01
:00424731 E958FFFFFF jmp 0042468E
:00424736 B8981F4600 mov eax, 00461F98
:0042473B E8B0610000 call 0042A8F0
:00424740 51 push ecx
:00424741 51 push ecx
:00424742 53 push ebx
:00424743 56 push esi
:00424744 57 push edi
:00424745 8BF9 mov edi, ecx
:00424747 6A01 push 00000001
:00424749 E8F1DE0100 call 0044263F
:0042474E 33DB xor ebx, ebx
:00424750 6A0A push 0000000A
:00424752 53 push ebx
:00424753 FFB7DD000000 push dword ptr [edi+000000DD] ;Seriali edi+dd ye tek tek yaz
:00424759 E852700000 call 0042B7B0
:0042475E 8B0D9C1A4800 mov ecx, dword ptr [00481A9C]
:00424764 83C40C add esp, 0000000C
:00424767 8945EC mov dword ptr [ebp-14], eax
:0042476A 3899CD020000 cmp byte ptr [ecx+000002CD], bl
:00424770 0F841B020000 je 00424991
.....
Bu noktada yani xx:00424753 de iken d edi+dd yazılırsa data penceresinde EC 25 A3 00 görülür. Eğer d A325EC yazılırsa data penceresinde sonradan girilen '7777777' şeklindeki kod görülür. Dword ptr, programın verilen Serial’ı byte byte alarak belirtilen belleğe yerleştirmesi anlamındadır. Bu yüzden testen işlem yapılarak girilen koda ulaşıldı. Kod izlenmeye devam edildiğinde şu noktaya gelinir [4] :
....
"User" '>* Possible StringData Ref from Data Obj ->"User"

:00424778 BED0B74700 mov esi, 0047B7D0
:0042477D 0F840B010000 je 0042488E
:00424783 FFB7D5000000 push dword ptr [edi+000000D5] ;Kullanıcı ismini belleğe yerleştir
:00424789 E894090000 call 00425122
:0042478E 3945EC cmp dword ptr [ebp-14] ; Eax ile gerçek kodu karşılaştır
:00424791 59 pop ecx
:00424792 753A jne 004247CE ;Kod doğru değil
:00424794 8D4DF0 lea ecx, dword ptr[ebp-10];Kod doğru
:00424797 E8B2EF0100 call 0044374E
* Possible Reference to String Resource ID=07076: "Thank you! Your copy of Teleport Pro is now registered",
2.3.7. Programın register edilmesi
Bu noktada yapılması gereken tek işlem :0042478E yi F10 ile geçtikten sonra (yani program o bölgeyi çalıştırdıktan sonra) ? eax yazmaktır. Bu yazıldığında 1458171568 görülür. Bu, gerçek seri numarasıdır. Soft-ICE tan çıkıldıktan sonra, Name= Hilal Akarkamçı Company =Gazi Universitesi Serial = 1458171568 yazıp program kayıtlanır.
Bu işlemlerin gerçekleştirilmesi için Soft-ICE konusunda bilgi sahibi olmak gerekmektedir.
2.3.8. Programın seri numarasının hesaplanışı
Programın serial’ının nasıl hesaplandığını görmek için 00424789 deki call a F8 ile girilebilir. Hesaplama şu şekilde gerçekleşmektedir. İlk başta isim en az 5 karakter mi diye bakılıp, daha sonra boydan 4 çıkartılır ve 4. karakterden sonraki her karakter 5DFEE4A4H ile xor edilip toplanır. Assembly de yazılacak olursa, kod şu şekilde olur [4,5] :
mov edi, offset szName
; İsmi edi ye yolla
push edi
call lstrlen
; Listele
cmp eax, 5
; 5 ten düşükse işlemi durdur.
jl ExitProc0
add eax, -4
; 4 çıkart
xor ebx, ebx
; ebx i sıfırla
lea edi, szName
; İsmi al
mov esi, 5DFEE4A4H
; Numarayı esi ye yolla
Hesapla:
cmp ebx, eax ; Sona gelindi mi ?
jae Goster
xor esi, [edi+ebx] ; Değilse Xor la
inc ebx ; Ebx i artır
jmp Hesapla
Goster:
mov eax,esi
; Serial eax 'ta
3. TIME TRIAL’LI PROGRAMLARDAN ZAMAN KISITLAMASININ KALDIRILMASI
Süreli programlar, program kodunda kullanım süresinin kısıtlanması sayesinde, belirtilen süre dolduğunda (30 gün, 90 gün) çalışmayan programlardır. Özellikle dergilerin verdiği CD'lerdeki programlar bu şekildedir. Bu tür bir korumanın konulmasındaki amaç, ticaridir ve programın bu süre içinde tanıtılması ve satın alınmasını amaçlar. Burada, zaman kısıtlamasının kaldırılması örnek bir program üzerinde bilinmesi gereken yöntemler ve tüm aşamalarıyla birlikte gösterilmektedir:
3.1. Call Flow Yaklaşımı:
Herhangi bir program çalıştırıldığında, bir seri fonksiyon, prosedür ve açıklamalardan geçer. Call Flow denilen olgu ise bir programın çalıştırılmasından sonra izlediği yolun bir listesi ya da diyagramına verilen addır. Bu yol, programın çalıştırıldığı zamandaki koşullar nedeniyle farklılıklar gösterebilir. Aşağıda verilen 6 basamak incelenmelidir [6] :
1.) GetSystemTime. (Sistem zamanını kontrol eder).
2.) Installed. (Programın ne zaman yüklendiğini kontrol eder).
3.) Expired. (Deneme süresinin bittiğini belirten bir mesajı gösterir).
4.) DaysLeft. ("Programı denemek için % gününüz kaldı" mesajını gösterir).
5.) Halt. (Programdan çıkar).
6.) Main. (Ana program).
Bu prosedürler kullanılarak, Time Trial (zamana bağlı demo) korumalı bir programın asm kodu aşağıdaki gibi olacaktır:
00000001 : Call GetSystemTime.
00000002 : Call Installed.
00000003 : if (GetSystemTime - Installed) eğer 30 günden fazlaysa...
00000004 : Call Expired,
00000005 : Jmp Halt.
00000006 : 30 günden fazla değilse...
00000007 : Call DaysLeft,
00000008 : Jmp Main.
Gerçek bir kodu incelediğimizde işe şuna benzer:
Call 041829B0 (GetSystemTime)
Call 0492832C (Installed)
Cmp Ax,Bx (if koşulu)
JL 04927435 (ax ve bx değerlerine göre Jump ya da No Jump)
Call 04348234 (Expired=deneme süresi sona erdi)
Jmp 0432833C (Halt=programdan çık)
---JL Address---
Call 04583BC0 (Kalan gün mesajı)
Jmp 042392BC (Ana Program)
Yukarıdaki kod incelenecek olursa, programın çalışma şekli JL emrinden önceki ax ve bx değerlerine dayanmaktadır. Buradaki problem ise büyük bir kodun disassemble edilişinden sonra patchlemek için doğru yeri bulmanın zor olmasıdır, çünkü bu tür kodlarda bir çok cmp / jl veya cmp / jne oluşumları bulunmaktadır [6].
3.1.1. Yama yapılacak doğru yeri bulmak:
Yukarıdaki kodu kullanarak ortaya 2 farklı program yolu çıkartılabilir. Hala 30 günlük deneme süresi içindeyken, programın takip ettiği yol şuna benzeyecektir:
GetSystemTime
Installed
Cmp ax,bx
JL (Jump)
DaysLeft
Main.
Deneme süresi sona erdiğinde ise kod şuna benzeyecektir:
GetSystemTime
Installed
Cmp ax,bx
JL ( No Jump )
Expired
Halt.
Bu iki listeye bakılırsa, JL komutuna kadar herşeyin aynı olduğu görülür; ama JL de ilk liste atlamayı yaparken 2. liste bizi programın sonuna getirmektedir. JL komutu ax ve bx değerlerine bağlı durumdadır. Zamana bağlı program kilidini kaldırmak içinse yapılması gereken ya ax ve bx in değerlerini değiştirerek (doğru yöntem) sürekli bir deneme süresine sahip olmak ya da JL komutunu Jmp komutu ile değiştirip programın ilk call flow’daki gibi çalışmasını sağlamak olacaktır [6].
3.1.2. Crack işlemi için ihtiyaç duyulacak dökümanlar:
- Soft-ICE (Symbol Loader ı ile birlikte)
- Bir Hex Editörü. (örn: Ultra Edit)
- Bir Text Editörü. (örn: Notepad)
(Disassembler’a ihtiyaç duyulmamaktadır.)
3.1.3. Crack işleminin aşamaları
Önce, Soft-ICE’la birlikte install edilmiş olan symbol loader yüklenir. Bu görev çubuğundaki klasörden açılabilir. Symbol Loader'daki file menüsüne gidip `open module` a tıklanır. Buradan da kırılmak istenen programın ana çalıştırma dosyasına tıklanır (örn: mirc için mirc32.exe). Bu işlem tamamlandıktan sonra `Module` menüsüne gidilerek "Load Module" a tıklanır. Normalde bu bir hata mesajıyla gelecektir, `Yes` e tıklayıp yüklemeye devam edilir. Şimdi Soft-ICE, Symbol Loader nedeniyle araya girecek ve aşağıdakine benzer birçok satır görüntülenecektir.
FFFF INVALID
FFFF INVALID
FFFF INVALID
FFFF INVALID
FFFF INVALID
.
Bu bir hata değildir. Soft-ICE, sadece hafızadaki henüz çözemediği bir bölümü göstermektedir. Şimdi Soft-ICE, yapılmak istenen işleme göre ayarlanmalıdır [6].
3.1.3.1. Kod penceresinin kapatılması.
Soft-ICE'ta "wc" yazılır. Bu komut kod penceresini kontrol eder. Kod penceresinin gözükmesi istenmediğinden, bu şekilde kapatılır. Bu aynı zamanda mouse kullanılarak da yapılabilir. Kapatılmak istenen pencerenin üst köşesine mouse ile tıklayıp sürüklenebildiği kadar yukarıya sürüklendiğinde, bu pencere kapanacaktır [6].
3.1.3.2. GeTSystemTime için breakpoint konulması.
GetSystemTime (O anki tarih ve saati göstermek için kullanılan birçok api komutundan birisidir.) için bir breakpoint konulmalıdır. Bu, komut penceresinde "Bpx GetSystemTime" yazılarak sağlanır. Bu arada, GetSystemTime sadece fonksiyonun adresini belirtir. Fonksiyonun adresi bilinse, "Bpx 004283CD" gibi bir satır da yazılabilirdi. Bu durumda bpx komutuna bir offset de eklenebildiği görülüyor; örn: "Bpx GetSystemTime +4" teki gibi. Bu komut, fonksiyonun başlangıcından 4 offset sonra Soft-ICE’ın devreye gireceğini gösterir [6].
3.1.3.3. Programın yüklenmeye devam edilmesi.
Soft-ICE'ta breakpoint (BPX GetSystemTime) ayarlandığına göre programın yüklenmesine ve çalışmasına devam etmek için izin verme zamanı geldi. Yapılması gereken CTRL+D tuşlarına basmaktır. Program yüklenmeye ve çalışmaya devam ederken 'GetSystemTime' komutunu işleyecektir. Bu olduğunda, Soft-ICE belirecek ve programı fonksiyonun başında durduracaktır. Komut penceresinde ise 'BPX due to KERNEL32!GetSystemTime' yazısı görülecektir. Burası olayın kaydedilmeye başlanması gereken yerdir [6].
3.1.3.4. Fonksiyondan çıkılması.
Şimdi 'GetSystemTime' fonksiyonunun başlangıcında bulunuluyor. Bu fonksiyon atlamalıdır ki tüm fonksiyon işlendikten hemen sonra yer alan asm komutuna varılsın.
('GetSystemTime' fonksiyonu Windows \ System dizininde bulunan Kernel32.dll'nin bir parçasıdır). Bu fonksiyon bilgisayarın o anki durumundan bağımsız olarak her zaman aynı komutları işleyecektir, bu yüzden bu komutların kaydedilmesine gerek yoktur. Fonksiyondan hemen sonraki asm komutuna atlamak için yapılması gereken "F11" tuşuna bir kez basmak olacaktır.Bu noktadan sonra yapılacak işlemlerde dikkatli olmak gerekmektedir[6].
3.1.3.5. Nag ekranına kadar tüm komutların kaydedilmesi.
Bu noktada yapılan herşeyin kaydedilmesi gerekmektedir. Yapılması gereken; `Programı kullanabilmek için % gününüz kaldı` text’ini içeren Nag Ekranı çıkana kadar F10 tuşuna basarak kodun içinde adım adım ilerlemektir. Dikkat edilirse, komut penceresinde işlenen tüm kodun belireceği görülür. Tüm bu bilgiler Soft-ICE Buffer'ında kaydedilmektedir [6].
3.1.3.6. Log dosyasının kaydedilmesi.
Nag ekranı çıktığında, ilk log dosyasını kaydetmenin zamanı gelmiştir. Yapılması gereken hala yüklü olan Soft-ICE Symbol Loader’a giderek File menüsünden `Save Soft-ICE history as...` e tıklamaktır. Şimdi bu dosya, asa1.txt diye kaydedilecektir. Bu dosya bir text editörle açılacak olursa, komut penceresindeki tüm olanların kaydedilmiş oldukları görülecektir [6].
Bu, ilk “ Call Flow ” dosyasıdır.
3.1.3.7. Tarihi ileriye alıp tüm işlemlerin tekrarlanması
Şimdi yapılması gereken 2. bir call flow logu hazırlamaktır, ancak bu sefer sistemin tarihi ileriye alınmalıdır ki, "Deneme Süreniz Sona Erdi." mesajı görülebilsin. Bu, programımızın 'GetSystemTime' fonksiyonundan sonra fakat Nag ekranı çıkmadan önce farklı bir yol izlemesine neden olacaktır [6].
3.1.3.8. İki Log dosyasının karşılaştırılması.
Tüm adımlar tekrarlandıktan ve 2. log dosyası (örn:asa2.txt) kaydedildikten sonra iki log dosyasını karşılaştırmak gerekir. Burada iyi korunulduğu söylenen bir Microsoft programını kullanarak ortaya çıkan 2 tane örnek log dosyası üzerinde açıklama yapılacaktır[6].
Bu iki log dosyası, Ek-A'ya konulmuştur.
3.1.3.9. İki log dosyasının farklılaştığı ilk noktanın bulunması.
Dikkat edilirse her iki log dosyası da 015F:3000ADC1 adresine kadar aynıdır. İlk dosyada, bu adresteki komut atlama yapmıyor, fakat ikinci dosyada aynı komut atlamayı yaptırıyor. Bu, o noktadaki EAX in değerinin sistem zamanına bağlı olarak aldığı değişiklikten kaynaklanıyor. Aşağıdaki kod satırları incelenmelidir:
LEA EAX,[ESI-01] Bu komut, ESI-01’deki byte’a bakıp değeri EAX’e koyuyor.
CMP EAX,05 Bu komut, EAX’teki değerin 5’e eşit olup olmadığına bakıyor.
JA 3000AE00 Eğer değer 5'ten büyükse 300AE00 adresine atla komutu.
3.1.3.10. Dosyada değişiklikler yapılması.
JA komutunun atlama yapmaması için dosya değiştirilmelidir. Bu bir çok yolla yapılabilir:

Basit ve ucuz olan yol; 015F:3000ADC1 adresindeki `77 3D` değerlerini `90 90` olarak değiştirerek "JA 3000AE00" komutunu nop lamaktır (No Operation). Bu yol çoğu zaman işe yarasa da, doğru yol 3 byte uzunluğunda olan 'LEA EAX,[ESI-01]', yine 3 byte uzunluğunda olan 'CMP EAX,05' ve 2 byte uzunluğunda olan `JA` (3 asm kodu için toplam 8 byte etti) komutlarını; 5 byte uzunluğundaki 'MOV EAX,00000005' ve birer byte uzunluklarındaki 3 `NOP` komutuyla değiştirmek olacaktır. Bu, EAX kaydının herzaman doğru değere sahip olmasını ve aynı sayıda byte'ın değiştirilmiş olmasınısağlayacaktır [6].
3.1.3.11. Programı yamalamak (Patching olayı).
Artık yapılması gereken, programı istenilen bir Hex editörüne yükleyerek log dosyasında LEA, CMP ve JA komutları için bulunan byte gurubunu arayıp yamamak olacaktır.
Bu örnek için;
'8D46FF83F805773D' yi 'B805000000909090' ile değiştirir.
B805000000 = MOV EAX,05
90 = NOP
"Call Flow Metodu" olarak anılan bu cracking yönteminin, 2 ayrı yol izlenen bir çok olayda da kullanılabilme imkanı vardır.
Örnek :
- CRC rutinlerini kırmak için (Program modifiye edilmiş/edilmemiş) ;
- Dongle korumasının (Dongle plugged in/not plugged in) kaldırılması ;
- Üç deneme ve password soru alanının dışındasın (Sizin bir fonksiyonu sadece belli bir sayıda kullanabilmenizi sağlayan programlar) şeklindeki kısıtlamaların kaldırılması için kullanılır. [5,6]
4. CD KORUMASININ KALDIRILMASI
Programlardaki koruma tiplerinden bir tanesi de, CD sürücüde CD olup olmadığını kontrol eden koruma tipleridir. Bu koruma, genelde oyun programlarında kullanılır. Program bilgisayara install edilmesine(yüklemesine) rağmen, her kullanımda CD ister. Bu tür korumaları kaldırılmasının aşamaları, örnek bir program üzerinde gösterilmektedir:
4.1. Kırılacak Program
Hedef Program: Herhangi bir oyun programı.
4.2. Kırılımı Gerçekleştirecek Program
Kırılımında Kullanılacak Araçlar: W32Dasm ve HIEW
4.3. Programın Kırılım Aşamaları
Programın kırılımı, yedi aşamada gerçekleşmiştir. Bu aşamalar:
4.3.1. Programı CD’siz çalıştırarak hata mesajının alınması
Öncelikle, kırılacak oyun programı CD takılmadan çalıştırılır. Bu durumda, oyun çalışmayıp, ekrana hata mesajı veren bir pencere çıkacaktır. Programın kırılmasında bu hata mesajından faydalanılacaktır, bu nedenle hatırlanması gerekmektedir [7].
4.3.2. W32Dasm programında kırılacak programın çağrılması
Daha sonra, W32Dasm disassembler’ı çalıştırılır. Disassembler ekranı açıldığında, Toolbar üzerinde sol tarafta bulunan ilk küçük butona basılır ya da menülerden - Open File to Disassemble – bölümüne gelinir. Açılan menüde kırılmak istenen exe program seçilir. Disassemble işlemi yaklaşık 5 dakika sürecektir. Bu işlem tamamlandığında ekrana programın assembly kodu gelecektir [7].
4.3.3. Assembly kodunun incelenmesi
Bu aşamada yapılacak işlem, String Data References butonuna tıklamaktır. String Data Items adlı bir pencere açılır. Kod aşağı doğru incelenerek oyunun hata mesajı bulunmaya çalışılır. Bulunduğunda, üzerine çift tıklanır [7].
4.3.4. W32Dasm textine dönülmesi
Sonra Win32Dasm textine dönmek için pencere kapatılır. Görüldüğü gibi CD kontrol rutininde bulunulmaktadır. Burası hata mesajının bulunduğu alandır [7].
4.3.5. Call ve jump komutlarının ofsetlerinin alınması
Bu aşamada, kodda bulunan bütün call ve jump komutlarının offsetlerinin not alınması gerekir. (OPBAR’ın mevcut renginin yeşile dönüştüğünden emin olunmalıdır.) @offset’in yanındaki h uzantısız hexadecimal sayıya ihtiyaç vardır [7].
4.3.6. Hiew programına geçilmesi
Daha sonra HIEW’e geçilir. Bu program içinde aşağı yukarı hareket için kursor tuşları kullanılır. HIEW.exe çalıştırılır. HIEW dizini içinde, exe dosya ve programların bir listesi bulunur [7].
4.3.7. Hiew içinde kırılacak programın exe’sinde numaranın değiştirilmesi
Hiew dizini içindeki listeden kırılacak oyunun kaydedildiği dizine gelinerek oyunun exe’sine tıklanır. F4’ e tıklanarak - Text, Hex ve Decode – menüsüne gelinir. Bu menülerden Decode’a tıklanır. Kodların offset adreslerinin bulunduğu bir liste gelir. F5’ e basılarak Win32Dasm’da not alınan numara buraya yazılır. Sayı yazıldığında bu numaranın bulunduğu satıra gelinir ve kursor komutun üzerine konumlanır. Örneğin, ekrana E92BF9BF74 gibi 5 byte’lık bir sayı gelirse buraya F3’e bastıktan sonra 90-90-90-90-90 yazılır. F10’ a basıp çıkıldığında oyunun CD koruması kaldırılmış olur [7].
5. HİZMET PROGRAMLARININ TANITILMASI
Bir programın kırılması için, onun disassemble edilebilmiş koduna ihtiyaç vardır. Bu iki şekilde sağlanır. Birincisi, bir disassembler kullanarak programın deadlist(çalışır vaziyette olmayan bir exe'nin içeriği) denilen assembly kodu elde edilebilir. İkinci bir yöntem ise, debugger kullanarak live(canlı, yani o anda çalışan ve cpu(işlemci)'de işlenen assembly kodu) olarak bu programın içeriğinin görüntülenmesidir. Birinci yöntem daha uzun bir süre gerektirecektir, çünkü tüm exe analiz edilip içinde geçen tüm jump ve call komutları için referans açıklamaları oluşturmak gerekir. Diğer yöntem ise daha kolaydır. Sadece o anda işlenen kodun birkaç satır öncesi ve sonrası dahil olmak üzere görüntülenir. Yeni başlayanlar için disassembler kullanmak daha kolay ve cazip gelebilir, çünkü bu yöntemde assembly kodlarının yanında daha fazla açıklama vardır ve bir altyordamın nerelerden çağrıldığı ve hangi adres ya da değişkenleri kullandığı daha açık bir şekilde görülebilir.Program kırılımında zaman önemli görülüyorsa, debugger kullanmak daha uygundur. Bunun sebebi, disassembler programının exe'yi disassemble etmek için harcadığı zamandan kurtulmuş olunması ve debugger'da breakpoint(durak noktası) konulmasının daha kolay olmasıdır. Debugger kullanılarak daha dinamik breakpoint'ler konulabilir [8].
Program kırmak için bazen diğer tool'larla birlikte Hex Editör'ler de kullanılır. Hex Editör, programın exe'sini açarak yama yapılmasına ve kodun değiştirilmesine yardımcı olur.
Burada Disassembler, Hex Editör ve Debugger kavramları, en çok kullanılan örnekleri üzerinde incelenmiştir:
5.1. Disassembler
Çalıştırılabilir(exe) programlar hafızada, makine dilinde bulunurlar , bu kodların anlaşılabilmesi için, ASSEMBLY kodlarına çevrilmesi gerekir. Bu iş için kullanılan programlara disassembler denir [4].
Burada disassembler örneği olarak W32Dasm tanıtılacaktır:
5.1.1. W32Dasm
W32Dasm disassembler’ı http://www/expage.com/page/w32dasm adresinden temin edilebilir. Kurulumu kolaydır. Kurulum tamamlandıktan sonra, W32Dasm ile bir program disassemble edileceğinde, öncelikle W32Dasm programı çalıştırılır. Disassembler editörü gelir ve disassembler menüsü yardımıyla dosya saklandığı yerden çağrılarak işleme başlanır.
5.1.1.1. Özellikleri
· W32Dasm Windows NT 4.0 ile çalıştırılabilir.
· W32Dasm Intel MMX komut setini disassemble edebilmektedir.
· 32 bit debugger’ın, kod yamalama fonksiyonu(komut assembler’ı) vardır.
· CPU kaydedicilerinin ve bayrakların değişiklik göstergeci mevcuttur.
· Referans adresine sağ tuşla çift tıklandığında bütün Call ve Jump Cross Reference adreslerine dallanabilir. Referansa dönmek için F12 kullanılır [9].
5.1.1.2. Bir programın disassemble edilmesi
W32Dasm editörü Şekil 5.1.’de görüldüğü gibidir. Disassemble edilecek program, Disassembler menüsünden “Open File to Disassemble” penceresinden seçilir. Burada örnek olarak AudioWriter programının disassemble edilişi gösterilecektir.
Şekil 5.1. W32Dasm Editöründe disassembler menüsü
Açılan pencereden AudioWriter.exe tıklanarak disassemble edilecek program seçilmiş olur.
Şekil 5.2. Disassemble edilecek programın seçilmesi
Dosya seçilip, Aç tuşuna basıldığında W32Dasm, exe kodu assembly kodlarına çevirmeye başlar. Bu işlem 5 dakika kadar kendi kendine yürütüldükten sonra kodları gösteren bir ekran gelir. Bu ekran Şekil 5.3.'te gösterilmektedir.
Şekil 5.3. AudioWriter programının disassemble edilmesi
W32Dasm ile şifre kırma tekniği, programın açılışında girilen yanlış koda karşı verdiği hata mesajına dayanır. Bu mesaj not edilerek, kod içinde bulunmaya çalışılır. Kodlar yön tuşları yardımıyla aşağıya doğru incelenebilir. Wdasm programında kodlar incelenirken, ekranın en altında bulunan status bar'da o an üzerinde bulunulan satırın ofset adresi yer alır. Programın kırılımında, jump komutları(jnb, jl, jns, jbe, jo, jmp, jne, jb gibi) şifreyi bulma konusunda yardımcı olan noktalardır. Bu komutların adresleri üzerine gelindiğinde, diğer kodlarda Şekil 5.3.'te görülen izleme bandı maviyken yeşile dönmektedir. Şekil 5.4.'te kodların üzerine gelindiğinde status bar'da meydana gelen
değişiklik gösterilmiştir.
Şekil 5.4. Kodların incelenmesinde status bar ve izleme bandının kullanımı
Disassembler içinde kodlar incelenerek hata mesajının olduğu yer bulunur. Bu mesajın öncesinde çok yakın bir yerde girilen numara ile gerçek seri numarasının karşılaştırılıp dallanıldığı bölüm vardır. Jump(dallanma) komutlarını ve çağrıları(call) çok dikkatli incelemek gerekir. Jump komutu değiştirilerek programın seri numara hata vermesi engellenmiş olur.
İzlemebandı
5.2. Hex Editör
Hex Editör Programı, programcının heksadesimal yama (patch) editörüdür. Diğer bir deyişle, NotePad gibi Text Editörler’den farklı olarak temiz textler yerine formatsız ikili(binary) dosyalarla çalışan özel editörlerdir [4].
Hex Editör programına örnek olarak, HexEdit tanıtılacaktır:
5.2.1. HexEdit
HexEdit programını kullanabilmek için gerekli olan tek dosya, HE.EXE çalıştırılabilir dosyasıdır. Bu dosya path’te bulunduğunda sorun yoktur. On-line yardım alabilmek için HEXEDIT.HLP dosyası da HE.EXE ile aynı dizine kopyalanmalıdır. Otomatik yedek(backup) ler alabilmek için HEB.BAT ve MAKEBAK.EXE dosyaları path’te bulunmalıdır (HE.EXE ile aynı dizinde olmak zorunda değildir) [10].
5.2.1.1. Özellikleri
· Birlikte çalışacağı dosyalarda büyüklük sınırlaması yoktur.
· Dosya üzerinde yapılan bütün değişiklikleri kaydeder. İstenildiği kadar geri alma(UNDO) imkanı sağlar.
· Güçlü bir makinada, dosyaları tarama hızı, 10 sn/MB oranındadır.
· Hızlı ve esnek bir ‘Bul/ Bul ve Değiştir’ özelliği vardır. Büyük-küçük harf duyarlılığıyla ya da olmadan bulma ve değiştirme imkanı sağlar.
· Dosyanın her byte(F2) ve sektörüne(SF2) sıradan erişimli atlama(jump) imkanı sağlar.
· Karakter stringleri ve heksadesimal serilerde arama yapar.
· 15000 tarama eşlemesine kadar saklama imkanı vardır.
· Desimal, heksadesimal ve ikili(binary) sistemler arası dönüşüm yapabilir.
· Tanınmayan karakterler için ASCII tablosu getirebilir (Alt-A).
· İkili dosyalarda sıradan erişimli stringler için tarama yapabilir (Alt-T).
5.2.1.2. Ekran görüntüsü
HexEdit çalıştırıldığında, yama yapılmak istenen dosya belirlenerek, okunacak ve aşağıdaki ekran görüntüsü oluşacaktır:

[Editing: C:\UTIL\HE\HE.EXE]ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ[HexEdit 2.1]
Found: 127/290 Changes : 4297 Mask:Off Mode:C Page:1
Current Sector: 39(00000027) Byte: 20360(00004F88)
Total Sectors : 127(0000007F) Bytes: 65503(0000FFDF)
ÍÍÍÍ00Í01Í02Í03Í04Í05Í06Í07Í08Í09Í0AÍ0BÍ0CÍ0DÍ0EÍ0FÍÍÍÍÍÍ0123456789ABCDEFÍÍÍÍ
00- 74 69 6F 6E 20 6F 66 20-48 45 58 45 44 49 54 2E -00- tion of HEXEDIT. -00
01- 54 58 54 20 66 6F 72 20-6D 6F 72 65 20 69 6E 66 -01- TXT for more inf -01
02- 6F 72 6D 61 74 69 6F 6E-2E 36 54 68 65 72 65 20 -02- ormation.6There -02
03- 69 73 20 6E 6F 20 64 69-66 66 65 72 65 6E 63 65 -03- is no difference -03
04- 20 62 65 74 77 65 65 6E-20 74 68 65 20 72 65 67 -04- between the reg -04
05- 69 73 74 65 72 65 64 20-61 6E 64 20 6E 6F 6E 2D -05- istered and non- -05
06- 33 72 65 67 69 73 74 65-72 65 64 20 76 65 72 73 -06- 3registered vers -06
07- 69 6F 6E 73 20 28 74 68-69 73 20 69 73 20 4E 4F -07- ions (this is NO -07
08- 54 20 43 72 69 70 70 6C-65 77 61 72 65 21 21 21 -08- T Crippleware!!! -08
09- 21 21 29 2E 0F 20 20 20-20 4D 69 6B 65 20 47 72 -09- !!). Mike Gr -09
0A- 61 68 61 6D 0D 20 20 20-20 42 6F 78 20 36 30 30 -0A- aham Box 600 -0A
0B- 33 36 18 20 20 20 20 55-20 6F 66 20 41 20 50 6F -0B- 36 U of A Po -0B
0C- 73 74 61 6C 20 4F 75 74-6C 65 74 10 20 20 20 20 -0C- stal Outlet -0C
0D- 45 64 6D 6F 6E 74 6F 6E-2C 20 41 42 13 20 20 20 -0D- Edmonton, AB -0D
0E- 20 43 61 6E 61 64 61 20-20 54 36 47 20 32 53 34 -0E- Canada T6G 2S4 -0E
0F- 3C 20 6F 72 20 63 6F 6E-74 61 63 74 20 22 6D 69 -0F- < or contact "mi -0F
ÍÍÍÍ00Í01Í02Í03Í04Í05Í06Í07Í08Í09Í0AÍ0BÍ0CÍ0DÍ0EÍ0FÍÍÍÍÍÍ0123456789ABCDEFÍÍÍÍ
F1:Help F2/SF2:Jump F3:Search F4:Srch/Rep F8:Mask F9:Mode ESC:Exit
Alt keys: A:Ascii B:Base C:Config S:Shell X:Abort! T:Text U:Undo
Şekil.5.5. HexEdit programının ekran çıktısı
Ekran görüntüsünün en başında, yamalanacak dosyanın adı (burada HE.EXE) ve HexEdit’in versiyonu belirtilmektedir. Bir aşağı satırda bulunan ‘Found: 127/290’ ifadesi, daha önceki taramanın 290 bulguyla sonuçlandığı ve burada 127. bulguya atlanmış olduğunu ifade eder. Aynı satırdaki ‘Changes : 4297’ ifadesi de dosya üzerinde 4297 değişiklik yapıldığını gösterir. Burada Undo yapılarak orjinal dosyaya ulaşmak mümkündür. ‘Mask:Off’, text filtrelemesini ifade ederken , ‘Mode:C’ karakter düzenleme modunda olunduğunu göstermektedir [10].
5.2.1.3. Fonksiyon tuşları ve kısayollar
HexEdit programında kullanılan fonksiyon tuşları ve kısayollar aşağıdaki gibidir:
F1: Help
F2: İstenen byte’a atlama
Shift-F2: İstenen sektöre atlama
F3: Arama
F4: Bul ve Değiştir
F8: Text olmayan byte’ları maskele
F9: Modu belirle
Alt-A: ASCII Tablosu
Alt-B: Taban dönüşümü
Alt-C: Konfigürasyon
Alt-N: Sonraki bulgu
Alt-P: Önceki bulgu
Alt-S: DOS’a geçiş
Alt-T: Text taraması
Alt-U: Undo(geri alma)
Alt-X: Panic Abort (programdan hiç bir değişiklik kaydedilmeden hızlı çıkış)
Esc: Exit
Backspace: Kaydedilmemiş değişiklikleri geri al
5.3. Debugger (Hata ayıklayıcı)
Debugger bir hata ayıklama programı olup, kullanıcılara programların analiz edilmesinde, bazı kritik noktalarda durma noktaları (breakpoint) koyma ve programın çalışması sırasında istenen noktadaki kaydedici ve bellek durumlarının incelenmesini sağlarlar. Eğer program bir hata bulursa, bazı debugger programları kullanıcıya bu noktada hataları düzeltme ve programın çalıştırılmasına izin verirler. Bu özellik kaydedicilerin kapsamlarının incelenmesi ve değiştirilmesini sağlar. Bu işlemler debugger tarafından mikroişlemcideki komutların icrasıyla veya bir simulatör kontrolü veya bir emülatör altında icra edilmesiyle yapılır [11].
Debuggerlar geliştirilmeden önce, program kodu içinde değişkenlerin değerini araştırmak ve hata bulmak için programcıların aşağıdaki gibi kod parçaları kullanmaları gerekmiştir[12] .
/*Code*/
(...)
loop
change_a_variable;
show_value_of_variable;
end_loop
(...)
Günümüzde bir çok program ‘registration (kayıt olma)’ bug ına sahiptir. Bu bug, program çalıştırıldığında geçerli bir kod girilmesini isteyen bir ekran şeklinde belirecektir. Doğru kod girilmediğinde program çalışmayacaktır. Bu durumda, debugger’lar Code Reversing ( Kod değiştirme) işlemi için kullanılmaktadır [12].
Bir çok Reverse Engineer ( exe kodu değiştiren kişi-cracker ) tarafından tercih edilen debugger olması ve örnek program kırılımında da kullanılması sebebiyle burada Soft-ICE debugger’ından bahsedilmektedir:
5.3.1. Soft-ICE
Soft-ICE, düşük seviyeli (hardware-level) bir yazılım debug etme programıdır. Soft-ICE’ın geliştirilme sebepleri şunlardır [13]:
Yüksek seviyeli (software-level) debugger ların gerçekleştiremediği ya da çok yavaş gerçekleştirdiği debug mekanizmalarına (düşük seviyeli breakpointler koyma, memory protection, kilitlenen programlardan çıkma vb.) 80386 sanal makine özelliği sağlar.
Güçlü bir hata kontrolü sağamak için yeni bir debugger kullanımını öğrenmek gerekmez. Soft-ICE eski debugger larla çalışabilme imkanı verir.
Kullanımı kolay bir ekrana sahiptir. Ekranı öncelikle diğer debugger larla beraber çalışılabilecek şekilde küçük olarak gelir. Tek başına çalıştırılmak istendiğinde ekran büyütülebilir. Her iki durumda da komutlar ekrana sığabilecek şekilde düzenlenmiştir.
5.3.1.1. Özellikleri
Soft-ICE programının sağladığı özellikler de şu şekildedir [13]:
· Hafıza okuma/yazma, port okuma/yazma, hafıza düzenlemeleri ve interruptlar esnasında gerçek zamanlı durma noktaları (breakpoint),
· Sembolik ve kaynak seviyeli debugging,
· Eski debugger larla çalışabilme özelliği,
· I/O portlarının ayarlanması, hafızada adres çakışması gibi sorunlar çıkarmadan kurulabilme imkanı,
· Kullanıcıya öğrenim kolaylığı sağlayan dinamik bir Help,
· DOS harici işletim sistemleri ve kendisini boot edebilen programlarda hata ayıklamaya izin veren soft boot (yeniden başlatma) imkanı,
· Diğer programlara ihtiyaç duymadan(stand-alone) kullanılabilme imkanı sağlar.
5.3.1.2. Kurulumu ve gerekli ayarlamaların yapılması
Soft-ICE’ın kurulumu esnasında ilk ekran ve register ekranı geçildikten sonra, debugger’ın kurulacağı dizinin belirlenmesini isteyen bir ekran gelecektir. Şekil 5.6.’da bu ekran görüntüsü görülmektedir. Burada browse düğmesi yardımıyla debugger’ın kurulması istenen dizin belirlenebilir.
Şekil 5.6. Kurulum dizininin belirlenmesi
Daha sonra ekran kullanılan ekran kartının belirlenmesi gerekecektir. Şekil 5.7.’de ekran görüntüsü görülmektedir.
Şekil 5.7. Ekran kartının belirlenmesi
Bu aşamada, kullanılan mouse’un tipi belirtilmelidir. Şekil 5.8.’de mouse tipinin belirlendiği ekran görülmektedir.
Şekil 5.8. Mouse tipinin belirlenmesi
Son olarak sistem konfigürasyonunun düzenlendiği ekran gelir. Burada ilk seçenek seçilerek kurulum işlemi tamamlanır. Şekil 5.9.’da sistem konfigürasyonunun yapıldığı ekran görüntüsü verilmiştir.
Şekil 5.9. Sistem konfigürasyonunun yapılması
Soft-ICE kurulduktan sonra autoexec.bat dosyasında şöyle bir satırın olması gerekmektedir:
C:\Progra~1\NuMega\SoftIc~1\winice.exe
Burada, kurulan klasör veya sürücü farklı olabilir fakat Soft-ICE’ın mutlaka Windows’tan önce başlaması gerektiğinden, bu satırın winice.exe dosyasını göstermesi gerekmektedir. Eğer satır yoksa, autoexec.bat dosyasına eklenmelidir [5].
Eğer Softice 'ı kullanım amacımıza uygun şekilde ayarlamak için winice.dat dosyasının değiştirilmesi gerekmektedir. Bu dosya Softice' ın kurulduğu dizindedir. Bu dosya herhangi bir text editörü ile açılıp, değiştirilebilir. Dosyanın değiştirilmiş hali aşağıda verilmiştir.
PENTIUM=ON ;Eğer bilgisayarınız pentium ise bunu On yapın aksi halde Off 'u
Winice.dat dosyası
NMI=ON ; Eğer bilgisayar pentium ise On, aksi halde Off olmalıdır.
ECHOKEYS=OFF
NOLEDS=OFF
NOPAGE=OFF
SIWVIDRANGE=ON
THREADP=ON
LOWERCASE=OFF
WDMEXPORTS=OFF
MONITOR=0
PHYSMB=64 ;Buradaki değer bilgisayardaki gerçek RAM boyutunu gösterecek şekilde ayarlanır.
SYM=1024 ;Kaynak kodundaki sembolleri saklamak için 1Mb lık yer ayırır.
HST=256 ;Geçmiş komutları saklamak için 256 K yer ayırır.
TRA=8
MACROS=32
DRAWSIZE=2048
;Bundan sonraki yerler tavsiye edilen ayarlardır.
;Mevcut sisteme uygun şekilde değiştirilebilir.
X; = Softice'tan çık. Noktalı virgül enter'a basılması gerektiğini belirtiyor.
wl; = Sofice'ta lokal değişkenler penceresini açıp kapatır.
code on; = Dissamble edilmiş kodun hexadecimal değerini gösterir.
altscr off; = Softice'ın herşey için aynı ekranı kullanmasını sağlar.
Lines 57; = Pencerenin boyutunu ayarlar.
wc; = Softice kod penceresinin boyutunu belirtir.
wd; = Softice hexadecimal penceresinin boyutunu belirtir.
wr; = Register(kaydedici) ları pencerenin tepesinde gösterir.
faults off; = Windows'un çökmesi halinde Softice'ın çalışmasını engeller.
INIT="X;"
INIT="wl;code on; altscr off; lines 57; wc 32; wd 8; wr; faults off;"
F1="h;" ;Bu ayarlar fonksiyon tuşlarını tanımlar.
F2="^wr;"
F3="^src;"
F4="^rs;"
F5="^x;"
F6="^ec;"
F7="^here;"
F8="^t;"
F9="^bpx;"
F10="^p;" ; F10 (Kod içinde adım adım dolaşma) kırarken çok kullanılır.
F11="^G @SS:ESP;" ;F11 Call (çağrı) dan program rutinine dönülmesini sağlar.
F12="^p ret;"
SF3="^format;"
CF8="^XT;"
CF9="TRACE OFF;"
CF10="^XP;"
CF11="SHOW B;"
CF12="TRACE B;"
AF1="^wr;"
AF2="^wd;"
AF3="^wc;"
AF4="^ww;"
AF5="CLS;"
AF8="^XT R;"
AF11="^dd dataaddr->0;"
AF12="^dd dataaddr->4;"
CF1="code on; altscr off; lines 57; wc 32; wd 8; wr; wl; ww 2; faults off"
CF2="^wr;^wd;^wc;"
; WINICE.DAT
; (SIW95\WINICE.DAT)
; for use with SoftICE Version 3.2 (Windows 95)
; 14 July 1997
; Path, Soft-Ice'ın kurulduğu mevcut dizin ve dosya ile değiştirilmelidir.
EXP=c:\windows\system\kernel32.dll ;Buradaki satırlar Soft-ICE 'ın otomatik olarak
EXP=c:\windows\system\user32.dll ;yükleyeceği dll'leri gösterir. Hangi
EXP=c:\windows\system\gdi32.dll ;rutinlerin program tarafından kullanıldığını
EXP=c:\windows\system\comdlg32.dll ;bildirir.Genelde bir çok program bu dll'leri
EXP=c:\windows\system\shell32.dll ; kullanır. Bu yüzden bu dll'lerin Softice EXP=c:\windows\system\shell232.dll ; tarafından yüklenmesi gerekmektedir.
Winice.dat 'a yapılan her değişikliğin etkili olabilmesi için Windows'un yeniden başlatılması gerekir. Mevcut Winice.dat dosyasında bu değişiklikler gerçekleştirilerek Soft-ICE'ın kullanım amacına uygun şekilde çalışması sağlanmış olur [5].
Soft-ICE'ın kullanımında yaygın bir sıkıntı da, debugger'ın istenilen şekilde başlatılması için autoexec.bat dosyasının değiştirilmesidir. Soft-ICE'ın Windows'la birlikte mi yoksa istenildiği zaman mı başlatılacağını belirlemek için, autoexec.bat ve config.sys dosyaları aşağıda verilen şekilde değiştirilebilir. Soft-ICE'ın Windows'la birlikte yüklenmesinin dezavantajı, her an aktif olması ve bizim isteğimiz dışında da açılabilmesidir. Gerçekleştirilen değişiklikler sayesinde, Windows her başlatıldığında bilgisayarın nasıl açılması gerektiğini soracaktır [5].
Bu satırlar autoexec.bat ve config.sys dosyalarının sonuna eklenmelidir. Dosyanın başına eklendiğinde sorun çıkarır [4,5].
Autoexec.bat dosya örneği
Rem -----Buradan itibaren kopyalanır-------
goto %config%
REM Soft-ICE'ı başlat - softice in kurulu oldugu yere dikkat edilmelidir.
:SICE
C:\PROGRA~1\NUMEGA\SOFTIC~1\WINICE.EXE
REM Soft-ICE olmadan baslat
:NORM
Rem ----Buradan kesilir------
Config.sys dosya örneği.
Rem -----Buradan itibaren kopyalanır-------
REM Menüyü olustur.
[MENU]
MENUITEM NORM,Windows 98
MENUITEM SICE,SoftICE ile Windows 98
MENUDEFAULT NORM,5
[NORM]
[SICE] Rem ----Buradan kesilir-----
5.3.1.3. Kullanımı
Kurulum tamamlandıktan ve gerekli düzenlemeler gerçekleştirildikten sonra, programın debug edilmesine geçilir. Soft-ICE ile debug edilecek program açıldıktan sonra, Ctrl+D yardımı ile Soft-ICE editörüne geçilir. Program, breakpointler ile durdurulur. En fazla kullanılan breakpointler, bpx getwindowtexta ve bpx getdlgitemtexta’dır. Bu fonksiyonların sonundaki a karakterleri, 32 bit programlar için kullanılacağını göstermektedir. Breakpoint konulduktan sonra fonksiyon tuşları yardımıyla kodlar incelenip, düzeltmeler yapılabilir [13].
Bazı durumlarda, bpx getwindowtexta breakpointi konduğunda hata mesajı alınabilir. Bunun sebebi, Soft-ICE'ın bu API'yi tanımamasıdır. Bu API'nin tanıtılması şu şekilde olacaktır [4]:
Soft-ICE programı ilk kurulduğunda,
1. Symbol loader'a girip Edit menüsünden 'Soft-ICE initilization settings' yazan bölüme 'x: lines 40; wd; wr; wc 20; code on;' yazılır. Buradaki 40 ve 20 rakamları kullanılan ekran çözünürlüğüne göre ayarlanabilir. 'Code on' komutu assembly komutlarının yanında heksadesimal olarak makine kodlarının da yer almasını sağlayarak, patch hazırlanırken yardımcı olacaktır.
2. Winice.dat dosyasını not defteri ile açarak, başında EXP ibaresi olan tüm satırların önündeki noktalı virgül (;) işaretleri kaldırılmalıdır. Bu durumda Soft-ICE, Windows API'lerinden haberdar olacaktır . Ayrıca Soft-ICE'ta iken başı hatırlanan bir API'yi bulmak için 'exp' komutu kullanılabilir. Mesela, 'exp getwindow' komutu ile getwindow ile başlayan tüm API'ler sıralanacaktır.
Soft-ICE'ın kurulmasına rağmen etkili bir şekilde kullanmayı öğrenmek, zaman ve uygulama gerektirir. Soft-ICE'a geçmek için daha önce de söylendiği üzere, Ctrl+D tuşları kullanılır. Bu tuşlara basılması bütün programları durdurarak Soft-ICE ekranına geçilmesini sağlar. Softice'a geçildiğinde birkaç pencere ve değişik bilgiler görülür. Alttaki pencere komutların yazıldığı input penceresidir. Soft-ICE'ta kullanılan bazı komutların görevleri [13];
x = Soft-ICE'tan çıkar.
bpx = Soft-ICE' a belli API kodlarında dur emri verir.
bpm = Soft-ICE' a belli bellek bölgelerinde dur emri verir.
bpr = Belli hafıza bölegelerinde dur emri verir.
d = Belleği ve yazılı olan değerleri gösterir.
e = Bellekteki değerleri değiştirir.
cls = Input penceresini temizler.
s 0 l ffffffff 'text' = Hafızada text yazısını arar
Bu komutlar, program içinde aşağıdaki şekilde kullanılır:
bpx getdlgitemtexta ;Soft-ICE' a bu API kodunu görünce dur komutunu verir.
bpm 0157:0009AC2D ;Soft-ICE' a verilen bellek adresine erişildiğinde dur komutunu verir.
bpr 0157:00643345 0157:00643345 ;İki adres arasında bir adrese erişildiği zaman dur komutunu verir.
d 00456787 ; Verilen bellek adresinde tutulan değerleri gösterir.
d eax ; eax register(kaydedici) ının belirttiği yerdeki belleği gösterir.
Input penceresinde kullanılan komutların görevleri de aşağıda verilmiştir:
bl = O andaki breakpointleri gösterir. ((00) BPX #0028:09876543 C=01 gibi)
bc = O anda konulmuş breakpoint'leri temizler. (bc 1 bir nolu breakpointi siler.)
bd = Breakpoint'i kapatır. (bd 0 0 nolu breakpointi kapatır)
be = Breakpoint'i açar. (be 0, kapatılan 0 nolu breakpointi açar)
? = Belli bir register veya sayının değerini gösterir. ( ? 23 # gibi)
Soft-ICE’ın kullanımı için gerekli fonksiyon tuşlarının görevleri de aşağıdaki şekildedir:
F1 : Genel Help’i görüntüler "^H;"
F2 : Register penceresini getirir "^WR;"
F3 : Mevcut kod modunu değiştirir "^SRC;"
F4 : Ekranı yeniler "^RS;"
F5 : Programa dönüşü sağlar "^X;"
F6 : Kursörü komut ve kod pencereleri arasına konumlandırır "^EC;"
F7 : Kursörün bulunduğu satıra gider "^HERE;"
F8 : Satır satır çalıştırma "^T;"
F9 : Kursörün bulunduğu satıra durma noktası(breakpoint) koyar. "^BPX;"
F10 : Program basamakları "^P;"
F11 : Dönüş adresine gider "^G @SS:SP;"
F12 : Soft-ICE’ın versiyon numarasını görüntüler "^VER;"
Soft-ICE' la program kırma tekniği, komutlar ve fonksiyon tuşları yardımıyla kodlar incelenerek kırılacak programın gerçek seri numarasının bulunmaya çalışılmasına dayanır.
SONUÇ
Bir programın kanunlar dahilinde ve tam versiyon olarak kullanılabilmesi için satın alınması gerekir. Günümüzde Internet'te ya da bilgisayar dergileri tarafından verilen CD'lerde shareware veya freeware programlara erişmek mümkündür. Bunlar üretici firmaların programları tanıtmak ve alınmasını sağlamak için başvurdukları bir yöntemdir. Shareware programlar, belli bir süre sonunda ya belirli bir miktar ücret ödeyip bu yazılımın satın alınmasını ya da kullanıcının bilgisayarından silinmesini talep etmektedirler. Bunun yanında freeware programlar için para ödenmesi gerekmemektedir. Artık bilgisayar programlarının maddi açıdan alınmasının zorlaşması, her yeni çıkan programı almanın imkansız olması nedeniyle shareware programların da koruma kodları kaldırılarak para ödenmeden kullanımı sağlanabilmektedir. Günümüzde piyasaya yeni çıkan programların birkaç gün içerisinde kırılıp, crack patch’inin internete konulduğu görülmektedir. Fakat bu işlem, devletler hukukları altında korunan programcının hakları ve telif ücretleri açısından illegal bir durumdur.
Program kırabilmek için programcılıktan ve Assembly dili komutlarından biraz anlamak gerekir. Ayrıca program kırılımı sırasında kullanılan Disassembler, Hex Editör ve Debugger gibi programların kullanımını öğrenmek gerekmektedir. Bu tezde, kırılıma yardımcı programların tanıtımı yapılmış, ayrıca programlardan şifre, fonksiyon, zaman ve CD korumalarının kaldırılma aşamaları gösterilmiştir.
Program kırmaktaki tek amaç, programa bedavadan sahip olmak olmamalıdır. Çünkü, program mutlaka daha önce başka biri tarafından kırılmıştır ve crack'ini ya da full versiyonunu internetten bulmak mümkündür. Asıl amaç, kullanılan programların bizden habersiz neler yaptıklarını bilmek ve herşeyin kontrolümüz altında olmasını sağlamak olmalıdır.

C:\Progra~1\NuMega\SoftIc~1\winice.exe
Burada, kurulan klasör veya sürücü farklı olabilir fakat Soft-ICE’ın mutlaka Windows tan önce başlaması gerektiğinden, bu satırın winice.exe dosyasını göstermesi gerekmektedir. Eğer bu satır yoksa, autoexec.bat dosyasına eklenmelidi
Soft-ICE kurulduktan sonra autoexec.bat dosyasında şöyle bir satırın olması gerekmektedir:
C:\Progra~1\NuMega\SoftIc~1\winice.exe
Burada, kurulan klasör veya sürücü farklı olabilir fakat Soft-ICE’ın mutlaka Windows tan önce başlaması gerektiğinden, bu satırın winice.exe dosyasını göst
Soft-ICE kurulduktan sonra autoexec.bat dosyasında şöyle bir satırın olması gerek
C:\Progra~1\NuMega\SoftIc~1\winice.exe

(¯`★.•*•.♥ღ Cindy Wow ♥ღ .•*•.•★´¯)
(¯`★.•*•.♥ღ Cik...♥ღ .•*•.•★´¯)

Erzurumlu imam...


Zamanın birinde Erzurum'dan bir grup insan hacca gitmek için yola çıkmışlar. Van'a gelmişler.
Van'ın bir köyünde konaklamaya karar vermişler.
O köyün de imamı yokmuş. Köylüler aralarında konuşmuşlar ve Erzurum'dan çıkıp hacca giden bu
topluluktan birini imam yapmaya karar vermişler.
Bu insanlar hacca gidiyorlarsa boş insan değillerdir diye düşünmüşler.
Nitekim tekliflerini içlerinden birisi kabul etmiş. Her yıl 400 koyun verilecekmiş imama.
Adam hacca gidip masraf yapacağıma burada kalıp yalandan imamlık yapar ve
her yıl 400 koyun sahibi olurum diyerek işe başlamış.
Köylü camide toplanmış namaz kılınacak. Sayın imam başlamış namazı kıldırmaya :
- Erzurum'dan çıktım yola Van'da verdim mola 400 koyun verdiler bana, Allahuekber. ..
Bu günlerce aynı biçimde devam etmiş. Köylü bu işe biraz şaşırmış ve konuşmuşlar aralarında :
- Daha önceki imam mı yanlış kıldırıyordu, yeni imam mi yanlış kıldırıyor? Bunu gidip Müftüye soralım.
Sayın müftü has Trabzon'lu JJ
Müftüye gelen halk her şeyi anlatmış. Müftü köylüye dönerek :
- Siz şimdi hiç imama çaktırmadan köyünüze dönün ve namaz vakti camide toplanın ben de namaza geleceğim, diye emir verir.
Herkes köyüne döner ve namaz vakti cemaat camide toplanır. Tabi ki Sayın müftüde camidedir. İmam namazı kıldırmaya başlar.
Birinci rekat :
- Erzurum'dan çıktım yola, Van'da verdim mola, 400 koyun verdiler bana, Allahuekber. .. der hoca.
Arkadan "öhö.. öhö!.." şeklinde bir ses duyulur. İmam yakalandım herhalde diye korkmaya başlar.
İkinci rekatta sözlerinde biraz değişiklik yapar :
- Erzurum'dan çıktım yola, Van'da verdim mola, 400 Koyun verdiler bana, yarısı sana yarısı bana... Allahuekber. ..
Namaz bitince köylü Müftüye dönerek "İmam efendi namazı doğru mu kıldırıyor? diye sorar. Müftünün cevabı :
- Haçen birinci rekatta biraz şaşirdi ama ikinci rekatta işi düzeltti

(¯`★.•*•.♥ღ Cindy Wow ♥ღ .•*•.•★´¯)
(¯`★.•*•.♥ღ Cik...♥ღ .•*•.•★´¯)

Bazı ülkelerin bayrak hikayeleri...


Almanya
Renklerindeki siyah sari ve kirmizi'yi napolyon zamanindaki savaslarda alman askerlerinin kullandigi uniforma renklerinden alindigi soylenir..
dizayn olarak 1831 yilinda ilk olarak dusunulmus ve ardindan 1919 yilinda imparatorluktan cumhuriyete geciste resmi olarak kabul edilmistir..
1949 yilinda dogu ve bati almanya olarak ayrilinca bayraklarda degisiklikler olmus olmasina ragmen 1990 yilinda tekrar ilk orijinal haline (icinde logosuz duz sari kirmizi ve siyah renklerine) donmustur
Fransa
Renklerindeki mavi'nin ozgurlugu, beyaz'in esitligi, kirmizinin ise birligi/kardesligi temsil ettigi soylenmekle birlikte orijinal olarak mavi-kirmizi'nin paris'in renkleri oldugu ve beyaz'in da bourbon sarayini temsil ettigi belirtilmektedir.
İngiltere / England / United kingdom
Sadece england'i temsil eden beyaz zemin uzerine kirmizi hac isareti st.george's cross olarak adlandirilmaktadir. somurgecilik ve denizciligin ilk gelisme yillarinda ispanyollarin buyuk ataklarina karsilik ingilizler de cesitli atilimlar yapmislar ve bati'ya dogru ilk seyahatlerinde simdiki amerika kitasinin dogu kiyilarina ulasmislar.. bunu kral adina yapan ilk kisi de cabot isminde guzel bir abimizmis.. ve gemisinde ulke tanitimi olarak da, gemisinde bulunan george (sonradan aziz olarak anilacaktir) isimli kraliyet gorevlisinin (belki de rahip falandi bu) onun hazirladigi beyaz uzerine duz hac kullanmis ve o gunden beri de england'in tanitimi olarak da o bayrak kullanila gelmistir.. tarih 1490'li yillar diyelim.. bu arada kraliyet bu bayragi kullanirken zaman zaman hac'in tam ortasinda david yildizi, kraliyet tac simgesi ve ulster'in sol eli sembollerini de kullanmistir..
united kimgdom'i (birlesik krallik, 1707 senesinde ingiltere, iskocya ve galler ile kurulmus, 1801'de irlanda da buna katilmis ama 1921'de ayrilmistir) ifade eden lacivert/kirmizi/beyaz bayrak ise union jack olarak bilinmektedir
ortasindaki st.george's cross (england) dahil olmak uzere, uzerindeki her renk bolgesi o zamanlardaki 13 eyaleti temsil etmekte oldugu soylenmektedir..
bununla birlikte united kingdom'un kurulusundaki uc onemli milletin bayraklari ust uste bindirildiginde su andakine benzer birsey cikmaktadir;
england; beyaz uzerine kirmizi hac, st. george's cross
iskocya : mavi uzerine beyaz carpi isareti, st. andrew's cross
irlanda : beyaz uzerine kirmizi carpi isareti, st. patrick's cross..
digerlerinin carpi olmasina dikiz yanliz heralde galler'in ejderha'li, yesilli beyazli yanar donerli, ortaya karisik bayragini kaale almamislar heralde ucu ustuste konuldugunda anca boyle birsey cikardi..
İtalya
Su anda kullanilan dikey yesil beyaz ve kirmizi renkleri ilk olarak napolyon tasarlamis (1796), heralde o zamanlar italya napolyon'un yönetimi altindaymis.. yesil renk, napolyonun favori rengi imis.. hatta meksika bayragindan ayrilsin diye ortaya bi beyaz atilmis..
hatta derler ki, o yillardaki lombarda lejyonu'nun renkleriymis bunlar..
bu bayrak, italyanlar tarafindan tricolore diye adlandiriliyor.. ya da cisalpine republic de diyorlar buna..
1796'da bu renkler yatay seklinde imis, 1798'de dikey hale gecirilmisler, 1814 yilinda napolyon'un cöküsü ile bu bayrak kullanilmamaya baslamnis olsa da 1861 senesinde yeni krallik ile birlikte tekrar kullanilmaya baslanmis..
hala da kullaniyorlar.. renklerin anlami nedir ne degildir bilmiyorum ama napolyon yesili cok severmis..
Yunanistan
1821 yilinda sekillenmeye baslamis bir bayrak..
mavi rengi deniz ve gok renginden aliyor.. ruzgarli bir havada bayraklarina baktiklari zaman ege denizinin dalgalanmasini hissediyorlarmis.. yatay 9 cizgi ise, osmanli imparatorlugu zamaninda, osmanlilardan istedikleri 9 istege bagliyorlar.. 400 yillik esaretleri soz konusu imis bu zamanlarda.. bu 9 istek olmazsa "ya ozgurluk ya da ölüm" demisler.. (bir degisik iddia ise, ozgurluk kelimesi yunancada 9 harften olusuyormus)
sol ust kosedeki hac isareti ise ortodoks kilisesini ve bu ortodoks kilisesinin yunan milleti uzerindeki etkinligini ifade ediyormus.. osmanli zamanindaki karanlik yillarinda (!) ortodoks kilisesi, yunanmilletininen onemli degerleri olan yunan dili, bizans zamaninda ortodoks dinlerini, yunanlarin etnik ayrimlarini yasar halde tutmus..
mavi ile ilgili bir eklenti de, guzellik tanricalari afrodit, mavi dalgalar arasindan gelmis..
ozgurluk savaslarinda ise denizcileri tamamen mavi giyinirler, mavi bayraklar tasirlarmis..
Nepal
Ilkokuldan beri ilgimi cekmis, dikdortgen olmayan tek bayrak heralde..
yan durmus iki ucgen'in ustuste binmis hali..
zemindeki kirmizi, ulusal cicekleri/bitkileri olan rhododendron'in rengi imis.. bayragin sinirlarini cizen mavi ise baris'i temsil ediyormus..
ust ucgen icindeki yukari bakan hilal tek hukumdar ve sarayi temsil ederken alt ucgen icindeki 12 koseli gunes ise rana hanedanini temsil ediyor.. nepal, 1960-1991 arasi monarsi ile sonrasinda da cok partili demokrasi ile idare ediliyormus ayrica..
Belcika
Dikine atilmis siyah, sari ve kirmizi bolumler, orijin olarak alinmis olan altin sarisi rengindeki brabant dedikleri aslanin siyah kalkani ve kirmizi dilinden gelmis..
bu bayrak ilk olarak 1792 yilinda avusturya'dan kazandiklari ozgurluk zamanlarinda kullanilmaya baslanmis
bu bayrakta da renklerin dizilimi ilk baslarda yataymis fakat 1831'de fransiz bayragindan alinan ilham ile dikey hale getirilmis..
Hollanda
Yatay sekildeki kirmizi beyaz ve mavi renkler ilk onceleri kirmizi yerine portakal rengi olarak kullanilmis.. 16 yuzyilin ikinci yarisi.. ispanyollara karsi direniste cikmis o renkler ilk olarak, tam bilgi vermek gerekirse 1572'de den briel kasabasi isgalden ilk kurtuldugunda gorunmus bu renkler... bayragin o ilk haline prinsenvlag (prensin bayragi ) diyorlar.. o zamanlardaki liderleri olan prince william of orange'dan (orange hanedani) kaynaklansa gerek.. 17.yuzyilin ortalarinda portakal rengin yerine kirmizi kullanilmaya baslanmis..
portakal renginden kirmiziya gecisin tam hikayesi bilinmemekle birlikte iki teori var :
1 - o zamanlarda portakal rengi boyanin uretim zorlugu ve zaten uretilen boyanin golgesiyle birlikte bayrak uzerinde kirmizi gibi gorunuyor olmasi
2- house of orange (portakal hanedani) 'nin etkisi ve popularitesinin iyice azalmis olmasi..
ben de kendi dusuncemi ekleyivereyim hemen, o zamanlardaki fransiz popularitesi ve dogal olarak o renklere bir kayma gerceklesmis olabilir bla bla
İspanya
Bayrakta yatay olarak kullanilmis olan sari ve kirmizi renkler zamanin castilya ve aragon guclerinin renkleri imis.. ayrica somurgecilik ve denizcilik alaninda buyuk gelismelerin yasandigi 18 yuzyil civarlarinda gemilerinde bu renklerden devam etmisler, cunku hic bir ulkenin gemilerinde bu renk kombinasyonu yokmus.. 1785 senesi ise tam zamani bu bilgi icin..
1927'de ise bayrak son halini almis.. ortadaki arma ise kraliyet armasi olarak kayitlara gecmis..
Portekiz
Yesil, 13 ve 14. yuzyillarda denizcilikte ve kesiflerde onder olan portekiz ve o zamanki kral olan henry'nin favori rebgi imis.. kirmizi ise devrim anlaminda kullanilmis.. kirmizi icin birlik, entegrasyon millet olmak terimleri de geciyor bazi kaynaklarda..
iki rengin tam ortasindaki arma ise, altta o zamanin ilkel navigasyon aleti olan armillery ve onun uzerinde de geleneksel portekiz kalkani var imis..
dikey sekilde ki kirmizi ve yesil renklerinin olculeri bana hep acaba 1.618 civari olan altin oran mi kullanilmistir diye dusundurtmustur ama bugun ogrendim ki oyle degil 2/5 oraninda imis..
Arjantin
Arjantin ozgurlugunu 1812 yilinda ispanya'dan kazanmis.. su andaki acik mavi/beyaz kombinasyonlarini ilk olarak ozgurluk hareketinin lideri manuel belgrano kullanmis.. rosario savasinda bu renkler ilk defa gorunmus, denen odur ki, savas esnasinda mavi gokyuzu uzerinde beyaz bulutlar ve piril biril bir mayis gunesi varmis.. bayrak icindeki gunes'e de mayis gunesi diyorlar..
Guney Kore
Zemindeki beyaz guney kore halkinin geleneksel rengi oluyormus (ne demekse artik) ortadaki yin yang'in anlami malum.. kenar koselerdeki siyah cizgiler ise cennet ates su ve toprak'i sembolize ediyor..
Hindistan
Yatay renk seritlerinden, ustten alta dogru
turuncu : cesaret ve fedakarlik
beyaz: baris
yesil : kader ve kahramanlik anlamina gelmekle birlikte ortadaki toparlak garip sey ise budist rahiplerin donen tekerlegi chakra imis
bugunku haline 1947'de uyarlanmis..
Avusturya
Dunyanin en eski bayraklarindan.. 1191 senesinde kullanilmis oldugu kayitlara gecmis.. resmi olarak ilk kullanimi ise hapsburg hanedaninin cokusunden sonra olmus.. birinci dunya savasindan sonra kullanimi yasaklanmis olsa da 1945 yilindan sonra tekrar kullanilmaya baslanmis..
hikayesine gelince, zamanin birinde bir savasta avusturya dükü kahramanca savasmis, uzeirnde beyaz bir unifrma benzeri birsey* varmis, aldigi yaralar sonunda bu beyaz elbise kirmizi kanla bulanmis, bu kirmiziligin altinda beyaz elbise gorunurken biraz daha altta da yine kirmizi renkli kilic kemeri varmis ve o goruntu, halki tarafindan bir bayrak olarak gondere cekilmekte gecikmemis
Çin
Çin'in ilk bayragi 1872 yilinda resmen kullanilmaya baslanmis.. o zamanlarda tek hukumran olan manchu hanedanini simgelemek amaciyla sari zemin uzerine mavi ejderha var imis.. komunist devrim ile birlikte bayrak su andaki halini almis..
kirmizi zemin komunist devrimi, soldaki buyuk sari yildiz komunizmi, buyuk etrafin etrafindaki kucuk sari yildizlar, koyluyu, isciyi, sehir halki burjuvaziyi ve yurtsever kapitalistleri ifade ediyormus..
Kanada
Anlasildigina gore, bizim istiklal marsimiz icin acilan yarismaya benzer bir yarisma kanada'da bayrak icin acilmis.. 2600 talipli basvurmus.. sene 1965'ler civari..
bundan once, ingiliz milletler toplulugunun agirlikli hissedildigi, sol ust kosede union jack olan kirmizi zeminli bir bayrak kullanilmis..
1534-1763 yillarinda ise fransiz etkisinin altina girmesiyle birlikte gok mavisi uzerine beyaz hac kullanilmis.. bu bayrak su anda quebec bolgesinin bayragi olarak kullanilmaya devam ediliyor.. hatirlatmak gerekirse quebec hala fransizca konusmakta hatta kanada'dan bagimsizlik icin ugrasmaktadir..
1965'de ise, kanada'da cok goruldugunden olsa gerek, akcaagac yapragi kullanilmis, su anda gordugumuz yaprak.. kirmizi beyaz'in gelme nedeni olarak da, ingiliz milletler toplulugunun etkisi altinda kaldigi yillarda, krailyet askeri akademisinin sancagi bu renkte imis.. ne alaka bilemiyorum ama kaynaklar oyle diyor.. ardindan askeri motiflerde kirmizi beyaz oldukca kullanilmis, uzerine de bir yaprak kondurunca al sana kanada bayragi..
bu konuda bir cok site ve ulke tarihi bilgisi okuyunca goruyoruz ki hemen hemen her ulkenin bir national flag day adinda bayraklari icin kutladiklari bayrak gunleri var.. bizde boyle bir olay hic olmamis.. ilginc.. hatta hayirlisi..
Botswana
Acik mavi uzerinde yatay bir siyah serit
acik mavi renk suyu ve hayati temsil ederken ortadaki siyah serit ve kenarlarindaki ince beyaz seritler ise halki uyumunu (!) ifade ediyormus.. 1966'da ingilizlerin yonetiminden kurtulunca kullanmaya baslamislar bu bayragi..
diger afrika ulkelerinin cokca kullandiklari siyah/kirmizi/yesil kombinasyonlarinin yerine bunlarin renkleri afrika'ya gore biraz alisilmadik geliyor..
ayrica bu ulkenin ismi, isim sehir hayvan oynarken, ulke olarak b harfinde iyi bir secenek olacaktir
Brezilya
Yeşil zemin, yağmur ormanlarını temsil eder
oradaki sarı dörtgen, altın başta olmak üzere mineral kaynakları simgeler
ortadaki yuvarlaktaki (lacivert gökyüzü) yıldızlar eyaletleri temsil eder
yuvarlağı çevreleyen bantta "ordem e progresso" (düzen ve ilerleme) yazar.
Azerbaycan
3 şeritten meydana gelir. en üstte mavi, ortada kırmızı, en altta da yeşil vardır. kırmızı şeritte bir ay ve 8 uçlu bir yıldız yer alır. mavi türk milletinin ulusal rengidir, yeşil islamın rengidir. 8 uçlu yıldız 8 türk boyunu simgeler: azeriler, osmanlılar, çağataylar, tatarlar, kıpçaklar, türkmenler ve selçuklular. ilk defa 1918 yılında kullanılmıştır. türkiye bayrağına benzer.
Mısır
3 şeritten meydana gelir: kırmızı, kara ve ak. bu üç renk arap halkını simgeler. ortadaki kartal ise ünlü arap hükümdarı selahattin(saladin)in simgesidir.
Guney Afrika Cumhuriyeti
Kırmızı: kan
Mavi: gökyüzü
Yeşil: ülke toprakları
Siyah: afrikalı siyah nufus
Beyaz: avrupalı beyaz nufus
Sari: altın ve diğer doğal kaynaklar
Ayrıca bayraktaki "y" formatı 2 ırkın birleşmesini simgeler
En renkli bayraklardan biridir.
Japonya
Ortadaki kırmızı daire güneşi temsil eder. aynı zamanda japonların güneşin doğduğu ülke temasını da simgeler. ikinci dünya savaşı'na kadar bu ortadaki güneşten ışınlar dünyaya da yayılıyordu ama savaşı kaybedince bütün emperyalist hayalleri ile birlikte güneşin yayılan ışıkları da söndü. kimi kendini bilmezler japon bayrağına gerdek gecesi çarşafı muamelesi de yapar

(¯`★.•*•.♥ღ Cindy Wow ♥ღ .•*•.•★´¯)
(¯`★.•*•.♥ღ Cik...♥ღ .•*•.•★´¯)

KIRMIZI HALI EFSANESİ

"Üst düzey resmi mekanların girişlerinde, devlet adamlarının karşılanma törenlerinde, gösterişli davetlerde geleneklere bağlı farklı uygulamalarla karşılaşırız. Kültürel geçmişe ve geleneklere göre ortaya çıkan bu farklılıklar sadece birkaç ortak uygulamaya sahiptir. Bunlar arasında en başta geleni ise kırmızı halı kullanmaktır."
Dünyanın neresine bakarsanız bakın, saygı, yüceltme ve itibar anlamı taşıyan kırmızı halı, asla sadece bir zemin kaplaması olmamıştır. Peki bu kadar evrensel bir anlamı olan bir gelenek köklerini nereden alıyor? Bunu anlamak için halıdan çok renklerin tarihine göz atmakta fayda var. Bir kıtanın keşfiyle başlayan kırmızı-nın yolculuğu, bugün kırmızı halının sahip olduğu prestiji de açıklıyor.
Amerika kıtasının keşfinden sonra bugünkü Meksika bölgesine ulaşan İspanyol tüccarlar, Meksika kaktüsü üzerinden kazıdıkları böcekleri kurutup küçük topaklar haline getirerek kırmızının hammaddesini elde ederler. Kaynaklarını korumak adına da bu sırlarını Avrupalı ithalatçılardan saklamaya da özen gösterirler. Son derece pahalı bir boyama maddesi olan bu kurutulmuş böcekler, böylelikle kırmızıyı sadece soyluların ve zenginlerin kullandığı bir renk haline getirir.
SOYLULARIN RENGİ
Öyle ki bazı toplumlarda kırmızı giymek, sıradan vatandaşlara kanun yoluyla da yasaklanır. Özellikle Japonya ve İtalya'da kırmızı giyen bir insanla karşılaştığınızda, o kişinin "yüksek statü" sahibi olduğu anlaşılır. Bu durum Japonya'da huzursuzluğa yol açar. Soylu ve zengin sınıfın dışında kalan insanlar, bu duruma tepki göstermek için kimonolarında ve hatta iç çamaşırlarında kırmızı kullanmaya başlar.
Onyedinci yüzyıl Fransası'na gelindiğinde ise kırmızı "gücün rengi" olarak ortaya çıkar. Ünlü Fransız tarihçi Joan DeJean'a göre kırmızı bu dönemde Versay Sarayı'nın da adeta resmi rengi haline gelir. Öyle ki, dönemin kralı 14.Lui (Louis XIV) saray içinde dolaşırken adım atacağı her yere küçük bir kırmızı halı döşetir. Diğer yandan bacaklarıyla da fazlasıyla gurur duyan 14.Lui, dizine kadar uzanan bir kısa pantolon ve altına da ipek çorap giymektedir. Bacaklarıyla gurur duyan kral, onların güzelliğini daha belirgin hale getirmesi için de ayakkabılarının topuklarını çarpıcı bir kırmızı tonuna boyatır. Lui'nin bu tarzı kısa sürede diğer soylular arasında da yayılır ve bütün Avrupa'da ökçeler kırmızıya boyanır.
1800'lerin ortalarına gelindiğinde ise sentetik renklerin bulunmasıyla, Avrupa piyasasında yüksek fiyata satılan kırmızı boyanın hammaddesi kurutulmuş kaktüs böceği gözden düşmeye başlar. O güne kadar sadece zenginlerin ve soyluların kullanabildiği bir renk olan kırmızı, endüstrileşerek halkında sahip olabileceği bir renk haline gelir.
İNSANLIK TARİHİNDE KIRMIZI
Bunların dışında, kırmızının zaman zaman çelişkili anlamlar taşıdığını görebilirsiniz. Örneğin Hıristiyan dünyasında kırmızı hem şeytanın hem de Roman Katolik Kilisesi'nin sembol rengi olmuştur. Rönesans resimlerinde ise İsa ve Meryem figürleri sürekli kırmızı kaftan giyerken görülür.
Ayrıca kırmızı mutluluğun da rengidir. Hint kültüründe gelinler evlenirken iyi şans getirmesi için kırmızı gelinlik giyer. Çin'de bebeklerin ilk yaş gününde kutlama kırmızıya boyanmış yumurtlarla yapılır.
Kırmızının öyküsü anlattıktan sonra tekrar "neden kırmızı halı" sorusunun cevabını galiba biraz daha netleştirebiliriz. İnsanlık tarihine en zor elde edilen, yüzyıllar boyunca sadece seçkinlerin kullandığı bir renk olarak katılan kırmızı, bugün de hala devlet adamlarının, dünya starlarının, özel konukların geçeceği yerlere serilmeye devam ediyor.

(¯`★.•*•.♥ღ Cindy Wow ♥ღ .•*•.•★´¯)
(¯`★.•*•.♥ღ Cik...♥ღ .•*•.•★´¯)

ilginç bilgiler...

(
1 Nisan şakasının kökeni nedir?
1564 yılında Fransa kralı IX Charles, yıl başlangıcını Ocak ayının birinci gününe aldı. Daha önce
Avrupada yaygın olan yıl başlangıcı Mart 25 idi. O zamanki iletişim şartlarında IX
Charles'in bu kararı fazla yayılamadı. Duyanlar ise protesto amacıyla eski adetlerine
devam ettiler.1 Nisan'da partiler düzenlediler. Diğerleri ise onları Nisan aptalları olarak
nitelendirdiler.1 Nisan'a bütün aptalların günü adını verdiler. Bu günde diğerlerine sürpriz
hediyeler verdiler, yapılmayacak partilere davet ettiler, gerçek olmayan haberler ürettiler. Yıllar
sonra Ocak ayının yılın ilk ayı olmasına alışılınca, Fransızlar 1 Nisan gününü kendi kültürlerinin
parçası görerek devam ettirdiler. Oradan da bütün dünyaya yayıl dı.
İnsanlar niçin içki kadehlerini tokuştururlar?
Bu konuda iki ayrı açıklama vardır. 1) İnsanların beş duyusunu tatmin
amacıyla şarap kadehini sofrada çın sesiye tokuşturmak. Şarabın rengi, görme; diliyle
tat alma; burunla koklama;eliyle dokurma,ve çın sesiyle işitme. Şarap bütün duyguları tatmin
eder anlamını taşır. 2)Antik çağlarda bir insanın düşmanını yemeğe davet edip,ona
zehirli içki sunması doğal sayılıyordu. Ev sahibi içkinin zehirsiz olduğunu kanıtlamak için
kendi içkisini havaya kaldırır ve misafirin içkisinden bir yudumun kendi kadehine dökülmesini isterdi.
Sonra aynı anda içkilerini içerlerdi. Misafir böyle durumda ev sahibine güvenini göstermek için
kadehini ev sahibinin yukarı kaldırdığı kadehe hafifçe vurur, çın sesiyle içkiyi denemeye gerek olmadığını gösterirdi.
Çinliler yiyeceklerini niçin çubukla yerler?
Çinlilerin yemek yeme alışkanlıklarının yiyeceklerini çok küçük parçalar halinde
yemelerinden çubuk kullandıkları anlaşılıyor.Çinde eskiden yalnızca zenginler masada otururlardı.
Halkın çoğunluğu tabakları ellerinde yemek yerlerdi. Bir elleriyle tabaklarını tutar, öteki
elleriyle çubuk kullanarak beslenirlerdi. Hızla artan nüfus yüzünden yiyecek sıkıntısı çeken
çinliler önlerindeki yiyeceği küçük parçalar halinde çoğaltarak yiyorlardı. O zamanlar ağaç
sıkıntısı nedeniyle de tahta kullanımı kısıtlıydı. Masa kullanımı bu yüzden çok zordu. Çubuklar
fildişinden ve kemikten yapılırdı.
Dünyanın en çok söylenen şarkısı hangisidir?
Bu şarkı"Happy birthday to you" dur. Şarkının asıl kaynağı Amerika'lı iki kız kardeşe aittir.
Orijinal adı " Good Morning to All" yani " hepinize günaydın"dır. Daha
sonra güftesi değiştirilerek bütün dünyaya yayılmıştır. Fakat telif hakkı kardeşlere
aittir, onlardan sonra da Warner/chappel müzik şirketine geçmiştir. Müzik ticari amaçlı kullanıldığı zaman şirkete ödeme yapma zorunluluğu vardır.
Yapıştırıcılar nasıl yapıştırıyor?
Yapıştırıcıların sağladığı yapışma olayı aslında kimyasal bir reaksiyondan başka bir şey değildir. Günümüzde imalatçılar yapıştırıcıları sentetik malzemeler kullanarak yaparlar. Yapışma olayında benzer
veya ayrı malzemeden iki madde, bir de yapışkan gerekir. Burada en önemli görev yapıştırıcıdadır.
Yapıştırıcının moleküllerinin diğer iki madde molekülleri ile birleşme eğilimi gösterir bir yapıda olması gerekmektedir.
Mezara niçin çiçek konulur?
İlk olarak Mısır Firavunu Tutamkamon'nun milattan önce 1346 da öldüğünde mezarının
çiçekten tacçlarla kaplandığı saptanmıştır. Kuzey Avrupada ise M.Ö 2000 yıllara kadar
mezara çiçek konduğu belirlenmiştir. O zamanlarda bu çiçeklerin amacı iyi ruhları çekme,
kötaü ruhları kovma amacıylaydı. Sonradan ise asıl amaç cesetler çürürken çıkan
kokuyu kamufle etme amacını taşır. Servi ağacı da bu nedenle mazarlıklarda kullanılır. Ağacın
yaprakları rüzgarı önler, kendine özgü ferah kokusu vardır. Cenaze törenherinde siyah
giyinmenin amacı da mezarlıklarda hayalletlerden sakınmak amacı taşımaktadır.
Satrançta şah niçin o kadar pasiftir?
Çünkü şah koruma altındadır. Zaten satrançta amaç şahı almaktır. O yüzden
bütün taşlar onu korumakla görevlidir. Vezir ise başkumandan gibi şaha yardım eder. İleri
geri, çapraz her yöne gidebilir. Batıda vezire Kraliçe adı verilmiştir. Bununla Kraliçe'nin
Kralın en büyük desteği olduğunu işaret etmektir. Satranç 6. yüzyılda Hindular tarafından
oynanmaya başlanmış, oradan dünyaya yayılmıştır.
İnsan korkunca niçin dişleri birbirine vurur?
Bir insan büyük bir tehlike veya korku verici olayla karşılaşınca vücudu otomatikman savunmaya geçer. Diğer canlılarda olduğu gibi dişler ve çene savunmanın ana mekanizmalarıdır.İşte bu nedenle ilk
insanlardan gelen kalıtımsal yapıdan dolayı önce çene ve dişler harekete geçer. Çenedeki
kaslar titrer, bu da sanki dişler birbirine vuruyormuş gibi görüntü verir.
Akıl ile zeka arasında fark nedir?
Akıl yalanla gerçeği, doğru ile yanlışı ayırabilme, bir konuda düşünce yürütebilme ve görüş bildirme yeteneğidir. İnsan olgunlaştıkça aklı gelişir. Zeka ise bir olayı önce anlama, ilişkileri kavrama, yargılama ve açıklayarak çözme yataneğidir. Genel olarak 12 yaşına kadar gelişir, 20 yaşına kadar sürer sonra sabit kalır. Zeka bir insanın her türlü olay karşısında aynı yeteneği gösterebileceği anlamına gelmez. Bir besteci müzik yapıtını aklıyla değil zekasıyla yaratır. Fakat en basit matematik problemini çözemeyebilir. Sonuç olarak zeka, ruhsal olaylara, algı ve hafıza yeteneğine, tutkulara, eğilimlere göre farlılıklar gösterir. Akıl somut olarak ölçülemez, zeka IQ denilen testle ölçülebilir.
Dolunay insan davranışlarınıetkiler mi?
İnsanlar arasında bu inanç oldukça yaygındır. Eskilerin Ay'ın dönemlerine bağladıkları boş bir inancın günümüze uzanan bir varsayımıdır. Bilim adamlarının yaptıkları bütün çalışmalar bu görüşün boş olduğunu kanıtlamıştır. Ay, dünyadaki okyanusların gel-git denilen suların alçalması ve yükselmesi olayı üzerinde doğrudan etkisi vardır. Vücudumuzdaki suyun oranı , okyanuslardaki su miktarıyla kıyaslanamaz. Yani Ay'ın çekim gücü insanı etkileseydi yalnız dolunayda değil her gün olması gerekirdi. Dolunayda ayın parlaklığı da pek önemli bir etken değildir. Çünkü gönderdiği ışık miktarı Güneş'in gönderdiğinin 600 binde biri kadardır.
Niçin gözyaşı dökeriz?
Dünyadaki canlılardan sadece insan ruhsal nedenlearle ağlar. İnsanı farklı kılan bu durum şüphesiz yaşam tarihindeki evrimin bir sonucudur. Aslında gözlerimize sürekli gözyaşı koruma amaçlı olarak salgılanmaktadır. Fakat ağlama ruhsal bir boşalmadır. Bu konuyu ilk inceleyer Darwin'dir. Daha sonra yapılan deneyler sonucu görüldü ki soğan doğrarken akan gözyaşlarının kimyasal yapıları farklıdır. Ruhsal gözyaşları daha çok protein içermektedir. Fakat henüz bu farkın nedeni açıklanamamıştır.
Üç yaşından daha önce olanları için hatırlamıyoruz?
Bilim adamları geçmiş deneyimlerimizi saklayan hafızamızın beynimizde anıveya öykü şeklinde organize olduğunu ileri sürüyorlar. Üç yaşından küçükler bu şekilde iletişim kurma yeteneğine sahip değiller.Öykü ve anılarını anlatamıyorlar. Yer ve karakter kavramlarını anlamıyorlar. Üç yaşından küçükler düzgün konuşabildikleri,anlayış, seziş ve hafıza yeteneklerine sahip oldukları halde tüm olanları bir bütün olarak şekillendiremiyor, öyküye dönüştüremiyorlar.Hafızamız ne yaptığını ne yapıldığını 3-4 yaşlarında kaydetmeye başlıyor.
Yumurtanın niçin bir tarafı yuvarlak, diğer tarafı sivridir?
Eğerköşeli olsalardı kenarları dayanıklılık bakımından çok zayıf olurdu. En dayanıklı geometrik şekil küredir ama bu şekildeki yumurta yuvarlanacak olursa nerede duracağı belli olmaz. Yumurta yuvarlanınca düz gitmez. İnce tarafı üstünde dairesel bir yol çizer. Başladığı yere yakın bir noktada durur. Yani düz bir yerde kaybolması olanaksızdır. Yumurta, tavuğun yumurta kanalında küre şeklindedir. İlerlemesi sırasında arkada kalan dairesel kasların büzüşerek hem yumurtayı ileri iterler hem de bu kısmına baskı yaparak konik biçimini sağlarlar. Yumurtanın şeklinin nedeni de budur. Sürüngenlerde bu düzenek olmadığından yumurtaları küresel biçimdedir.
Develerin hörgüçlerinde ne var?
Genelde hörgüçlerinde su olduğu ve uzun yolculuklarında bu suyu kullandıkları söylenir ama doğru değildir. Develerin hörgüçlerinde 30-35 kg kadar yağ bulunur. Yiyecek bulamadıkları zaman bu enerjiyle hareketlerini sağlarlar ayrıca yağ çöl sıcağına karşı koruma görevi de yapar. Develer suya az gereksinim duyarlar. Burun mukozaları insana göre 100 kat daha büyüktür. Soluk alırken havadaki nemin üçte ikisini kazanabilirler. Su kaybını da dokularından kaybederler, kandaki su etkilenmez.
Çinlilerin gözleri niçin çekiktir?
Yalnız çinlilerin değil, Orta ve Güneydoğu Asya'da yaşayanların, japonların hatta Eskimoların da gözleri çekiktir. Aslında göz yapısı bütün dünyada aynıdır. Farkı yaratan göz kapaklarıdır. Çekik gözlü diye nitelendirilen ırklarda gözün üzerindeki göz kapağının ikinci kıvrımı, gözün üstüne daha çok inmiştir. Bazı teorilere göre bu kıvrım insanların gözlerini yoğun kar tabakasının, göz kamaştıran ışığından korumak için bir çeşit kar gözlüğü gibi gelişmiştir. Çinde ve öteki bölgelerde her ne kadar yoğun kar yağmıyorsa da onların atalarının buzul çağında kuzeyde yaşadıkları daha sonra güneye indikleri kanıtlanmıştır. Yalnız gözleri değil, burunları da rüzgara karşı korunmak için küçülmüş, burun delikleri soğuğu engellemek için daralmıştır. Ciltleri de koruma amaçlı olarak yağlıdır. Göz kapakları da yağlıdır. Gözü ve iç tabakalarını kara ve buza karşı korur. Yani çekik gözlü değil, düşük göz kapaklı, demek daha doğrudur.
Ateş böceği nasıl ışık saçıyor?
Aslında bu böceğin verdiği ışığın ateşle de sıcaklıkla da bir ilgisi yoktur. Bilimsel adı "Soğuk Işık"tır. Bu ışık olayı, moleküler seviyede kimyasal bir işlemdir. Bazı moleküllerin ayrışarak daha yüksek enerjili hale geçebildikleri ve bu fazla enerjiyi ışığa dönüştürebildikleridir. Ateş böceğinin karın bölgesindeki ışık organında bulunan guddelerden ışık elde etmede rol alan iki ana kimyasal madde üretilmektedir. Fakat onlar da tam olarak ışık vermeye yetmediği için böceğinışık bölgesine yakın solunum organının ışık verme anında burayı oksijenle beslemesi gerekmektedir
Kumaşlar yıkandıktan sonra niçin çeker?
Aslında kumaş ıslanınca lifler şiştiğinden kumaşın az biraz uzaması gerekmektedir. Ama bükümlerin açılarındaki deformasyonun yarattığı çekme kuvveti daha fazla olduğundan sonuçta kumaş boydan kısalır. Kumaş yıkandıktan sonra kurutulduğunda şişmiş lifler eski durumlarına gelirler. Ama kumaş ilk ölçülerine dönemez. Su, yüksek ısı, çalkalama, sabun hepsi kumaşın çekmesini kolaylaştırır. Kumaş birkaç kez yıkandıktan sonra ölçüleri belli bir dengeye ulaşır ve ondan sonra yıkandığında çekmez.
İnsanlar saatlerini niçin sol kollarına takarlar?
Özel bir durum veya farklı olma düşüncesi yoksa insanların çoğu saatlerini sol kola takar. Çünkü çoğunluk sağ elini kullanmaktadır ve bu kolun daha hareketli olması nedeniyle saatin bir yerlere çarpıp zarar görme olasılığı yüksektir. Zaten saatin kurma düğmesi 3 rakamının yanındadır. İnsanlar saati kurmak istedikleri zaman onu bilekten çıkarmadan sağ elle uzattıkları sol kollarındaki saati kurabilirler.
Bir hafta niçin 7 gündür?
Babilliler 7 günlük haftayı zaman birimi olarak kullanıyorlardı. İlk çağlarda bilinen
beş gezegen ile güneş ve ayın sayısı nın 7 oluşu bu sayıyı gizemli ve uğurlu kılıyordu. Daha sonra dinlerde göğün 7 kat oluşu ve doğadaki ana renk sayısının 7 oluşu, müzik notalarının 7 oluşu sayının önemini daha çok belirtti. Daha sonra Fransa takvim yapısını değiştirerek hafta sayısını 10 yaptı ama kabul görmedi. Rusya 5 günlük hafta uygulamasına geçti, o da tutulmadı. Sonunda yine hafta 7 gün olarak kaldı.
Niçin otellerin kapıları döner kapıdır?
Döner kapıların tek amacı enerji tasarrufudur. Büyük binaların içerleri devamlı olarak ısıtılır. Açılan normal kapıdan içeri soğuk hava rahatlıkla girer. Eğer normal kapı kullanılırsa hava değişimi nedeniyle klimalar veya motorlar yeniden çalışacaktır. Özellikle çok kişinin girip çıktığı otel veya benzeri binalarda enerji tasarrufu için döner kapı kullanılır. Döner kanatlar sıcak havanın dışarı çıkmasına, soğuk havanın da içeri girmesini engeller.
İmdat çağrısı S.O.S 'in anlamı nedir?
Çok kişi "Save our Ship" gemimizi kurtar; "Save our Soul" ruhumuzu kurtar; "Stop Other Signals" diğer sinyalleri sözcüklerinin kısaltılmışı sanır. Oysa hiçbiri değildir. Tamamen telgraf zamanından kalma mors alfabesiyle ilgilidir. İmdat çağrısının çok kolay akılda tutulabilmesi için 1908 de üç çizgi, üç nokta, üç çizgi olan S.O.S seçildi.
Doktorlar niçin dizimize çekiçle vurur?
Bir sandalyeye rahatça oturup bacak bacak üstüne atarken doktor dizkapağının hemen altına, kası kemiğe bağlayan tedoma minik lastik bir çekiçle vurduğu zaman bacak ileri fırlar. Bu reflekste baldır kaslarındaki duyu sinirleri kasın genişlemesine tepki verir ve yeni sinir sinyalleri oluşturarak kaslara hafif bir basınç uygulandığını ve gerildiklerini omuriliğine iletirler. Omirilik ise bu basınca dayanabilmesi için kasların kasılması gerektiğini bildirir, bacak tekrar geri hareket eder. Refleks, beyin denetiminden geçmeksizin, yani beyin devrede olmadan doğrudan omuriliğin komutlarıyla gerçekleşmektedir. Diz kapağı refleksi omuriliğin işleyişi konusunda bilgi veren önemli bir tanı yöntemidir.
Tükenmez kalemin dolmakalemden farkı nedir?
Kalemin tarihi yazınınkinden de eskidir. İlk insanlar sivriltilmiş çakmak taşlarıyla duvar resimleri yapmıştır. Mürekkepli metal kalemler Romalılar tarafından biliniyordu. Tükenmez kalem adı ile bilinen bilye uçlu kalemin ilk modeli 1880 yılında yapılmıştır fakat rağbet görmemiştir. Uçakların gelişmesiyle gündeme tekrar gelir. Uçaklar 2-3bin metreye çıkınca hava basıncı oldukça azalır. Dolmakalem mürekkebi basınç nedeniyle dışarı akarak kağıdı ya da giysiyi lekeler. 2.Dünya Savaşı'nda askeri uçaklarda kullanılan tükenmez kalem sonradan yaygınlaşmıştır. Tükenmez kalemlerde mürekkep kağıda pirinç uçtaki yuvaya yerleştirilmiş minik bir bilye aracılığıyla aktarılır. Fakat dolmakalemin özelliği seçkin ve yazıyı kaliteli kılmasıdır.
Radyonun sesi açılınca pil daha çabuk mu biter?
Pille çalışan portatif radyolarda sesin yüksekliği pilin ömrünü etkiler. Radyo açık, sesi kapalı durumu ile sesin sonuna kadar açık durumu arasındaki fark pillerin ömürlerinin kısalmasına neden olur. Ses sonuna kadar açıldığında pillerden çekilen akım yüzde 30 artmaktadır. Bu durum, küçüğünden büyüğüne, pille çalışan ve ses yükselticisi olan bütün radyo, teyp, volkmen vb. için aynıdır.
Horozlar niçin sabahları erkenden öterler?
Sabah güneş doğarken ötmek yalnız horozlara özgü değildir. Kulağa en çok
horozun sesinin gelmesi, onun sesinin diğerlerinden daha güçlü olmasıdır. Kuşların büyük çoğunluğu
da aynı saatlerde ağaçlarda koro halinde öterler. Gün boyu hem horozlar hem kuşlar bu ötüşü sürdürürler
ama seslerinin en güçlü çıktığı zaman sabah saatleridir. Horoz ve kuşların sabah gün
doğarken ötmeleri biyolojik saatleriyle ayarlanmıştır
Evlerimizdeki sinekler kışın nereye gidiyor?
Sineklerin her türü kışın ortadan kaybolur. Havaların ısınmasıyla birlikte ansızın ortaya çıkarlar. Sinekler ısıya
karşı çok hassastır. Güneş bulutun arkasına girdiği zaman oluşan ısı düşmesinden etkilenirler. Kış günlerinde yaşama şansları yoktur. Ölmeden önce yumurtalarını toprağa veya kuytuya gömerler. Lavra ve yumurtalar soğuktan etkilenmez. Yaz sıcakları başlayınca yumurtalar çatlar ve yine sinekli günler başlar.
Termos nasıl sıcağı sıcak, soğuğu soğuk tutuyor?
Tek nedeni vardır, vakum.Yani boşluk.Bir termosta içiçe geçmiş iki kap vardır.Dıştaki metal bir kap olup içteki
genellikle bir cam şişedir.İkisinin arasındaki hava ise boşaltılmıştır.Tam olmasa da üreticiler tarafından elde edilebilen tama yakın bir boşluk vardır.Vakumlu bir ortamda hava molekülleri de ılmadığından ısı iletilemez.Cismin ısısı başlangıçta ne ise o halde kalır.İçerden dışarıya, dışardan içeriye ısı geçişi olmaz.Böylece termosa konan sıvı sıcaksa sıcak, soğuksa soğuk kalır.
Kuşlar nasıl konuşabiliyor?
Her insan ağzıyla konuşur ama konuşabilmeyi sağlayan asıl organ beyindir. Beyinde oluşan düşünceler dilimize ve dudaklarımıza aktarılır. Hayvanlar bu nedenle konuşamaz. Papağan ve benzeri kuşların yaptıkları konuşma değil, mükemmel bir ses tınısı ezberi ve tekrardır. Sesleri ezberler ve taklit ederler. Kuşların ses organları memeli hayvanlardan farklı olarak gırtlakta değil göğüs kafeslerinn dibinde, karın boşluğunun derinliklerindedir. Kuşların doğasında ses taklit yeteneği vardır. Doğayla içiçe yaşarken diğer kuşların seslerini
taklit ederek bir çeşit iletişim sağlarlar.
Kediler balık ve sütü niçin severler?
Kedilerin sudan hoşlanmadığı bilinir. Ama aslında kediler çok iyi yüzerler. Hava şartlarından dolayı ve de tembelliklerinden suya girmeyi sevmezler. Evkedisinin balık sevmesinin yanında kuşlara ve farelere olan düşkünlüğünün nedeni evcilleştirilmeden önce Mısır'da Nil vadisinde balık, kurbağa, küçük kuş ve fareleri avlayarak yaşamış olmasıdır. Zaten eski Mısırlılar kedilerifare avcıları olduğu için evcilleştirmişlerdir. Günümüzde kedinin kuzey Hindistan ve Güneydoğu Asya'da yaşayan türleri ırmakların kenarlarında balık avlayarak yaşamaktadır. Patileriile balıkları sudan dışarı atar, gerekirse suya tamamen girerler. Eski Mısır'da kedi bakıcıları onları ekmek ve sütle beslemişlerdir. Kedilerin süt zevkinin de Mısırlı bakıcılarının yarattığı beslenme alışkanlığından kaynaklanmaktadır.
Bardaktaki buzlar niçin birbirlerine yapışırlar?
Buzun erimesi için yalnızca sıcaklık değil basınç da önemlidir. Dağlardaki buzulların kayma nedeni de budur. Basınçla alt tabaka erir ve kayma oluşur. Bir kabın içinde ya da bir bardakta üstüste duran buzların herbiri altındakine değdiği noktada bir basınç oluşturur ve bu noktada çok küçük kısım erir.Buradan hareket eden su çok az yanda iki buz küpçüğünün birleştiği noktada tekrar donar. İki buz parçası kaynak yapılmışcasına birbirlerine yapışır ve orada bir daha erime olmaz...

¯`★.•*•.♥ღ Cindy Wow ♥ღ .•*•.•★´¯)
(¯`★.•*•.♥ღ Cik...♥ღ .•*•.•★´¯)