Hoşgeldin Sivil

.
Forum Yöneticisi: Administrator | Bu Bölümde Yetkili Tüm Yöneticiler? | Bu konuyu okuyanlar?

 Forum Ana Sayfa
   Tersine Mühendislik

   
 Kurallar    Aktif Konular    PM    Kayıt Ol     Giriş Yap  
» Siber Güvenlikçi Olacağım | Tersine Müh.
 Konu Kalitesi %12.5
Oy Ver   
 
Gönderilme Tarihi: 07 Mayıs 2022 23:33:16 - Kayıtlı IP
  Mesajı İhbar Et!     

İsfihan

Co (Administrator)

C-Warz
19 Kasım 2021
369 Mesaj

Durum: Melodrama


Aktiflik
Seviye
Deneyim


Görev Org./Grup :

Strateji


SİBER GÜVENLİK TEMELLERİ TERSİNE MÜHENDİSLİK



Herkese selamlar arkadaşlar serisini yaptığım siber güvenlikçi olacağım serisinin tersine mühendislik bölümündeyiz bu eğitim temel düzeyde olacaktır iyi forumlar.

Tersine Mühendislik Nedir?

Tersine mühendislik bir çeşit analiz dalıdır. Bu analiz dalında bir nesnenin veya sistemin yapısının, işlevinin veya çalışmasının analiz ile keşfedilmesi işlemidir. (Makine veya mekanik alet, elektronik, yazılım programı gibi) parçalarına ayrılıp ve çalışma prensiplerinin detaylı şekilde analizini inceleyen daldır.

x86-64 Nedir?

x86-64 AMD tarafından tasarlanan 64-bitlik bir işlemci mimarisidir. x86-64, x86 mimarisinin bir üst kümesidir, yapısı itibarıyla de onu destekler. x86-64 komut seti AMDnin Athlon 64, Athlon 64 FX, Athlon 64 X2, Turion 64, ve Opteron işlemcilerinde kullanılmaktadır.

x86-64 Montajına Giriş

Bilgisayarlar, bir bilgisayarda görevleri gerçekleştirmek için bayt olarak kodlanmış makine kodunu yürütür. Farklı bilgisayarların farklı işlemcileri olduğundan, bu bilgisayarlarda yürütülen makine kodu işlemciye özeldir. Bu durumda, bugün en yaygın olarak bulunan Intel x86-64 komut seti mimarisine bakacağız. Makine kodu, genellikle, derleme kodu adı verilen kodun daha okunabilir bir biçimiyle temsil edilir. Bu makine kodu genellikle bir dosyanın kaynak kodunu alan ve bazı ara aşamalardan geçtikten sonra bir bilgisayar tarafından çalıştırılabilen makine kodu üreten bir derleyici tarafından üretilir.

Çok fazla ayrıntıya girmeden Intel, önce 16 bitlik bir komut seti inşa ederek başladı, ardından 32 bit ve ardından 64 bit oluşturdu. Tüm bu komut setleri geriye dönük uyumluluk için oluşturulmuştur, bu nedenle 32 bit mimari için derlenen kod 64 bit makinelerde çalışacaktır. Daha önce bahsedildiği gibi, yürütülebilir bir dosya üretilmeden önce, kaynak kod ilk olarak derleme .s dosya uzantısı halinde derlenir, ardından montajcı onu bir nesne programına .o uzantılı dosyaya dönüştürür ve bir bağlayıcıyla yapılan işlemler sonunda onu bir dosya haline getirir ve yürütülebilir.

Assemblyyi açıklamaya başlamanın en iyi yolu, derine dalmaktır fakat konuyu uzatmamak adına anlatmıyorum. Bunu radare2 yapmak için kullanacağız - radare2 , tersine mühendislik ve ikili dosyaları analiz etmek için bir çerçevedir. İkili dosyaları demonte etmek (makine kodunu aslında okunabilir olan Assemblyye çevirmek) ve söz konusu ikili dosyaların hatalarını ayıklamak (bir kullanıcının yürütmede adım atmasına ve programın durumunu görüntülemesine izin vererek) için kullanılabilir.

SSH ile bağlantı kurduktan sonrar2 -d incelenecek dosya komutuyla işlemimize başlıyoruz.



aa komutuyla ilk şeylerden biri r2‘den programı analiz etmesini istemektir. (5-10 dk sürebilir.)



Taramaya devam etmekte.



Taramamız bitti. Hangisi en yaygın analiz komutudur. Yürütülebilir dosyadaki tüm sembolleri ve giriş noktalarını analiz eder. Bu durumda analiz, fonksiyon adlarının, akış kontrol bilgilerinin ve çok daha fazlasının çıkarılmasını içerir. r2 komutları genellikle tek bir karaktere dayanır, bu nedenle komutlar hakkında daha fazla bilgi almak kolaydır. Yani, genel yardım için şunu çalıştırabiliriz ? veya belirli bir özellik hakkında daha fazla bilgi edinmek istersek, şunları sağlayabiliriz; a?

Analiz tamamlandıktan sonra, analize nereden başlayacağınızı bilmek istersiniz, bunun için afl komutu yardımcı olacaktır.



Burada görüldüğü gibi aslında mainde bir fonksiyon var. Diyelim komutu çalıştırarak montaj kodu incelenecek. PDF Print D isassembly Fonksiyonu bunu yapabilmek için pdf @main komutunu çalıştırıyoruz.



Assembly dilinin özü, aşağıdakileri yapmak için kayıtların kullanılmasını içerir;

# Verileri bellek ve kayıt arasında aktarın ve tam tersi
# Kayıtlar ve veriler üzerinde aritmetik işlemler gerçekleştirir.
# Kontrolü programın diğer bölümlerine aktarın Mimari x86-64 olduğundan, kayıtlar 64 bittir ve Intel‘in 16 kayıt listesi vardır;



Kayıtları kullanarak bellek manipülasyonu ile uğraşırken, dikkate alınması gereken başka durumlar da vardır;

# (Rb, Ri) = HafızaKonumu[Rb + Ri]
# D(Rb, Ri) = HafızaKonumu[Rb + Ri + D]
# (Rb, Ri, S) = HafızaKonumu(Rb + S * Ri]
# D(Rb, Ri, S) = HafızaKonumu[Rb + S * Ri + D]

Şimdi bir kesme noktası belirlediğimize göre, programı kullanarak dc komutuyla çalıştıralım.



Biz kesme noktasına ulaşana kadar programı yürütecektir. Kesme noktasına ulaştığımızda ve ana işlevi yazdırdığımızda, geçerli talimat olan rip, yürütmenin nerede durduğunu gösterir. Değişkenin içeriğini görüntülemek için px @memoryadress komutunu kullanıyoruz..



Registerin değerini görmek için dr komutunu kullanabiliriz;





___________________________________________
Sözünü tutamayan bizler bedelini ödemek zorundayız.
          
  C-WarZ (TIM LiDERi) , Yöneteam , Errorle Mücadele ,    
 
 
Gönderilme Tarihi: 07 Mayıs 2022 23:45:32 - Kayıtlı IP
  Mesajı İhbar Et!     

HAYALET

Albay

03 Ocak 2022
259 Mesaj

Durum: Beyaz Ve Sen


Aktiflik
Seviye
Deneyim
Moderatör

Görev Org./Grup :

Sosyal Medya


Lojistik


Güzel konu eline sağlık abi


___________________________________________
Oraleti sevmemiz portakala olan düşkünlüğümüzden değil biz ezilenin yanındayız.
       
     
 
 
Git:
  Arkadaşına yolla

Sayfa Yüklenme Süresi: 0.208


 

İçerik Yöneticisi : AKTIF / Veriler Aktarıldı...
IP Adresiniz : 172.71.254.38 Güvenlik Nedeniyle Kayıt Altındadır.



Uzun yoldan geldik, uzun yola devam...

   


Reklam vermek için tıklayın

Forum Kuralları | Üye Olmak İçin | CyberAkademi | Operasyonel TİM'ler
CYBERAKADEMI ~ 2021