INTERNATIONAL SCIENTIFIC RESEARCH CONGRESS DEDICATED TO THE 30TH ANNIVERSARY OF BAKU EURASIA UNIVERSITY, Baku, Azerbaycan, 27 - 28 Nisan 2022, ss.391-397
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.
Hata ayıklayıcılar, yazılımlarda tersine mühendislik sürecinde kullanılan en yaygın araçlardır.
Hata ayıklamayı önleme, hedef dosyada tersine mühendisliği ve hata ayıklama
girişimlerini engelleyen bir veya daha fazla yöntemin uygulanmasıdır. Bu yöntemler
geliştiriciler tarafından programlarının kırılmaması ve tersine mühendislik yöntemleri ile
incelenmemesi için kullanılmaktadır. Bilgisayar korsanları ise geliştirdikleri kötü amaçlı
yazılımları daha karmaşık bir hale getirmek ve kötü amaçlı yazılımların tersine mühendislik
yöntemleri ile analizlerinin yapılmasını zorlaştırmak için kullanmaktadır.
Bu makale hata ayıklamayı önleme yöntemlerini ve hata ayıklayıcı kullanarak bu
yöntemlerin nasıl aşılacağını açıklamaktadır. Yazılım geliştiricileri hata ayıklamayı önleme
yöntemlerini uygulamak için anlatılan kavramları anlayabilmeli ve örneklerde sağlanan
kaynak kodları kendi yazılımlarına farklı şekillerde entegre ederek kolayca kullanabilmelidir.
Tersine mühendislik ile uğraşanlar ise hata ayıklamayı önleme yöntemleri ve bu yöntemlerin
nasıl aşılacağı hakkında bilgi sahibi olmalı ve tersine mühendislik sürecinde bu makalede
öğrendiklerini uygulayabilmelidir.
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.Debuggers are the most common tools used
in the reverse engineering process of software.
Anti-debugging is the implementation of one or more methods in the target file that
prevent reverse engineering and debugging attempts. These methods are used by developers
to ensure that their programs are not cracked and are not analyzed by reverse engineering
methods using a debugger. These methods are used by developers to ensure that their
programs are not cracked and are not examined by reverse engineering methods. Hackers, on
the other hand, use these techniques to complicate the malware they develop and make it
difficult to analyze with reverse engineering techniques.
This article explains anti-debugging techniques and how to defeat them using a
debugger. Software developers should be able to understand the concepts described to
implement anti-debugging techniques and easily use the source codes provided in the
examples by integrating them into their own software in different ways. Those who are
engaged in reverse engineering should have knowledge of anti-debugging techniques and how
to overcome these techniques and be able to apply what they learned in this article during the
reverse engineering process.