İPUCU

Siber Güvenlik Siber Güvenlik ile alakalı araçların kullanımı, bilgi paylaşımı ve siber güvenlik eğitimi ile ilgili kaynakların paylaşıldığı alanımızdır.

Seçenekler

Assembly Dili Nedir? Assembly Dili ile Nasıl Hack Yapılır? AXPA~THT

AXPA - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
01/2018
Nereden:
Turkey
Mesajlar:
934
Konular:
60
Teşekkür (Etti):
229
Teşekkür (Aldı):
284
Ticaret:
(0) %
25-03-2018 16:39
#1
Assembly Dili Nedir? Assembly Dili ile Nasıl Hack Yapılır? AXPA~THT


Assembly Nedir?

Assembly aslında öğrenilmesi zor bir dildir. Uzun zaman ve büyük emek ister. Fakat iyi bir şekilde anlatıldığında hiçte zor değil. Ama baştan şunu belirteyim: Diğer programlama dillerinde yaptıklarınızı assembly altında daha çok satır kod yazarak ve daha uzun bir zamanda elde edebilirsiniz. Buna karşın diğer dillere göre birçok üstünlüğü bulunmaktadır. Lütfen bu sayfayı sonuna kadar okumaya devam edin.

Bir programlama dili öğrenecek insan öncelikle kolay bir dili öğrenmeli (Bu genelde Basic'dir.) Bu dil vasıtası ile programlama ve algoritma geliştirme (problemlere karşın geliştirilen hatasız ve tatmin edici çözümler diyebiliriz) hakkında bilgi ve deneyim sahibi olmalı. Son olarak ise diğer dilleri tanımalı ve seçtiği dili öğrenmeli, uygulamalar geliştirmelidir.


0C85:0100 B402 MOV AH,02
0C85:0102 B203 MOV DL,03
0C85:0104 CD21 INT 21
0C85:0106 CD20 INT 20


Yukarıda ayrıntılı çıktısı alınmış bir kod parçası bulunuyor. (Daha sonra ne işe yaradığını anlatacağım) Gri renkteki bölümler bellek lokasyonlarıdır. Yani ilgili kodların şu anda hangi bellek adresinde bulunduğunu gösteriyor bize. Kırmızı renkteki yazılar assembly kodlarıdır. Koyu yeşil kısımlar ise bu assembly kodlarının makina diline çevrilmiş halidir. Bizi ilgilendiren kırmızı bölümler olacak. Biliyorum o yazılardan hiçbir şey anlamadınız, bu çok normal...

Tam olarak anlamanız için uzun bir örnek olacak ama başlıyoruz...

Şu anda bilgisayarınızın başında oturuyor, windows işletim sisteminiz altında bazı programları kullanıyorsunuz. Muhtemelen Internet Explorer bunlardan biri. Kullandığınız her program (*.exe *.dll *.ocx ...) hangi programlama dili ile yazılırsa yazılsın hepside derlenmiş ve ilgili dosyalar haline dönüştürülmüştürler. Bir program Delphi ile yazılmış ve derlenmiş (exe uzantılı dosya haline getirilmiş) ise tersi işlem yapılması, yani programın kodlarına geri döndürülmesi imkansızdır. Derlenmiş program artık işletim sistemimizin ve makinamızın işlemcisinin anlayabileceği bir haldedir. Yani bizim makina dili dediğimiz haldedir. Tamamen iç yapısı elektronik devre elemanlardan oluşan işlemcimiz bu makina dili halindeki kodları çalıştırabilir. Başka hiçbir şeyden anlamaz. Bilgisayarlara bu nedenle de aptal makina denmektedir. Çünkü biz ne emredersek onu işlerler. Makina dili 16 lık sayı sistemindeki değerlerden oluşur. Bu kodlar sadece sayı kümelerinden oluştukları için bir insanın bunları anlaması hele hele bu sayılar üzerinden programlarını yazması nerdeyse imkansızdır...

Fakat insanların karmaşık sayılar yerine kendi konuşma dillerindeki kelimelerden oluşan bir komut kütüphanesi ile çalışmaları daha kolaydır. Bunu Basic dilinde rahatlıkla görebilirsiniz. Çünkü Basic dilindeki komutlar ingilizce bilen bir insan için öğrenme ve akılda kalma açısından çok kolay bir dildir. Makina dilindeki sayılar yani kodlar yani programımız bizim için önemlidir. Çünkü bunlar işlemcimiz üretilirken geliştirilmiş bir komut setine hitap ederler. Bir sonraki işlemci teknolojisine geçildiğinde komut seti genişletilir ve yeni komutlar eklenir. Assembly dili bu komut setindeki makina dili kodlarının insanların biraz daha kolay anlayabileceği harfler üzerinden gösterimidir. Bu tamamen semboliktir ve her assembly komutu yazıldığında birebir makina diline çevrilirler.




Peki Assembly bize ne sağladı?


* Bize işlemcimiz üzerindeki her komuta aracısız erişim sağladı. Yani kod yazarken muhatabınız işlemci ve üzerinde çalışmakta olduğunuz işletim sistemidir. (Bu genelde Windows'tur ama başka bir sistemde olabilir.) Bu size oluşturacağınız programın kodlanması esnasında çok yüksek bir kod hakimiyeti sağlar. Böylece diğer dillerde aynı işi yapsanız dahi sizin assembly ile işlemci üzerindeki hakimiyetiniz en üst düzeydedir ve bunu sizin kadar temiz yapabilecek bir programlama dili ve/veya derleyici yoktur.

* Yazdığınız her satır kod 1 ila 4 byte civarında olup çok az yer kaplar. Diğer dillerde yazılan kodlar aynı işi yapsa dahi sizinle aranızda derleyici bulunmaktadır ve programın işleyişini sağlama almak amacıyla komutlar arasında ek bilgiler girilmekte ve programınızın boyutu büyümektedir. Ayrıca diğer dillerdeki komutlar işlemci üzerindeki komutlarla uyuşmaz ise derleyici bunu dolambaçlı yollardan işlemciye anlatır ve yazılan bir tek komut makina dilinde yüzlerce komuta karşılık gelebilir. Herhangi bir dildeki basit komut assembly ile yazılsa 2 ila 6 kat daha az yer kaplar.

* Yazdığınız programlar (eğer bir algoritma hatası yok ise) diğer dillerdeki şekillerine göre her zaman daha az yer kaplar. Programın az yer kaplaması çalışırken daha az bellek tüketmesi; işlemler daha az kod ile anlatıldığından daha kısa sürede işlemin bitmesi, yani programımız daha hızlı çalışması anlamına gelir.

Avantajları nelerdir?


* İşlemcinizin gücünü en iyi şekilde ortaya koyabilecek tek programlama dilidir.

* Cok az yer kapladığı için bilgisayar virüslerin yazımında kullanılırlar.

* Çok hızlı çalıştıkları için işletim sistemlerinde kernel ve donanım sürücülerinin programlanmasında, hız gerektiren kritik uygulamalarda kullanılmaktadır.

* Yapısı itibariyle üç boyutlu ekran kartlarında ilgili çizim ve efektlerin işlenmesi amacıyla hem oyunlar hem de programlar içinde ekran kartına hitap eden makina dili kodları kullanılmaktadır.

* Herhangi bir amaç doğrultusunda (genelde programların daha hızlı çalışması için optimize edilirken), herhangi bir programlama dili altında, o dilin kodları arasında kullanılabilir. Yani diğer dillerle beraber de kullanabilirsiniz. Sizin uzman olduğunuz dil belki Visual Basic dir. Ama işin içinden çıkamadınız, assembly bilen bir arkadaşınız sizin için birkaç kod ekledi ve tamam.

* İyi öğrenildiğinde diğer dillerde karşılaşılan büyük problemlerin assembly ile basit çözümleri olduğu görülür. Yani başka programlama dillerde çalışan insanların bu iş imkansız dediği yerde assembly devreye girer. Bu üstünlük daima var olacaktır...

* Yazdığınız programın kaynak kodlarını tüm dünya ile paylaşsanız dahi kodlar o kadar karmaşıktır ki insanlar assembly bilse dahi ne işe yaradığını çözmeleri çok uzun zamanlarını alır. (Açıklayıcı bilgiler koymadı iseniz) Assembly bilmeyen bir insanın kaynak kodu anlaması imkansızdır.

* Her program derlendiğinde makina diline dönüşür. Bunlar assembly kodlarına dönüştürülebilirler. (Buna disassembly olayı denir, bunu yapan programlar ise disassembler'lar dır.) Bu sayede assembly bilen bir insan zor da olsa diger programların çalışma şekillerini inceleyebilir ve üzerlerinde oynama yapabilir. Bu özellik de başka hiçbir dilde yoktur. Daha ileri gidip programların şifre isteyen bölümleri değişik yöntemlerle kırılabilir. Serial Generator türü programlar bu şekilde yapılabilmektedir.

* Zaman geçtikce ve insanlar üreten yerine tüketen bilgisayar kullanıcıları haline geldikçe bu dili bilmenin ayrıcalığı artmaktadır.


Dezavantajları nelerdir?

* Dilin öğrenilmesi uzun zaman ve emek ister.

* Yazılan programlar diğer dillere göre daha çok satırdan oluşur.

* Yazdığınız programın hangi satırlarının ne iş yaptığını bir süre sonra anlamayabilirsiniz. Çünkü anlaşılması zor ve karmaşık bir dildir. Bu nedenle kodların sonuna açıklama bölümleri eklemek iyi bir çözüm olacaktır.


* İşlemciye birebir bağımlıdır. Yani sonraki sayfalarda anlatılacak olan kodlar Intel ve uyumlu (AMD, Cyrix, Via) işlemcilerde geçerlidir. Örneğin Motorola işlemcileri kullanan Macintosh bilgisayarlarda hem komut setinin hem de işlemci mimarisindeki büyük farklılıklardan dolayı geçersizdir. Fakat onlarda da bir makina dili tabii ki bir assembly dili bulunmaktadır. Fakat komutlar daha farklıdır. Bizim ilgi alanımız intel 386 (i386) üstü ve bunlarla uyumlu işlemcilerdir.


Assembly Dili'ni bilmek, ileri seviye bir hacker'ın mutlaka olmazsa olmazlarındandır. Bu dili öğrenip kavrayan biri her şeyi yapabilir konuma gelmiş demektir.

--------------------- Işık ve Sevgiyle...

© Copyright TurkHackTeam.Net
Konu AXPA tarafından (25-03-2018 17:09 Saat 17:09 ) değiştirilmiştir.
CyberXhackk - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
03/2016
Nereden:
pardus@root
Mesajlar:
2.992
Konular:
240
Teşekkür (Etti):
772
Teşekkür (Aldı):
704
Ticaret:
(0) %
25-03-2018 16:40
#2
Elinize sağlık Komutanım
--------------------- Linux'a Dair Herşey..
AXPA Teşekkür etti.
The Freedom - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
03/2018
Mesajlar:
33
Konular:
7
Teşekkür (Etti):
1
Teşekkür (Aldı):
18
Ticaret:
(0) %
25-03-2018 16:42
#3
Elinize sağlık güzel konu
AXPA Teşekkür etti.
maskedelisi - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
03/2018
Nereden:
Ev
Mesajlar:
465
Konular:
79
Teşekkür (Etti):
23
Teşekkür (Aldı):
28
Ticaret:
(0) %
25-03-2018 16:45
#4
Güzel açıklama.
--------------------- Bayrakları bayrak yapan üstündeki kandır, Toprak, eğer uğrunda ölen varsa vatandır.
AXPA Teşekkür etti.
ExeOweR - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
03/2012
Nereden:
İstanbul
Mesajlar:
2.837
Konular:
355
Teşekkür (Etti):
359
Teşekkür (Aldı):
1151
Ticaret:
(0) %
25-03-2018 16:45
#5
Eline sağlık çok güzel bir konu değeri bilinirse
---------------------

'Ben TÜRK olmayan herşeye karşıyım.'

'Modası geçmeyen tek şey EFENDİLİK'
AXPA Teşekkür etti.
megat - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
02/2016
Nereden:
-
Mesajlar:
3.074
Konular:
315
Teşekkür (Etti):
854
Teşekkür (Aldı):
680
Ticaret:
(0) %
25-03-2018 16:46
#6
Eline sağlık AXPA güzel konu olmuş
---------------------
666
AXPA Teşekkür etti.
kenzai - ait Kullanıcı Resmi (Avatar)
V.I.P Üyelik Sorumlusu
Üyelik tarihi:
12/2013
Mesajlar:
8.469
Konular:
1441
Teşekkür (Etti):
3797
Teşekkür (Aldı):
2487
Ticaret:
(0) %
25-03-2018 17:58
#7
Başarılı konu elinize sağlık.
AXPA Teşekkür etti.
SURHANLI - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
03/2018
Nereden:
Frankfurt
Yaş:
19
Mesajlar:
667
Konular:
36
Teşekkür (Etti):
39
Teşekkür (Aldı):
146
Ticaret:
(0) %
25-03-2018 18:02
#8
Eline Sağlık.
AXPA Teşekkür etti.
D3facerx - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
03/2018
Mesajlar:
81
Konular:
19
Teşekkür (Etti):
47
Teşekkür (Aldı):
8
Ticaret:
(0) %
25-03-2018 18:18
#9
Elinize sağlık
AXPA Teşekkür etti.
RedBuls81 - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
03/2018
Nereden:
###
Mesajlar:
67
Konular:
5
Teşekkür (Etti):
0
Teşekkür (Aldı):
6
Ticaret:
(0) %
03-04-2018 18:58
#10
Elinize saglık güzel konu.Yalnız şuan Assembly fazla ön planda olan bir dil değil.Genellikle embedded systems(gömülü sistemlerde) kullanılır.Öğrenmekten bir zarar çıkmaz

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler

Yetkileriniz
Sizin Yeni Konu Acma Yetkiniz var yok
You may not post replies
Sizin eklenti yükleme yetkiniz yok
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodları Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı