Katılım
22 Aralık 2023
Mesajlar
4.733
Makaleler
4
Çözümler
90
Beğeniler
6.810
Herkese selamlar! Bu konu başlığının ilk konusunu ben oluşturmak istedim. Bu konuyu doldurmadan önce kısaca bir reverse engineering konusunda değinelim, değil mi?

Reverse engineering veya tersine mühendislik, bir ürünü inceleyerek o üründen deneyim edinmek ve bu deneyimden yola çıkarak daha iyi ürünler üretme disiplinidir.

Tersine mühendisliği bulunduğumuz ortam ve ilgi alanlarımız nedeniyle genelde bilgisayar yazılımları için kullanırız ancak tersine mühendislik her türlü nesne ve ürün için uygulanabilir.

Yazılımda tersine mühendislik bir yazılımı inceleyerek yapılır. Kapalı kaynak kod ise kod kaynak koduna çevrilmeye çalışılır, derlenmiş kodu tersine çevirmek zordur ancak mümkündür. Bu kaynak koddan elde edilen veri farklı amaçlar için kullanılabilir. "Bu insanlar bu eylemi nasıl başarmış? Biz nasıl yapabiliriz? Biz buna nasıl uyarlarız? Bu hatayı nasıl çözeriz?" gibi sorular cevaplanmaya çalışılır.

Bilgisayardaki en bilindik tersine mühendislik uyarlaması öykünücülerdir. Konsolların neredeyse hepsi ticari üründür ve bu cihazlar hakkında bilgi bulamazsınız. Gönüllü yazılımcılar konsolları, konsol için geliştirilen kütüphane ve yazılımları, donanımını ve onlar için oyunları inceleyerek bütün işlemleri taklit etmeye çalışırlar, hatta cihazın kabiliyetinin üzerine çıkmaya çalışırlar.

Oyunlar için yapılan mod ve dil yamaları da tersine mühendisliğin örneğidir. Oyunlar şifrelenmiş veya bir şekilde derlenmiş dosyalarla gelirler. Farklı oyun motorlarında yapılabilecekleri için müdahale etmek zordur. Mod ve dil yamaları için araçlar hazırlanır ki dosyalar paketlenip açılabilsin. Oyun için uygun model dosyaları bilindik model dosyalarına çevrilmeye çalışılır, yazılar ve yazı tipleri uydurulmaya çalışılır, oyunlardaki performans sorunları incelenerek çözümler bulunmaya çalışılır.

Konsollar için yapılan jailbreak, korsan oynamak için DRM exploitleri, iPhone için yapılan jailbreak hackleri, Android için yapılan Root yetkilendirmesi gibi cihazın sınırlarının ötesine geçmek için yapılan eylemler de tersine mühendisliğin ürünüdür. Sistemlerin çalışma şekilleri incelenerek bu durum sekteye uğratılmaya ve ek kazançlar (sistemsel yetki vs.) elde etmeye çalışılır.

Tersine mühendisliğin kesin bir yolu yoktur. Tersine mühendislik için o alanda deneyim ve bilgi sahibi olmak gereklidir. Genellikle her şeye sıfırdan başlanır ve yol haritası sonra çizilir. Deneme-yanılma ve basit gözlem ile başlar ve yol haritası o sektördeki deneyime bağlı olarak şekillenir. Bilgi ve deneyim olmadan tersine mühendislik zor veya imkansızdır.

Toparlamak gerekirse tersine mühendislik ürünü inceleyerek bilgi edinme disiplinidir ve her şeye uygulanabilir. Bu konu altında büyük ihtimal sadece yazılımla alakalı şeyler olacak ve korsan oyunlarla alakalı içerikler göreceğiz.
 
Tersine mühendislik ile uğraşan kim varsa adamın dibi. Onları çok severim.

Bu da onların bir görüntüsü:
maxresdefault.webp