TERSİNE MÜHENDİSLİK (REVERSE ENGINEERING) NEDİR? 

 

TERSİNE MÜHENDİSLİK NEDİR : Tersine mühendislik; bir sistemin, bir yazılımın, reel bir objenin çalışma mantığı ve işleyişinin belli analizler ile keşfedilerek çözülmesi işlemlerinin bütünüdür. Yani tersine mühendislik sadece yazılımlar için değil fiziksel objelerin üretim ve tasarımının nasıl yapıldığının saptanması için de önem arz etmektedir. Tersine mühendislik siber güvenlik uzmanları için büyük önem arz etmektedir. Fidye yazılımları ile bir kişinin, kurumun veya kuruluşun sistemine sızmış hacker sistemdeki dosyaları şifreleyerek belli bir süre içerisinde para talep etmektedir. Bu süre zarfında siber güvenlik uzmanları dosyaların şifresini kırabilmek için tersine mühendislik ve cracking işlemleri yapmaktadırlar. Ayrıca tersine mühendislik ve cracking, birçok önemli siber güvelik yarışmalarının “CTF” bayrak yakalama yarışlarında şifre kırmak için de kullanılmaktadır. Yazılım açısından devam edersek örneğin yeni çıkmış bir bilgisayar oyununu düşünelim. Oyun çıktıktan hemen birkaç gün içerisinde oyunun hilesi ortaya çıkıyor. Bu nasıl oluyor ? Tersine mühendislik ile oyunun dosyaları üzerinde Cracking işlemi yapılıyor (“Cracking : belli bir yazılımın kırılması işlemine denir.” ). Craking yapıldığında oyunun belli başlı açıkları ortaya çıkıyor ve bu açıklardan nasıl hile geliştireceklerini çözümlüyorlar. Daha sonra bu hileler oyuna enjekte ediliyor ve aktifleştiriliyor. Bu aslında bir tersine mühendislik sürecidir çünkü, oyunun çalışma mantığını ve işleyişini kavrayıp oyunun açıklarını buluyor ve oyunun çalışma mantığına göre hileler yazıyorlar. Tersine mühendislik ile birçok programın şifresi veya key’leri kırılabiliyor. Örneğin internetten kaçak yollarla ücretsiz bir şekilde indirdiğiniz Adobe PhotoshopAdobe Illustratorsolidworks, ofice360 programları gibi programlar aslında bir tersine mühendislik ve cracking sürecinin sonunda şifreleri veya key’leri kırılmış bir şekilde indirmeniz için sizlere sunuluyor. Bu programları siz de tersine mühendislik ile kırabilirsiniz (kesinlikle tavsiye etmiyoruz bunu).  Tersine mühendislik ve cracking’in çalışma alanı sadece bununla sınırlı kalmıyor. Bugün internette Windows 10 Home’a 15 tl’ye sahip olabiliyorsunuz. Bunun nedeni Windows’un bile cracklenebiliyor olmasıdır. Tersine mühendislik ile yazılımın kaynak kodlarına erişim sağlanır. Kaynak kodlarına erişim sağlanan yazılımın kodları değiştirilebilir, kopyalanabilir veya silinebilir. Tersine mühendislik devletlerin kendi savunma sanayii için çok büyük bir önem taşımaktadır. Çünkü çok yeni bir teknoloji ile üretilmiş bir silah, bir mühimmat vs… bulunduğunda bunun yapım aşaması ve nasıl yapıldığının saptanması için tersine mühendislik işlemi yapılabilmektedir. Biz bugün daha çok tersine mühendisliğin yazılım ile ilgili olan kısımlarını ele alacağız.  

TERSİNE MÜHENDİSLİK İÇİN KULLANILAN ARAÇLAR : Tersine mühendislik işlemleri genellikle içerisinde Windows 7 bulunan bir sanal makinede yapılmaktadır. Windows 7’nin içerisinde IDA PRO adlı bir program kullanılır. IDA PRO 32 bit veya 64 bit olabilmektedir ama en garanti çözümü kesinlikle 32 bit ile alacaksınızdır (IDA PRO : bu program ile ece dosyaları, dll dosyaları gibi dosyalar üzerinde tersine mühendislik ve cracking işlemleri yapmanıza olanak sağlayan bir diassembler aracıdır.) . IDA PRO Assembly kodları üzerinde çalışmaktadır. Tersine mühendisliği Assembly dili üzerinde yapabiliyoruz anlaşılacağı gibi. 

TERSİNE MÜHENDİSLİK İLE NELER YAPILIYOR : Tersine mühendislik ile IDA PRO üzerinde “patch” adı verilen metod ile yazılımın şifresine erişip onu bulmaktansa, yazılım şifresini direkt olarak değiştirme işlemidir. Yani “patch” metodu ile şifresini öğrenemiyorsunuz fakat şifresini öğrenmeye gerek kalmadan programın şifresini tamamen değiştirebiliyorsunuz. 2. bir yol ise programın şifresine direkt olarak erişim sağlama. Bu sayede yazılımın kaynak kodlarına ulaşarak şifresini ekranınızda görebiliyorsunuz. Bazı durumlarda kodu Assembly dilinde göremeyebilirsiniz. Bu durumda kod ekranını “C” diline çevirerek şifreyi görmenize olanak sağlanabilir. Bunun olması için IDA PRO’nun 32 bit olarak kullanılması şart. 64 bit üzerinde kullanılan IDA PRO programı kodları “C” diline çevirmemektedir.  

IDA PRO ÜZERİNDE BİR TERSİNE MÜHENDİSLİK UYGULAMASI YAPALIM : 

Programı açalım > şifreyi yanlış girelim > şifreyi yanlış girdiğimizde feed back aldığımız mesajı kopyalayalım > IDA PRO 32 bit olanın üzerine dosyayı sürükleyerek atalım > option > general strings > unıcode c – style > view > open subviews > strings > bu kısımda şifre hatası veren yazıyı bulucaz ve onu seçicez. > f9 tıkla > local window debugger > bu kısımda şifreyi göreceğiz fakat şifre görünmüyorsa f5’e basarak Assembly kodunu C koduna çevirerek çok daha rahat bir şekilde şifreye ulaşmış olacağız. > şifreyi programa giriyoruz ve tersine mühendislik işlemini tamamlamış oluyoruz. 

(Visited 197 times, 1 visits today)

2 thoughts on “TERSİNE MÜHENDİSLİK (REVERSE ENGINEERING) NEDİR? 

  1. Süper bir yazı,tersine mühendislik bilgisiyle windowstan key satabileceğimizi de anlatmış olmanız güzel ( şaka bu arada asla öyle işlerde gözümüz yok 🙂 )

    1. Key kırmak kolay bir iş değil tabi ki yukarida yaptigim ornek en az korumaya sahip bir key’in kirilmasiydi ama siz adobe gibi programlarin key’ini kirmak isterseniz cok cok iyi bir tersine muhendislik ve cracking bilginizin olmasi ve ayriyeten daha onceden cok fazla key ile ugrasmis olmaniz gerekiyor ki farkli bakis acilari ile olaya goz atmaniz gerekiyor yani adobenin vs programlarini kirmak her yigidin harci degil 🙂
      Tersine mühendisliği siber güvenlik için kullanalım iyi günler☺

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir