- 17 Nis 2015
- 513
- 1
Tersine Mühendislik olarak da bilinen Reverse Engineering kavramını inceleyeceğiz. Tersine mühendislik temelde çok basit olsa da pek çok dalla bağlantısının olması ve bazı tasarımlarda çözümü sadece bu yöntemle bulabiliyor olmak işe heyecan katıyor.
Tersine mühendisliğin biraz daha derinine inmeden önce tersine mühendislik nedir ondan bahsedelim. Tersine mühendislik temelde bir aygıtın, cihazın ya da sistemin çalışmasını, bağlantılarını ve yapısını anlamak için her parçanın teker teker akılcı analizlerinin yapılması ve çalışma prensiplerinin incelenmesi işidir. Kısacası klasik mühendisliğin yöntemi bütünden genele ulaşmakken tersine mühendislik tekten bütüne ulaşmaya çalışır.
Bir sistemi ters mühendislikle yaratmak dört basamaktan oluşur:
1. Tersine mühendize edilecek olan bileşeni ya da ürünü tanımlamak ve incelemek
2. Ürünün çalışma sistemini ve yöntemini belirlemek.
3. Tersine mühendislikle elde edilen teknik veriyi bir başka benzere uygulamak.
4. Yeni bir ürün üretmek( Tercihe göre piyasaya sürmek.)
Tersine mühendislik pek çok alanda uygulanıyor. Bir aygıtı tam anlamıyla öğrenmek, piyasada olan üründen daha ucuz ve daha uyumlu ürünler yaratmak, farklı işletim sistemlerindeki veriler arasında köprü kurmak ya da arayüz kullanıcı ilişkisini daha etkili yapmak tersine mühendislikle mümkündür. Ayrıca bilgisayar destekli tasarım, bilgisayar destekli üretim gibi alanlarda da tersine mühendislik sıkça kullanılır.
Daha önceleri sadece donanım konularında kullanılabilen tersine mühendislik şimdi veriler, yazılım ve hatta insan DNAsı için bile kullanılabiliyor. Tersine mühendislik yazılım ve donanım için ayrıca bir önem taşıyor. Java ya da C++ dillerinde yazılan programlar diğer programlar tarafından algılanabilir, ancak bu programları bilgisayarda yürütebilmek için derleyici dediğimiz yazılımlara ihtiyaç duyulur. Derleyici(compiler) kodu çoğu programcı için anlaşılmaz olsa da kodu daha insan dostu bir seviyeye getirmek için decompilerlar kullanılabilir.
Tersine mühendislik özellikle bilgisayar biliminde çok önemli bir yere sahiptir. Eğer kod yazmaya ilgi duyuyorsanız, bu işe ilgi duyan hemen hemen herkes gibi bazen bir programı daha iyi anlamak, ya da sadece merakınızı gidermek için onun kaynak kodunu incelemişsinizdir. İşte tam burada tersine mühendisliğin en çarpıcı örneklerinden biri geliyor. Phoenix Technologies Ltd. 1980'lerin ortalarında IBMin mülkü olan BIOSun diğer PC'lerle de uyumlu olan bir sürümünü çıkarmak istedi. Ama kodu tamamen kopyalayamayacağı için (illegal olurdu) tersine mühendislikte Çin Seddi ya da Temiz oda da denilen yöntemi kullandılar. Bu yöntemi uygulamak için iki grup insandan yararlanıldı. Birinci grupta IBMin kodunu ve işleyişini anlamak için her bir yapıyı teker teker inceleyerek ikinci gruba herhangi bir kod veya teknik bilgi vermeden anlatan insanlar bulunuyordu. Bunun sonucunda Phoenix, kodu IBMin BIOSundan farklı, ama neredeyse birebir işlem yapan bir BIOS üretti. Kodun bazı bölümleri IBMin koduyla benzer olsa da herhangi bir telif hakkı sorunuyla karşılaşmadılar. Advanced Micro Devices Inc. ve Cyrix Corp. İntelin mikro ilşemcilerini tersine mühendislikle analiz edip çok daha ucuz ve diğer bilgisayarlara da uyumlu çalışan çipler oluşturdular.
Telif hakları savaşlarının heyecanı arasında insanlar ucuz işlemciler sayesinde bilgisayarları daha çok alıyordu ve yepyeni bir pazar oluşuyordu.
Tersine mühendislik uygulamalarının hızlanmasıyla firmalar arası rekabet bir anlamda yaratıcılığı doğuruyor ve tersine mühendisliği hiç olmadığı kadar önemli kılıyor.
Yukarıda açıkladğım biraz daha bilimsel olarak anlattım bana kalırsa Tersine mühendislik Aslında dünyanın en zevkli işi çünkü biri bir yerden yaparken siz alıp daha iyi yerlere götürebiliyorsunuz.
Yakın bir zaman içerisinde'de Tersine mühendislikte kullanın programlar ile ilgili bir yazı paylaşıp nasıl kullana bileceğinizi anlatmayı düşünüyorum Tersine mühendislikte benim Tavsiyem Ollydbg Öğrenip Kullanmaktır
Eğer Konuyu beğendiyseniz Teşekkür etmeyi ve Yorum atıp sorularınızı sormayı unutmayınız.
Tersine mühendisliğin biraz daha derinine inmeden önce tersine mühendislik nedir ondan bahsedelim. Tersine mühendislik temelde bir aygıtın, cihazın ya da sistemin çalışmasını, bağlantılarını ve yapısını anlamak için her parçanın teker teker akılcı analizlerinin yapılması ve çalışma prensiplerinin incelenmesi işidir. Kısacası klasik mühendisliğin yöntemi bütünden genele ulaşmakken tersine mühendislik tekten bütüne ulaşmaya çalışır.
Bir sistemi ters mühendislikle yaratmak dört basamaktan oluşur:
1. Tersine mühendize edilecek olan bileşeni ya da ürünü tanımlamak ve incelemek
2. Ürünün çalışma sistemini ve yöntemini belirlemek.
3. Tersine mühendislikle elde edilen teknik veriyi bir başka benzere uygulamak.
4. Yeni bir ürün üretmek( Tercihe göre piyasaya sürmek.)
Tersine mühendislik pek çok alanda uygulanıyor. Bir aygıtı tam anlamıyla öğrenmek, piyasada olan üründen daha ucuz ve daha uyumlu ürünler yaratmak, farklı işletim sistemlerindeki veriler arasında köprü kurmak ya da arayüz kullanıcı ilişkisini daha etkili yapmak tersine mühendislikle mümkündür. Ayrıca bilgisayar destekli tasarım, bilgisayar destekli üretim gibi alanlarda da tersine mühendislik sıkça kullanılır.
Daha önceleri sadece donanım konularında kullanılabilen tersine mühendislik şimdi veriler, yazılım ve hatta insan DNAsı için bile kullanılabiliyor. Tersine mühendislik yazılım ve donanım için ayrıca bir önem taşıyor. Java ya da C++ dillerinde yazılan programlar diğer programlar tarafından algılanabilir, ancak bu programları bilgisayarda yürütebilmek için derleyici dediğimiz yazılımlara ihtiyaç duyulur. Derleyici(compiler) kodu çoğu programcı için anlaşılmaz olsa da kodu daha insan dostu bir seviyeye getirmek için decompilerlar kullanılabilir.
Tersine mühendislik özellikle bilgisayar biliminde çok önemli bir yere sahiptir. Eğer kod yazmaya ilgi duyuyorsanız, bu işe ilgi duyan hemen hemen herkes gibi bazen bir programı daha iyi anlamak, ya da sadece merakınızı gidermek için onun kaynak kodunu incelemişsinizdir. İşte tam burada tersine mühendisliğin en çarpıcı örneklerinden biri geliyor. Phoenix Technologies Ltd. 1980'lerin ortalarında IBMin mülkü olan BIOSun diğer PC'lerle de uyumlu olan bir sürümünü çıkarmak istedi. Ama kodu tamamen kopyalayamayacağı için (illegal olurdu) tersine mühendislikte Çin Seddi ya da Temiz oda da denilen yöntemi kullandılar. Bu yöntemi uygulamak için iki grup insandan yararlanıldı. Birinci grupta IBMin kodunu ve işleyişini anlamak için her bir yapıyı teker teker inceleyerek ikinci gruba herhangi bir kod veya teknik bilgi vermeden anlatan insanlar bulunuyordu. Bunun sonucunda Phoenix, kodu IBMin BIOSundan farklı, ama neredeyse birebir işlem yapan bir BIOS üretti. Kodun bazı bölümleri IBMin koduyla benzer olsa da herhangi bir telif hakkı sorunuyla karşılaşmadılar. Advanced Micro Devices Inc. ve Cyrix Corp. İntelin mikro ilşemcilerini tersine mühendislikle analiz edip çok daha ucuz ve diğer bilgisayarlara da uyumlu çalışan çipler oluşturdular.
Telif hakları savaşlarının heyecanı arasında insanlar ucuz işlemciler sayesinde bilgisayarları daha çok alıyordu ve yepyeni bir pazar oluşuyordu.
Tersine mühendislik uygulamalarının hızlanmasıyla firmalar arası rekabet bir anlamda yaratıcılığı doğuruyor ve tersine mühendisliği hiç olmadığı kadar önemli kılıyor.
Yukarıda açıkladğım biraz daha bilimsel olarak anlattım bana kalırsa Tersine mühendislik Aslında dünyanın en zevkli işi çünkü biri bir yerden yaparken siz alıp daha iyi yerlere götürebiliyorsunuz.
Yakın bir zaman içerisinde'de Tersine mühendislikte kullanın programlar ile ilgili bir yazı paylaşıp nasıl kullana bileceğinizi anlatmayı düşünüyorum Tersine mühendislikte benim Tavsiyem Ollydbg Öğrenip Kullanmaktır
Eğer Konuyu beğendiyseniz Teşekkür etmeyi ve Yorum atıp sorularınızı sormayı unutmayınız.