Tersine mühendislik yöntemlerini kullanarak .net çevrelerinde kaynak koda dönüşüm ve dosya sistemi işlemlerinin kontrolü
Convert program in writing .net to source code with using reverse engineering methods
Yazar: SALİH ARAS
Danışman: YRD. DOÇ. DR. HÜSEYİN PEHLİVAN
Karadeniz Teknik Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Bölümü / Bilgisayar Mühendisliği Ana Bilim Dalı / Yazılım Mühendisliği Bilim Dalı
Derece: Yüksek Lisans, 2008
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control

Özet:
Tersine mühendislik (Reverse Engineering, RE) bir aygıtın, objenin veya sistemin;yapısının, işlevinin ve ya çalışmasının, çıkarımcı bir akıl yürütme analiziyle keşfedilmesiişlemidir. Bu yöntem, genellikle orijinalinden kopyalamadan onunla aynı şeyi yapan yenibir alet veya yazılım yapmaya çalışır ve sıklıkla bir şeylerin (örneğin; makine veyamekanik alet, elektronik komponent, yazılım programı gibi) parçalarına ayrılması veçalışma prensiplerinin detaylı şekilde analizini içerir. Tersine mühendislik, sıklıkla, diğermilletlerin teknolojilerini, aletlerini, bilgilerini veya açık arazilerde muvazzaf skerlertarafından toplanan ve ya haberalma operasyonlarıyla toplanan bilgi parçalarınıkopyalamak için, ordu tarafından sık sık kullanılır.Yazılım dünyasında ise tersine mühendisliğin önemi algoritmalarda ve karmaşıksistemlerde ortaya çıkmaktadır. Örneğin, bir problem için güzel bir yöntem geliştirilerekprogram koduna dönüştürülmüş olabilir. Bu yöntemi elde etmek için genel olarak üçseçenek mevcuttur. Birincisi problemi çözmek ki çok uzun zaman alabilir veya sonuçvermeyebilir. İkincisi programa sürekli veriler vererek çıkışı gözlemlemek ve bu çıkışdeğerlerine göre problemin çözümü hakkında fikir sahibi olmaktır. Bu yöntem de sonuçvermeyebilir. Üçüncüsü ise programı kaynak koda döküp problemin nasıl çözüldüğünüanlamaktır. İşte tersine mühendisliğin yazılım dünyasında önemi burada ortayaçıkmaktadır.

Abstract:
Reverse Engineering (RE) is the process of discovering the technological principlesof a device, object or system through analysis of its structure, function and operation. Itoften involves taking something (e.g. a mechanical device, electronic component, orsoftware program) apart and analyzing its workings in detail, usually to try to make a newdevice or program that does the same thing without copying anything from the original.Reverse engineering is often used by military in order to copy other nations' technology,devices or information, or parts of which, have been obtained by regular troops in thefields or by intelligence operations.In software world, the importance of reverse enginneering occurs in algorihtms andcomplex systems. For example, suppose that a good method is discovered andprogrammed for a particular problem. In general, there are three alternative ways toacquire the method. One way is to try to solve the problem, which can take long time orcan?t be solved. The second one is to give various data to program and to observe theoutput. This output may give an idea in identifying the method. But it also results in nosolution all the time. This method also can?t solve the problem. The last one is tounderstand how the problem is solved converting the program to source code. That is whyreverse enginnering is very important in the software world.