Reverse Engineering Nedir?

Oğuzhan KARAHAN Avatar Oğuzhan KARAHAN 28 Nisan 2023

Kullanıcıların merak ettiği konular arasında Reverse Engineering konusu da bulunuyor.

Sizlere bu konuda bilgi vermek istiyoruz.

Kötü amaçlı insanlar dünyanın pek çok yerine mevcut.

Bu tür insanların amacı sistemin işleyişini bozmak ve insanları dolandırmak olarak açıklanabilir.

Kötü amaçlı insanların pek çok amacı bulunabilir.

Bu amaçlardan birisi de tersine mühendislik olarak belirtiliyor.

Reverse Engineering bir taraftan oyuncular ve kullanıcılar için iyi olabiliyor fakat yazılım geliştiricileri için kötü bir durum olabiliyor.

Reverse Engineering ile yazılımları ücretsiz bir şekilde sunan hackerlar, aslında kullanıcılar için de tehlike arz ediyor.

Çünkü yazılımların içerisine kötü amaçlı kodlar entegre edilebilir.

Reverse Engineering Nedir?


Tersine mühendislik, bir sistemin çalışma mantığını çözme olarak tanımlanabilir.

Mühendislik, bir şeyi geliştirmek iken tersine mühendislik geliştirilen bir şeyin nasıl geliştirildiğini anlamaya çalışmak.

Basit bir örnek vererek konuyu açıklamaya çalışalım.

Örneğin bir çakmak olsun.

Çakmağın pek çok bileşeni bulunur.

Bu çakmağın nasıl yapıldığını öğrenmek için çakmağın içi açılır ve bileşenler incelenir.

Bu şekilde çakmağın yapım aşaması öğrenilebilir.

Bu donanım anlamında bir reverse engineering örneği olarak bizlerin karşısına çıkıyor.

Bir de yazılımsal tersine mühendislik örneği vermek istiyoruz.

Windows 98 işletim sisteminin kodlarının ortaya çıkarılması isteniyor olsun.

Bu durumda Windows 98 işletim sisteminin yapısı incelenir ve açık kaynak kodların ortaya çıkması için bazı çalışmalar yapılır.

Bir süre sonra ise işletim sisteminin açık kaynak kodları oluşur.

Böyle bir örneğin var olduğunu belirtmek istiyoruz.

Eski bir Windows işletim sistemi sürümü tersine mühendislik yöntemiyle açık kaynak haline geldi.

Tabii günümüzde büyük kaynak kodu sebebiyle bu işlemi yapmak daha zor.

Oyun veya bir yazılım olarak da örnek vermek istiyoruz.

Bazı gruplar korsan oyun veya yazılımları ortaya çıkarmak için tersine mühendislik yönteminden faydalanır.

Bu durum da reverse engineering alanında önemli bir rol oynuyor.

Reverse Engineering

Tersine Mühendislik Nasıl Yapılır?


Tersine mühendisliğin nasıl yapıldığı hakkında kullanıcıların aklında bazı sorular yer alabilir.

Sizlere tersine mühendisliğin nasıl yapıldığıyla da ilgili bilgiler sunmak istiyoruz.

Tersine mühendislik yapmak hiç de kolay bir iş değil.

Öncelikle bunu bilmek gerekiyor.

Bu işi yaparken kullanıcılar makine dilini inceleyerek yani uygulamayı temelden keşfederek açık kaynak kod çıkarmaya çalışıyor.

Bu işte uzman olanların dahi zorlandığı bu alan için büyük bir emek sarf etmek gerekir.

Uzmanlığın yanı sıra bu işin sabır işi olduğunu da açıklayalım.

Günümüzde tersine mühendislik için pek çok yazılım bulunuyor.

Bazı yazılımlar uygulamaları otomatik çevirerek açık kaynak kod verirken bazıları makine dilini inceleme alanında yardımcı oluyor.

Şifrelenmiş yani güvenliği bulunan uygulamaların açık kaynak kodlarına ulaşmak daha zor olabilir.

Şunu da belirtmek istiyoruz ki reverse engineering bazı durumlarda iyi amaçla da yapılabiliyor.

Örneğin bir yazılımın açık kaynak kodları kayboldu ve firma da bu kodlara sahip değil.

O yazılımın geliştirilmesi adına firma izin veriyor ise tersine mühendislik işlemi uygulanabilir ve kodlar ortaya çıkarılabilir.

Bu konuda tersine mühendisliğin önemli bir avantajı bulunuyor.

Reverse Engineering için Gerekli Olan Tecrübeler


Tersine mühendislik için gerekli olan pek çok tecrübe mevcut.

Öncelikli olarak alınması gereken eğitim donanım ve yazılım alanında bilgili olmak.

Bu konuda bilgi sahibi olduktan sonra kullanıcıların makine dili ve Assembly hakkında da yeterli bilgiye sahip olması gerekir.

Gerekli bilgiler alındıktan sonra birkaç örnek uygulama geliştirilmeli ve bu uygulama tersine mühendislik yöntemiyle kırılmalı.

Sonrasında ise farklı uygulamalar üzerinde deneyler uygulanabilir.

Şunu belirtelim ki öncelikle basit uygulamaların açık kaynak kodlarını almakla işe başlamak ve sonrasında daha büyük işlere girmek gerekir.

Az önce de bahsettiğimiz gibi bu sabır işi olarak bizlerin karşısına çıkıyor.

Tersine Mühendisliğin Aşamaları Nelerdir?


Reverse engineering ile ilgili bilinmesi gerekenlerden birisi tersine mühendisliğin aşamaları olmakta.

Tersine mühendislik pek çok aşamaya sahip.

Her kaynakta farklı aşamalar yer alıyor, çünkü net bir tablo ortaya sunulmuyor.

Tersine mühendisliğin ilk aşaması uygulamayı incelemek.

Uygulama iyi bir şekilde incelenmeli ve güzel bir analiz yapılmalı.

İkinci aşamada uygulamanın kodlarına erişmek için çeşitli yazılımlar kullanılmalı.

Tabii bu kod ham bir şekilde yer almaz, makine kodu olarak görünür.

Üçüncü aşamada kullanıcı kodları ortaya dökmeye çalışır.

Her bir makine kodunun bir anlamı bulunur.

Bunu çevirmek uzun sürebileceği için yardımcı araçlar burada rol oynayabilir.

Bir diğer aşamada kodlar ortaya çıktıktan sonra artık test aşamasına gelinir.

Yazılım test edilir ve kodların çalışıp çalışmadığı anlaşılır.

Şunu belirtelim ki kodları ortaya döken hazır yazılımlar olsa da şifrelenmiş uygulamalarda daha fazla çaba göstermek lazım.

Reverse Engineering

Her Yazılımda veya Donanımda Tersine Mühendislik Mümkün mü?


Birçok kullanıcının aklındaki sorulardan birisi her yazılım veya donanımda reverse engineering işleminin mümkün olup olmayacağı olarak bizlerin karşısına çıkıyor.

Bu konu başlığı altında bu konuya değinmek gerekiyor.

Bunun cevabını kısaca vermek gerekirse evet diyebiliriz.

Çünkü kırılamayan yazılım veya donanım bulunmaz.

Bunun yerine güvenlik seviyesi yüksek yani iyi şifrelenmiş yazılım ve donanımlar olabilir.

Şifrelemesi güçlü olan yazılım ve donanımları kırmak daha zor olur.

Şifrelenmemiş yazılımlar ise bazı araçlar ile dahi kırılabiliyor.

Tersine Mühendislik Yasal mı?


Tersine mühendislik ile birlikte bir yazılımın açık kaynak kodları yayınlanabiliyor iken bunun yanı sıra bir uygulamanın korsan hali internet ortamına düşebilir.

Bu şekilde bir kullanım hem etik değil hem de yasal olmuyor.

Tabii bu ülkeden ülkeye değişiklik gösterebilir.

Tersine mühendisliğin yasal veya etik olduğu durumlar bu işi herhangi bir firmanın veya bağımsız bir yapımcının hakkına girmeden yapmak.

Mesela firması kaldırılmış olan bir uygulama için eğer firma yazılım üzerindeki hakları bıraktıysa bu durumda geliştirilmek adına tersine mühendislik yapılabiliyor.

Reverse Engineering Araçları


Pek çok reverse engineering aracı bulunuyor.

Bu araçları tanıtmayacağız fakat türlerine ayıracağız.

Bunlardan birisi makine dilini gösteren araçlar.

Bu araçların amacı bir yazılımın makine dilini ortaya dökerek nasıl geliştirildiğini ortaya koymak.

Bir diğer araç olarak yazılımı alıp açık kaynak kodları doğrudan veren araçlar olarak belirtilebilir.

Bu araçlar genel olarak şifrelenmemiş yazılımlar üzerinde daha etkili olabiliyor.

Örneğin C#.NET uygulamaları için tersine mühendislik yazılımı bulunabiliyor.

Tersine Mühendislik ile Kırılan Bazı Yazılımlar


Tersine mühendislik ile birlikte kırılan pek çok yazılım mevcut.

Bu yazılımların kırılması demek korsan uygulama olarak ortaya çıkması anlamına geliyor.

Pek çok büyük hacker ekibi tarafından yapılan bu iş sayesinde korsan oyun ve yazılım kullananlar tersine mühendislik yöntemini yapan ekipler sayesinde bu uygulamalardan yararlanabiliyor.

Tabii bu ekipler yazılımın içine kötü amaçlı kodlar entegre edebileceği için kullanılmaması gerekiyor.

Tersine mühendislik yöntemiyle kırılan bazı uygulamalar şu şekilde bulunuyor:

  • GTA V
  • Red Dead Redemption II
  • Elden Ring
  • GTA IV
  • GTA San Andreas
  • Age of Empires
  • God of War
  • Jurassic World Evolution 2
  • Shadow Warrior 3
  • Adobe Premiere Pro
  • Adobe After Effects
  • Adobe Photoshop
  • Microsoft Office
  • Cinema 4D
  • Game Maker Studio

Sonraki yazı: Dahili Ekran Kartı Nedir?

0 Yorum

Yorum Bırak

E-posta hesabınız yayımlanmayacak.