SlideShare ist ein Scribd-Unternehmen logo
1 von 56
Reverse Engineering 101
Tersine Mühendislik 101
Tech Talks #02
Mavidurak-IO
Fatih Erdoğan
root@mavidurak-io:~$ whoami
• Intern Security Researcher at SignalSEC
• Reverse Engineering, Exploit Development, low-level stuff
• Penetration Testing
• Sakarya University - Computer Engineering (2014 - …)
• http://ferdogan.net
• twitter.com/FeCassie
• fatiherdogan94@gmail.com
• Member at Mavidurak-IO
Reverse Engineering??
Tersine Mühendislik Nedir?
• Tersine mühendislik basitçe derlenmiş bir binary veya bir exe uzantılı,
yani çalıştırılabilir bir dosyanın nasıl çalıştığını anlamaya yönelik
uygulanan sürece denir. Yapmaya çalıştığımız şey programın nasıl
çalıştığını anlamak, çalışma yapısını çözmeye çalışmaktır.
• Genellikle C, C++, Visual Basic, Delphi gibi diller ile yazılan
programların analizi insan için kolay olur fakat bu diller bilgisayar için
anlaşılır değildir bu nedenle bir takım işlemler sonucunda bu dillerde
yazılan kodlar makinenin anlayabileceği makine diline çevirilir.
Çevrildikten sonraki kodlar insanlar tarafindan zor anlaşılır ve analiz
edilebilmesi için hem zaman hem de bolca beyin gücü gerektirir.
Tersine Mühendislik ile Neler Yapabiliriz?
Neden İhtiyacımız Var?
• Açık kaynak kodlu olmayan yazılımın kaynak kodlarını ortaya çıkarma
• Virüs ve zararlı yazılımları inceleme olanağı
• Programların lisans korumasını atlatma (Cracking) - en yaygın olan :)
• Yazılımların sağlamlığını kontrol etme
• Yazılımlara ek özellikler getirme (Patching vs.)
ReactOS Projesi
• “Açık kaynak kodlu olmayan yazılımın kaynak kodlarını ortaya
çıkarma” maddesine örnek olarak verilebilecek bir proje
• Bu proje bir grup tersine mühendis tarafından, Windows işletim
sisteminin kaynak kodlarının incelenip Windows’a benzer ücretsiz bir
işletim sistemi geliştirme amaçlı uygulanan bir projedir.
http://www.reactos.org
Requirements
Analysis
Design
Implementation
Forward Engineering Reverse Engineering
Software Engineering
Ters Mühendis Hangi Özelliklere Sahip Olmalı?
• Sınırsız merak ve araştırma isteği
• Hayal gücü, yorulmayan gözler :)
• Assembly, C ve Python gibi en az bir scripting dili bilmek
• İşletim sistemleri yapısı, CPU mimarisi, Bilgisayar çalışma mantığı
• Kriptografi
• Anti-Debugging, Anti-Reversing teknikleri
• ….
Analiz/Reversing Çeşitleri
• Statik Analiz/Reversing
• Dinamik Analiz/Reversing
Statik Analiz/Reversing
• Statik program analizi execute etmeden yani programı çalıştırmadan
yapılan yazılım analiz şeklidir.
Dinamik Analiz/Reversing
• Dinamik program analizi ise o an sanal veya gerçek bir process
üzerinde execute olan programa yapılan analizdir.
x86 Mimarisi & Assembly
Temel Aritmetik
mov eax, 5 ; eax=5
mov ebx, 3 ; ebx=3
add eax, ebx ; eax = eax + ebx
sub ebx, 2 ; ebx = ebx -2
Hafıza Erişimi
cmp eax, 2 ; compare eax with 2
je label ; if(eax == 2)
ja label ; if(eax > 2)
jb label ; if(eax < 2)
jbe label ; if(eax <= 2)
jne label ; if(eax != 2)
jmp label ; jump label
Fonksiyon Çağrıları
call function ; store return addr on the stack
; and jump to function!
func:
push esi ; save esi
…
pop esi ; restore esi
ret ; read return addr from the stack
; and jump to it.
Registerlar - 1
• Registerlar ne yapar?
• Lokasyon/konum depolar
• Hafıza konumuna göre daha hızlı erişim olanağı sağlar
• EAX => Değişken değerleri depolar
• EBX => Base index (diziler ile kullanılır)
• ECX => Sayaç register
• EDX => Data
• ESI => String işlemleri için kaynak indexi
Registerlar - 2
• EDI => String işlemleri için hedef indexi
• ESP => Stack Pointer (Stack’in en üst adresi)
• EBP => Base Pointer (Stack’in en alt adresi)
• EIP => Instruction Pointer (Programın o an bulunduğu yer.Bir sonraki
instruction’ın adresini depolar.)
Registerlar - 3
• Segment Registerları
Hafızanın belli segmentlerini adreslemek için kullanılır
(code/data/stack segmentleri)
• CS => Code Segment
• SS => Stack Segment
• ES => Extra Segment
• DS => Data Segment
• FS,GS Segments
32-Bit Registerlar (x86)
Ne tür araçlar kullanacağız?
Tersine Mühendisin Alet Çantası
• Tersine mühendislik yaparken kullandığımız bir takım araçlar var.
Bunlar:
• Disassemblerlar
• Debuggerlar
• PE Editörleri
• Hex-Resource Editörler
• Sistem İzleme Araçları
Disassembler
• Bu yazılımlar, programı disassembly işleminden geçirerek programın
assembly kodu şeklindeki halini gösterir.
• Bu olay bize programda çağırılan fonksiyonları, string değerleri vs.
görüp incelememize olanak sağlar.
• En yaygın olarak kullanılarak disassembler => IDA
IDA Disassembler
IDA - 2
Debugger
• Debuggerlar ile programın çalışmasını satır satır izleyebiliriz.
• Disassembler gibi çalışırlar fakat ek olarak işlemleri izleme imkanımız olur.
• Çoğu zaman cracking, malware analizi, exploit geliştirme aşamalarında kullanılırlar.
• Bir debugger ile programın çalışması esnasında değişiklik yapılabilir.
• En yaygın olarak kullanılan debuggerlar:
• ImmunityDebugger
• OllyDbg
• WinDbg
ImmunityDebugger
OllyDbg
OllyDbg - 2
WinDbg
WinDbg - 2
Örnek WinDbg Komutları
•r: registerların o anki durumunu/içeriğini gösterir
•t: trace-step (until call)
•pt: single-step (until-ret)
•g: process run (go!)
•.hh: yardım komutu (örnek => .hh pt)
•lm: list modules
PE Editörleri
• PE => Portable Executable
• Nedir? => Windows çalıştırılabilir dosya formatı
• Bu programlar PE dosyalarının PE bilgilerini okumak için kullanılır
• Tersine Mühendisliğin en önemli konularından birisidir
==> “PE candır gerisi heyecandır”
• PE dosyaları program ile ilgili kritik bilgileri barındırdığından tersine
mühendislik veya malware analizi yaparken PE ile baya içli dışlı
olacağız :)
PE Editörleri - 2
• Yaygın olarak kullanılan PE Editörleri
• CFF Explorer
• LordPE
• DIE => Detect It Easy
• PeiD
CFF Explorer
LordPE
DIE (Detect It Easy)
PeiD
Hex - Resource Editörler
• Diğerlerine göre çok yaygın değiller
• Basit string düzenlemeleri
• Bayt değiştirmeleri
• Hızlı kod analizi
• …
Hex - Resource Editörler
• Birçok hex-resource editör mevcut
• HxD
• Hex Workshop
• ResEdit
HxD
Hex Workshop
ResEdit
Sistem İzleme Araçları
• Microsoft SysInternal Tools
• Process Explorer
• Process Monitor
• AutoRuns
• TCPView
Process Explorer
Process Monitor
AutoRuns
TCPView
Anti-Debugging??
Anti-Debugging
Anti-Debugging
Nasıl Bypass Ederiz??
Basic Anti-Debugging Bypass
Tersine Mühendislik denilen olay
bu kadar mı??
Tersine Mühendislik-102 Ajanda
• Basic Windows Internals
• PE Dosya Yapısı
• Stack’in içinde neler oluyor?
• Debugging’e giriş. CrackMe çözümü
• Anti-Debugging Örneği
• Windbg’a giriş
Fatih Erdoğan
twitter.com/FeCassie
Mavidurak-IO
http://mavidurak.github.io

Weitere ähnliche Inhalte

Was ist angesagt?

Snort IPS(Intrusion Prevention System) Eğitimi
Snort IPS(Intrusion Prevention System) EğitimiSnort IPS(Intrusion Prevention System) Eğitimi
Snort IPS(Intrusion Prevention System) Eğitimi
BGA Cyber Security
 
Web Uygulamalarında Kaynak Kod Analizi - 1
Web Uygulamalarında Kaynak Kod Analizi - 1Web Uygulamalarında Kaynak Kod Analizi - 1
Web Uygulamalarında Kaynak Kod Analizi - 1
Mehmet Ince
 
Güvenlik Sistemlerini Atlatma ve Alınacak Dersler
Güvenlik Sistemlerini Atlatma  ve Alınacak DerslerGüvenlik Sistemlerini Atlatma  ve Alınacak Dersler
Güvenlik Sistemlerini Atlatma ve Alınacak Dersler
BGA Cyber Security
 

Was ist angesagt? (20)

Zararlı Yazılım Analizi Eğitimi Lab Kitabı
Zararlı Yazılım Analizi Eğitimi Lab KitabıZararlı Yazılım Analizi Eğitimi Lab Kitabı
Zararlı Yazılım Analizi Eğitimi Lab Kitabı
 
Zararlı Yazılım Analizi ve Tespitinde YARA Kullanımı
Zararlı Yazılım Analizi ve Tespitinde YARA KullanımıZararlı Yazılım Analizi ve Tespitinde YARA Kullanımı
Zararlı Yazılım Analizi ve Tespitinde YARA Kullanımı
 
Snort IPS(Intrusion Prevention System) Eğitimi
Snort IPS(Intrusion Prevention System) EğitimiSnort IPS(Intrusion Prevention System) Eğitimi
Snort IPS(Intrusion Prevention System) Eğitimi
 
WAF atlatma yontemleri, Hacktrick14, Suleyman Ozarslan
WAF atlatma yontemleri, Hacktrick14,  Suleyman OzarslanWAF atlatma yontemleri, Hacktrick14,  Suleyman Ozarslan
WAF atlatma yontemleri, Hacktrick14, Suleyman Ozarslan
 
Ofansif ve Defansif Powershell
Ofansif ve Defansif PowershellOfansif ve Defansif Powershell
Ofansif ve Defansif Powershell
 
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-2
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-2BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-2
BTRisk X86 Tersine Mühendislik Eğitim Sunumu - Bölüm-2
 
Sql, Sql Injection ve Sqlmap Kullanımı
Sql, Sql Injection ve Sqlmap KullanımıSql, Sql Injection ve Sqlmap Kullanımı
Sql, Sql Injection ve Sqlmap Kullanımı
 
Zararlı Yazılım Analizi (ÖZET)
Zararlı Yazılım Analizi (ÖZET)Zararlı Yazılım Analizi (ÖZET)
Zararlı Yazılım Analizi (ÖZET)
 
Mobil Pentest Eğitim Dökümanı
Mobil Pentest Eğitim DökümanıMobil Pentest Eğitim Dökümanı
Mobil Pentest Eğitim Dökümanı
 
Web Uygulamalarında Kaynak Kod Analizi - 1
Web Uygulamalarında Kaynak Kod Analizi - 1Web Uygulamalarında Kaynak Kod Analizi - 1
Web Uygulamalarında Kaynak Kod Analizi - 1
 
Log yönetimi ve siem projelerindeki en önemli kriter EPS değerleri
Log yönetimi ve siem projelerindeki en önemli kriter EPS değerleriLog yönetimi ve siem projelerindeki en önemli kriter EPS değerleri
Log yönetimi ve siem projelerindeki en önemli kriter EPS değerleri
 
Beyaz Şapkalı Hacker başlangıç noktası eğitimi
Beyaz Şapkalı Hacker başlangıç noktası eğitimiBeyaz Şapkalı Hacker başlangıç noktası eğitimi
Beyaz Şapkalı Hacker başlangıç noktası eğitimi
 
BTRisk Android Mobil Uygulama Denetimi Eğitimi
BTRisk Android Mobil Uygulama Denetimi EğitimiBTRisk Android Mobil Uygulama Denetimi Eğitimi
BTRisk Android Mobil Uygulama Denetimi Eğitimi
 
Linux Sistem Yönetimi
Linux Sistem YönetimiLinux Sistem Yönetimi
Linux Sistem Yönetimi
 
Nessus Software
Nessus SoftwareNessus Software
Nessus Software
 
Log Yönetimi ve Saldırı Analizi Eğitimi -1
Log Yönetimi ve Saldırı Analizi Eğitimi -1Log Yönetimi ve Saldırı Analizi Eğitimi -1
Log Yönetimi ve Saldırı Analizi Eğitimi -1
 
Hacking'in Mavi Tarafı -2
Hacking'in Mavi Tarafı -2Hacking'in Mavi Tarafı -2
Hacking'in Mavi Tarafı -2
 
Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 1
Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 1Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 1
Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 1
 
Güvenlik Sistemlerini Atlatma ve Alınacak Dersler
Güvenlik Sistemlerini Atlatma  ve Alınacak DerslerGüvenlik Sistemlerini Atlatma  ve Alınacak Dersler
Güvenlik Sistemlerini Atlatma ve Alınacak Dersler
 
Network - Bilgisayar Ağlarına Giriş
Network - Bilgisayar Ağlarına Giriş Network - Bilgisayar Ağlarına Giriş
Network - Bilgisayar Ağlarına Giriş
 

Ähnlich wie Tersine Mühendislik 101

Oracle Golden Gate
Oracle Golden GateOracle Golden Gate
Oracle Golden Gate
Anar Godjaev
 
Metasploit Framework ile Güvenlik Denetimi
Metasploit Framework ile Güvenlik DenetimiMetasploit Framework ile Güvenlik Denetimi
Metasploit Framework ile Güvenlik Denetimi
Fatih Ozavci
 
Başarılı Projelerin Anahtarı: Çevik Yazılım Geliştirme Pratikleri
Başarılı Projelerin Anahtarı: Çevik Yazılım Geliştirme PratikleriBaşarılı Projelerin Anahtarı: Çevik Yazılım Geliştirme Pratikleri
Başarılı Projelerin Anahtarı: Çevik Yazılım Geliştirme Pratikleri
Lemi Orhan Ergin
 
Metasploit framework ile exploit gelistirme 2013 1.5
Metasploit framework ile exploit gelistirme   2013 1.5Metasploit framework ile exploit gelistirme   2013 1.5
Metasploit framework ile exploit gelistirme 2013 1.5
Canberk Bolat
 
Metasploit Framework ile Exploit Gelistirme
Metasploit Framework ile Exploit GelistirmeMetasploit Framework ile Exploit Gelistirme
Metasploit Framework ile Exploit Gelistirme
Fatih Ozavci
 

Ähnlich wie Tersine Mühendislik 101 (20)

Visual Studio Developer Tools
Visual Studio Developer ToolsVisual Studio Developer Tools
Visual Studio Developer Tools
 
Bilgi sis..
Bilgi sis..Bilgi sis..
Bilgi sis..
 
C# 5 Yeni özellikler
C# 5 Yeni özelliklerC# 5 Yeni özellikler
C# 5 Yeni özellikler
 
Ossec - Host Based Saldırı Tespit Sistemi
Ossec - Host Based Saldırı Tespit SistemiOssec - Host Based Saldırı Tespit Sistemi
Ossec - Host Based Saldırı Tespit Sistemi
 
Php projelerinde ci_uygulama
Php projelerinde ci_uygulamaPhp projelerinde ci_uygulama
Php projelerinde ci_uygulama
 
Açık kaynak kodlu uygulamalar ile adli bilişim labaratuarı kurma son
Açık kaynak kodlu uygulamalar ile adli bilişim labaratuarı kurma   sonAçık kaynak kodlu uygulamalar ile adli bilişim labaratuarı kurma   son
Açık kaynak kodlu uygulamalar ile adli bilişim labaratuarı kurma son
 
Selenium
SeleniumSelenium
Selenium
 
Sandbox Atlatma Teknikleri ve Öneriler
Sandbox Atlatma Teknikleri ve ÖnerilerSandbox Atlatma Teknikleri ve Öneriler
Sandbox Atlatma Teknikleri ve Öneriler
 
FPGA ve VHDL Ders - 3
FPGA ve VHDL Ders - 3FPGA ve VHDL Ders - 3
FPGA ve VHDL Ders - 3
 
Jenkins
JenkinsJenkins
Jenkins
 
Oracle Golden Gate
Oracle Golden GateOracle Golden Gate
Oracle Golden Gate
 
Metasploit Framework ile Güvenlik Denetimi
Metasploit Framework ile Güvenlik DenetimiMetasploit Framework ile Güvenlik Denetimi
Metasploit Framework ile Güvenlik Denetimi
 
Başarılı Projelerin Anahtarı: Çevik Yazılım Geliştirme Pratikleri
Başarılı Projelerin Anahtarı: Çevik Yazılım Geliştirme PratikleriBaşarılı Projelerin Anahtarı: Çevik Yazılım Geliştirme Pratikleri
Başarılı Projelerin Anahtarı: Çevik Yazılım Geliştirme Pratikleri
 
Kod Kalitesinin Sürekli Denetimi: SonarQube
Kod Kalitesinin Sürekli Denetimi: SonarQubeKod Kalitesinin Sürekli Denetimi: SonarQube
Kod Kalitesinin Sürekli Denetimi: SonarQube
 
Log yonetimi tecrubeleri
Log yonetimi tecrubeleriLog yonetimi tecrubeleri
Log yonetimi tecrubeleri
 
Devfest Istanbul 2015 Sunumu
Devfest Istanbul 2015 SunumuDevfest Istanbul 2015 Sunumu
Devfest Istanbul 2015 Sunumu
 
Android mimari-cekirdek-binding-scheduler
Android mimari-cekirdek-binding-schedulerAndroid mimari-cekirdek-binding-scheduler
Android mimari-cekirdek-binding-scheduler
 
JVM Tuning and Monitoring, JVM Languages, IDE
JVM Tuning and Monitoring, JVM Languages, IDEJVM Tuning and Monitoring, JVM Languages, IDE
JVM Tuning and Monitoring, JVM Languages, IDE
 
Metasploit framework ile exploit gelistirme 2013 1.5
Metasploit framework ile exploit gelistirme   2013 1.5Metasploit framework ile exploit gelistirme   2013 1.5
Metasploit framework ile exploit gelistirme 2013 1.5
 
Metasploit Framework ile Exploit Gelistirme
Metasploit Framework ile Exploit GelistirmeMetasploit Framework ile Exploit Gelistirme
Metasploit Framework ile Exploit Gelistirme
 

Tersine Mühendislik 101

  • 1. Reverse Engineering 101 Tersine Mühendislik 101 Tech Talks #02 Mavidurak-IO Fatih Erdoğan
  • 2. root@mavidurak-io:~$ whoami • Intern Security Researcher at SignalSEC • Reverse Engineering, Exploit Development, low-level stuff • Penetration Testing • Sakarya University - Computer Engineering (2014 - …) • http://ferdogan.net • twitter.com/FeCassie • fatiherdogan94@gmail.com • Member at Mavidurak-IO
  • 4. Tersine Mühendislik Nedir? • Tersine mühendislik basitçe derlenmiş bir binary veya bir exe uzantılı, yani çalıştırılabilir bir dosyanın nasıl çalıştığını anlamaya yönelik uygulanan sürece denir. Yapmaya çalıştığımız şey programın nasıl çalıştığını anlamak, çalışma yapısını çözmeye çalışmaktır. • Genellikle C, C++, Visual Basic, Delphi gibi diller ile yazılan programların analizi insan için kolay olur fakat bu diller bilgisayar için anlaşılır değildir bu nedenle bir takım işlemler sonucunda bu dillerde yazılan kodlar makinenin anlayabileceği makine diline çevirilir. Çevrildikten sonraki kodlar insanlar tarafindan zor anlaşılır ve analiz edilebilmesi için hem zaman hem de bolca beyin gücü gerektirir.
  • 5. Tersine Mühendislik ile Neler Yapabiliriz? Neden İhtiyacımız Var? • Açık kaynak kodlu olmayan yazılımın kaynak kodlarını ortaya çıkarma • Virüs ve zararlı yazılımları inceleme olanağı • Programların lisans korumasını atlatma (Cracking) - en yaygın olan :) • Yazılımların sağlamlığını kontrol etme • Yazılımlara ek özellikler getirme (Patching vs.)
  • 6. ReactOS Projesi • “Açık kaynak kodlu olmayan yazılımın kaynak kodlarını ortaya çıkarma” maddesine örnek olarak verilebilecek bir proje • Bu proje bir grup tersine mühendis tarafından, Windows işletim sisteminin kaynak kodlarının incelenip Windows’a benzer ücretsiz bir işletim sistemi geliştirme amaçlı uygulanan bir projedir.
  • 9. Ters Mühendis Hangi Özelliklere Sahip Olmalı? • Sınırsız merak ve araştırma isteği • Hayal gücü, yorulmayan gözler :) • Assembly, C ve Python gibi en az bir scripting dili bilmek • İşletim sistemleri yapısı, CPU mimarisi, Bilgisayar çalışma mantığı • Kriptografi • Anti-Debugging, Anti-Reversing teknikleri • ….
  • 10. Analiz/Reversing Çeşitleri • Statik Analiz/Reversing • Dinamik Analiz/Reversing
  • 11. Statik Analiz/Reversing • Statik program analizi execute etmeden yani programı çalıştırmadan yapılan yazılım analiz şeklidir.
  • 12. Dinamik Analiz/Reversing • Dinamik program analizi ise o an sanal veya gerçek bir process üzerinde execute olan programa yapılan analizdir.
  • 13. x86 Mimarisi & Assembly
  • 14. Temel Aritmetik mov eax, 5 ; eax=5 mov ebx, 3 ; ebx=3 add eax, ebx ; eax = eax + ebx sub ebx, 2 ; ebx = ebx -2
  • 15. Hafıza Erişimi cmp eax, 2 ; compare eax with 2 je label ; if(eax == 2) ja label ; if(eax > 2) jb label ; if(eax < 2) jbe label ; if(eax <= 2) jne label ; if(eax != 2) jmp label ; jump label
  • 16. Fonksiyon Çağrıları call function ; store return addr on the stack ; and jump to function! func: push esi ; save esi … pop esi ; restore esi ret ; read return addr from the stack ; and jump to it.
  • 17. Registerlar - 1 • Registerlar ne yapar? • Lokasyon/konum depolar • Hafıza konumuna göre daha hızlı erişim olanağı sağlar • EAX => Değişken değerleri depolar • EBX => Base index (diziler ile kullanılır) • ECX => Sayaç register • EDX => Data • ESI => String işlemleri için kaynak indexi
  • 18. Registerlar - 2 • EDI => String işlemleri için hedef indexi • ESP => Stack Pointer (Stack’in en üst adresi) • EBP => Base Pointer (Stack’in en alt adresi) • EIP => Instruction Pointer (Programın o an bulunduğu yer.Bir sonraki instruction’ın adresini depolar.)
  • 19. Registerlar - 3 • Segment Registerları Hafızanın belli segmentlerini adreslemek için kullanılır (code/data/stack segmentleri) • CS => Code Segment • SS => Stack Segment • ES => Extra Segment • DS => Data Segment • FS,GS Segments
  • 21. Ne tür araçlar kullanacağız?
  • 22. Tersine Mühendisin Alet Çantası • Tersine mühendislik yaparken kullandığımız bir takım araçlar var. Bunlar: • Disassemblerlar • Debuggerlar • PE Editörleri • Hex-Resource Editörler • Sistem İzleme Araçları
  • 23. Disassembler • Bu yazılımlar, programı disassembly işleminden geçirerek programın assembly kodu şeklindeki halini gösterir. • Bu olay bize programda çağırılan fonksiyonları, string değerleri vs. görüp incelememize olanak sağlar. • En yaygın olarak kullanılarak disassembler => IDA
  • 26. Debugger • Debuggerlar ile programın çalışmasını satır satır izleyebiliriz. • Disassembler gibi çalışırlar fakat ek olarak işlemleri izleme imkanımız olur. • Çoğu zaman cracking, malware analizi, exploit geliştirme aşamalarında kullanılırlar. • Bir debugger ile programın çalışması esnasında değişiklik yapılabilir. • En yaygın olarak kullanılan debuggerlar: • ImmunityDebugger • OllyDbg • WinDbg
  • 32. Örnek WinDbg Komutları •r: registerların o anki durumunu/içeriğini gösterir •t: trace-step (until call) •pt: single-step (until-ret) •g: process run (go!) •.hh: yardım komutu (örnek => .hh pt) •lm: list modules
  • 33. PE Editörleri • PE => Portable Executable • Nedir? => Windows çalıştırılabilir dosya formatı • Bu programlar PE dosyalarının PE bilgilerini okumak için kullanılır • Tersine Mühendisliğin en önemli konularından birisidir ==> “PE candır gerisi heyecandır” • PE dosyaları program ile ilgili kritik bilgileri barındırdığından tersine mühendislik veya malware analizi yaparken PE ile baya içli dışlı olacağız :)
  • 34. PE Editörleri - 2 • Yaygın olarak kullanılan PE Editörleri • CFF Explorer • LordPE • DIE => Detect It Easy • PeiD
  • 37. DIE (Detect It Easy)
  • 38. PeiD
  • 39. Hex - Resource Editörler • Diğerlerine göre çok yaygın değiller • Basit string düzenlemeleri • Bayt değiştirmeleri • Hızlı kod analizi • …
  • 40. Hex - Resource Editörler • Birçok hex-resource editör mevcut • HxD • Hex Workshop • ResEdit
  • 41. HxD
  • 44. Sistem İzleme Araçları • Microsoft SysInternal Tools • Process Explorer • Process Monitor • AutoRuns • TCPView
  • 54. Tersine Mühendislik denilen olay bu kadar mı??
  • 55. Tersine Mühendislik-102 Ajanda • Basic Windows Internals • PE Dosya Yapısı • Stack’in içinde neler oluyor? • Debugging’e giriş. CrackMe çözümü • Anti-Debugging Örneği • Windbg’a giriş