Tersine mühendislik yöntemleri ve bilgisayar uygulamaları analizi
Reverse engineering methods and computer applications analysis
Yazar: GÜNEY UĞURLU
Danışman: DR. ÖĞR. ÜYESİ KORAY AÇICI
Başkent Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı / Bilgisayar Mühendisliği Bilim Dalı
Derece: Yüksek Lisans, 2022
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control
Dizin: Arayüzler = Interfaces ; Hata ayıklama = Debugging ; Tersine mühendislik = Reverse engineering ; Windows işletim sistemleri = Windows operating systems

Özet:
Tersine mühendislik, ticari veya askeri avantaj için donanım ve yazılım analizine dayanmaktadır. Tersine mühendislik süreci, eserin orijinal üretimlerinde yer alan prosedürler hakkında çok az veya hiç ek bilgisi olmayan ürünlerden tasarım özelliklerini çıkarmak için yapılan bir analizin yanı sıra kendi içinde bir kopya oluşturmak ya da eseri bir şekilde değiştirmekle ilgilidir. Yazılımlarda tersine mühendislik, bir sistemi veya bir sistemin parçalarını alma ve bunların işlevselliğini ve tasarımını analiz etme sürecidir. Bir sistemin parçalarını daha yüksek bir soyutlama düzeyinde analiz etmenin ve yeniden yapılandırmanın bir yolu olarak tersine mühendisliğe başvurulur. Ancak, tersine mühendislik bundan daha fazlası için kullanılır. Yeni bir tür kötü amaçlı yazılımın ortaya çıktığını var sayarsak, kaynak kodu bilinmeyen yeni tehditlere karşı önlemlerin alınabilmesi için kötü amaçlı yazılımın içeriğini analiz etmek, nasıl çalıştığını anlamak ve aynı zamanda fikri mülkiyeti kötü niyetli kişilere karşı korumak için tersine mühendislik tekniklerine ve becerilerine ihtiyaç duyulur. Ayrıca tersine mühendislik yöntemlerini ve yaklaşımlarını bilmek yazılım korsanlığına karşı daha etkili yöntemler ortaya koymak için çok önemlidir.  Tezin amacı, tersine mühendislik yöntemleri ve bu yöntemlerin nasıl aşılacağı hakkında bilgi vermeyi amaçlamıştır. X86 platformu ve assembly dili, taşınabilir yürütülebilir dosya formatı, Windows uygulama programlama arayüzü, hata ayıklamayı önleme ve bu yöntemleri aşma, paketleyiciler ve paketten çıkarma teknikleri gibi tersine mühendislik için önemli olan konulara değinilmiş ve yapılan çalışmalarda uygulamalı olarak gösterilmiştir.

Abstract:
Reverse engineering relies on hardware and software analysis for commercial or military advantage. The reverse engineering process is about creating a copy in itself or modifying the work in some way, as well as an analysis to extract design features from products that have little or no additional knowledge of the procedures involved in their original production. Reverse engineering of softwares is the process of taking a system or parts of a system and analyzing their functionality and design. Reverse engineering is resorted to as a way to analyze and reconstruct parts of a system at a higher level of abstraction. However, reverse engineering is used for more than that. Assuming that you have emerged a new kind of malware, reverse engineering techniques and skills are needed to analyze the content of malware, understand how it works, and at the same time protect intellectual property against malicious individuals, so that countermeasures against new threats, the source code of which are unknown, can be taken. In addition, knowing the reverse engineering methods and approaches is very important to come up with more effective methods against software piracy. The aim of the thesis is to give information about reverse engineering methods and how to overcome these methods. The important issues for reverse engineering such as x86 platform and assembly language, portable executable file format, Windows application programming interface, anti-debugging and bypassing these methods, packers and unpacking techniques are mentioned and shown in practice in the studies.