Editörler Prof. Dr. Şeref Sağıroğlu Prof. Dr. Mustafa Alkan Sağıroğlu / Alkan grafik


) İleri düzey (gelişmiş) statik analiz



Yüklə 3,91 Mb.
Pdf görüntüsü
səhifə132/219
tarix20.11.2023
ölçüsü3,91 Mb.
#163459
1   ...   128   129   130   131   132   133   134   135   ...   219
siber-guvenlik-kitap-basila-04-01-2019

2) İleri düzey (gelişmiş) statik analiz: İleri düzey statik analizde 
program komutları detaylı incelenerek analiz yapılmaktadır. Bil-
gisayar komutları bilgisayar işlemcisi tarafından sırasıyla yürütü-
len adımlar olarak tanımlanabilir ve farklı soyutlama seviyelerin-
de bulunabilmektedir: Makine kodu (Opcodes), “assembly” dili 
(en düşük okunabilir soyutlama seviyesi) ve yüksek seviyeli diller 
“C”, “C++”, “Java”, vb. Program kodlarının çalıştırılabilmesi için 
yüksek seviyeli dillerden makine seviyesi dillere çevrilmesi ge-
rekmektedir ve derleme olarak adlandırılmaktadır (Şekil 8.4). Di-
ğer taraftan program komutlarının analiz edilebilmesi için makine 
seviyesi kodlarının daha üst düzey seviye dillere dönüştürülmesi 
gerekmektedir. Yani tersine derleme yapılmaktadır. Makine kodla-
rının “assembly” diline çevrilmesi ayırma (Disassembly), daha dü-
şük seviyeli bir koddan yüksek seviyeli dile çevrilmesi ters derleme 
(Decompilation) olarak adlandırılmaktadır. Tersine derleme sonucu 
elde edilen kodlar kullanılarak belirli özellikler elde edilmekte ve bu 
özelikler yorumlanarak ileri düzey statik analiz yapılmaktadır. Ter-
sine derleme sırasında bazı bilgi kayıpları olduğundan (Assembly 
dilinden C, C++, vb. yüksek dereceli dillere çevrilirken) üst seviye 
kaynak kodları elde etmek nerdeyse imkansızdır ve bundan dola-
yı genelde “assembly” seviyesindeki diller ileri düzey statik analiz 
için kullanılmaktadır. Şekil 8.7, “IDA Pro” kullanarak ileri düzey 
statik analiz sonucunu göstermektedir. 


R E F I K S A M E T - Ö M E R A S L A N
240
Şekil 8.7. “IDA Pro” kullanarak program analizi (Analiz sonuçları kısaltılarak 
verilmiştir)
Program kodları paket ayırıcı (Disassembler) “IDA Pro” kullana-
rak makine kodundan “assembly” diline dönüştürülmüştür. Şekil 
8.7’de görüleceği üzere sırasıyla kullanılan yazmaçlar (register), ara 
değerler, hafıza adresleri, vb. görülmektedir. Örneğin, “mov ebx, 
[esp+4+arg_4]” komutu “[esp+4+arg_4]” işlemi sonucunda elde edi-
len bellek konumundan 4 baytlık bilgiyi “ebx” yazmacına kopya-
lamaktadır (Şekil 8.7). Burda amaç “assembly” kodları incelenerek 
analiz edilen kodun ne yapmaya çalıştığını belirlemektir. Örneğin, 
belirlenen adreste hangi “DNS” istekleri yapılmış, hangi alt yordam 
da kaç yerel değişken kullanılmış, “DllMain” kaç Windows API me-
todunu doğrudan çağırmış, “Sleep” metodu kullanıldığında prog-
ram ne kadar süre uyumuş, vb. bilgiler ileri düzey statik analizle 
elde edilebilir.

Yüklə 3,91 Mb.

Dostları ilə paylaş:
1   ...   128   129   130   131   132   133   134   135   ...   219




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin