WEBVTT

00:00.410 --> 00:02.480
Merhaba ve tekrar hoş geldiniz.

00:02.780 --> 00:10.940
Bu derste, Ghidra'yı kullanarak bu şeyin nasıl paketlendiğini araştırmaya çalışacağız ve ardından nasıl açılacağına

00:10.940 --> 00:13.370
dair bir fikir edineceğiz.

00:14.240 --> 00:16.820
O yüzden devam edin ve Ghidra'nızı fırlatın.

00:23.630 --> 00:25.580
Yeni bir proje oluşturalım.

00:28.840 --> 00:29.790
Paylaşımsız.

00:29.830 --> 00:31.210
İleri'ye tıklayın.

00:31.900 --> 00:35.290
Masaüstüne gitmek için üç noktaya tıklayın.

00:36.010 --> 00:43.300
Kötü amaçlı yazılımı içeren klasörü seçin ve ona bir ad verin.

00:43.810 --> 00:44.800
Simda diyelim.

00:46.630 --> 00:47.920
Son'a tıklayın.

00:52.550 --> 00:59.120
Ardından, Simda kötü amaçlı yazılımını aynı klasöre sürükleyin.

01:05.110 --> 01:08.530
Bir PE yürütülebilir dosyası olarak tanımladı.

01:08.680 --> 01:10.150
Tamam'a tıklayın.

01:18.620 --> 01:22.130
Her ikisini de işaretleyin ve Erişime İzin Ver'e tıklayın.

01:24.980 --> 01:26.810
Ve ardından Tamam'a tıklayın.

01:28.740 --> 01:33.780
Ardından, Simda kötü amaçlı yazılımını kod tarayıcısına sürükleyin.

01:41.260 --> 01:46.860
Analiz edilmediğini söylüyor ve analiz etmek isteyip istemediğinizi soruyor.

01:46.870 --> 01:48.130
Evet'e tıklayın.

01:52.260 --> 01:58.470
Derleyici Parametre Kimliğini kontrol ettiğinizden emin olun, aşağı kaydırın ve PDB'yi kontrol edin.

01:59.940 --> 02:02.850
Aşağı kaydırın ve Windows WindowsPE x86 PE Propagate

02:02.880 --> 02:07.920
External Parameters seçeneğini işaretleyin ve Analyze seçeneğine tıklayın.

02:09.630 --> 02:17.670
Ardından analizin durumu ve ilerleyişi için sağ alt köşeye göz atın.

02:17.880 --> 02:23.340
Birkaç dakika sürebilir, bu yüzden videoyu duraklatacağım ve bittiğinde geri geleceğim.

02:26.630 --> 02:28.860
Bunu kapatmak için Tamam'a tıklamanız yeterlidir.

02:29.880 --> 02:31.710
Ve şimdi tamamlandı.

02:32.040 --> 02:39.180
Şimdi, içe aktarmalara bir göz atarsanız, çok az işlev bulacaksınız, bu da daha önceki bulgularımızı

02:39.180 --> 02:42.480
doğruluyor, çünkü çok az işlev var, bu muhtemelen

02:42.510 --> 02:44.340
paketlenmiş.

02:45.000 --> 02:47.340
Şimdi girişe, giriş noktasına

02:47.690 --> 02:48.660
gidelim.

02:53.720 --> 02:58.400
Bundan önce, tercihlerimizi, Araç Seçeneklerini düzenleyeceğiz.

02:59.770 --> 03:01.510
Listeleme Alanlarımız için

03:01.510 --> 03:04.210
İmleç Metin Vurgulaması yapmak istiyoruz.

03:04.810 --> 03:06.520
Sol Fare Tıklaması.

03:06.750 --> 03:07.540
Uygula'ya tıklayın.

03:10.310 --> 03:12.260
Yani burası giriş noktası.

03:14.260 --> 03:20.350
Ve sonra bu fonksiyonun geri dönüşüne doğru ilerlerseniz, bazı anormal

03:21.730 --> 03:24.580
geri dönüşler fark edeceksiniz.

03:26.320 --> 03:28.600
Emekli olmadan hemen önce bir itme.

03:29.200 --> 03:30.340
Burada bir tane daha var.

03:30.370 --> 03:32.260
Retten hemen önce itin ve böyle devam edin.

03:32.680 --> 03:35.440
Sahte getiri ile kastettiğimiz budur.

03:35.650 --> 03:41.920
Yani yaptığı şey, bunu yığına itmek ve sonra bu adrese geri dönmektir.

03:42.580 --> 03:49.810
Şimdi buraya atlar ve bunu çalıştırırsak, bu şey yine bunu yığına iter ve sonra geri döndüğünde, yığının

03:49.810 --> 03:54.220
en üstünde ne varsa ona geri döner, ki bu aslında budur.

03:54.640 --> 03:57.940
Ve yine, burada bunu yığına iter ve sonra

03:57.940 --> 04:03.130
geri döndüğünde, aslında burada olan buna da geri döner.

04:03.490 --> 04:13.030
Şimdi, epilogun bu standart dışı yolu nedeniyle, bu şey Ghidra tarafından sökülmedi.

04:13.660 --> 04:16.960
Yani bu tam bir işlev değildir.

04:17.230 --> 04:24.850
Dolayısıyla, işlevi tamamlamak üzere yeniden yapılandırmaya çalışmak için Ghidra'ya dışarıda bırakılan bu parçayı

04:24.850 --> 04:27.190
sökmesini söyleyebiliriz.

04:27.640 --> 04:34.810
Bu yüzden buna sağ tıklayıp Parçalara Ayır'a tıklamamız gerekiyor ve Ghidra tüm bunları bizim için bir araya getirecek.

04:37.000 --> 04:44.920
Yapmak istediğimiz bir sonraki şey, tüm bunları NOP'lamak ve ardından yeni sökülen bölgeyi dahil etmek için tüm

04:44.920 --> 04:47.320
işlevi yeniden oluşturmaktır.

04:47.680 --> 04:57.000
Bunu yapmak için, tüm bunları seçip sağ tıklayabilir ve ardından Kod Baytlarını Temizleyebiliriz.

05:00.050 --> 05:05.750
Şimdi hex editörüne gidebilir ve tüm bunları NOP yapabiliriz.

05:06.710 --> 05:14.900
Burada Pencereyi seçiyoruz ve Bytes'ı seçiyoruz, bu da hex editörünü açacak.

05:16.550 --> 05:21.530
Ve şimdi, tüm bunlara atıfta bulunan 6898 ve benzeri tüm bu baytları NOP

05:21.530 --> 05:27.200
yapmak için, düzenlemeyi etkinleştirmek üzere bu simgeye tıklayacağız.

05:28.090 --> 05:31.990
Sonra da buraya gelip NOP yapabiliriz.

05:32.560 --> 05:39.220
Ve NOP yaptığınızda, NOP onaltılık olarak 0x90'dır, 90 işlem yok anlamına gelir.

05:39.220 --> 05:43.330
Bu, bu adreslerde hiçbir şeyin yürütülmesini istemediğimiz anlamına gelir.

05:43.900 --> 05:49.480
Bu yüzden tekrar tekrar 9090 yazmaya devam ediyoruz ve siz 9090 yazdıkça

05:49.480 --> 05:53.710
bunların her biri değişikliği yansıtacaktır.

05:53.710 --> 05:59.560
Bu yüzden, NOP ya da işlem yok olarak da bilinen tüm bu 90'ları, buradaki son C3 baytına

05:59.560 --> 06:01.360
kadar ekleyeceğiz.

06:01.600 --> 06:03.460
Bunu yapmaya devam edelim.

06:22.660 --> 06:23.800
Ve sonuncusu.

06:24.520 --> 06:30.070
Şimdi tüm bunları NOP'ladığımıza göre, tekrar kilitleyebiliriz.

06:30.220 --> 06:39.850
Ve şimdi kodun bu kısmını onararak Ghidra'ya işlevi, henüz parçalarına ayrılmış olan alt bölümü de içerecek şekilde

06:39.850 --> 06:43.840
yeniden oluşturmasını söyleyebiliriz.

06:43.990 --> 06:51.760
Bunu yapmak için, burada üstte bir yeri seçiyoruz ve ardından sağ tıklayıp Akışı Temizle ve Onar'ı

06:51.760 --> 06:52.900
seçiyoruz.

06:53.890 --> 06:56.250
Ve sonra varsayılan olarak Akışı Onar.

06:56.260 --> 06:57.010
Sadece Tamam'a

06:57.010 --> 06:57.550
tıklayın.

07:00.590 --> 07:07.790
Tamam, şimdi Ghidra gördüğünüz gibi talimatların bu yeni bölümünü içerecek şekilde şeyi yeniden

07:07.790 --> 07:14.120
oluşturdu ve biz de değişikliği yansıtmak için yeni bir fonksiyon oluşturacağız.

07:14.270 --> 07:22.310
Böylece burada artık size tam olarak orijinal işlevi gösteren yeni bir işlev olduğunu görebiliriz.

07:22.760 --> 07:29.720
Şimdi buradaki sonuncuya tıklayabilir, geri dönebilir ve daha fazla anormal sahte geri dönüş olup olmadığına bakabiliriz.

07:32.620 --> 07:38.680
Şimdi, burada en alta bakarsanız, anormal bir itme ve geri dönüş göreceksiniz.

07:39.430 --> 07:45.070
Dolayısıyla bu durum, daha yapılacak çok şey olduğunu gösteriyor.

07:45.100 --> 07:51.070
Bunu burada izleyebiliriz, 0x401130.

07:51.070 --> 07:58.300
Görünüşe göre buradaki satırda bu adres bir yazmaca itiliyor.

07:59.710 --> 08:05.290
Böylece EAX'a taşınır ve ardından EAX'taki değer yığına itilir.

08:05.620 --> 08:09.640
Şimdi bunu çift tıklayarak geriye doğru izlersek, fonksiyona

08:11.550 --> 08:14.790
gidebilir ve orada neler olduğunu görebiliriz.

08:15.420 --> 08:18.120
Ve eğer aşağıya doğru inersek,

08:20.660 --> 08:23.360
burada da göreceksiniz, burada

08:24.750 --> 08:26.520
anormal bir sıçrama

08:30.970 --> 08:31.660
var.

08:32.200 --> 08:33.070
Bunu gördün mü?

08:33.430 --> 08:35.920
Bu da, bu gecikmeye asla ulaşılamayacağı anlamına gelir.

08:35.950 --> 08:43.030
ECX'i iter ve doğrudan 0x401167'ye atlar, bu da burada ret'in kendisidir.

08:43.750 --> 08:47.260
Yani bu da beklenmedik bir sıçrama.

08:47.260 --> 08:48.940
Peki ECX'in içinde ne var?

08:49.020 --> 08:49.740
ECX.

08:50.020 --> 08:55.260
ECX'i buradan takip ederseniz, ECX'i seçebilirsiniz ve sizin için vurgulanır.

08:55.270 --> 08:59.930
Bu da ECX'e gönderilen verinin adresidir.

08:59.950 --> 09:05.440
Şimdi bunun üzerine çift tıklayarak izini sürüyoruz ve burada tanımsız olduğunu görüyoruz.

09:06.100 --> 09:06.640
Tamam.

09:06.640 --> 09:10.190
Önceki konuma geri dönmek için tıklayalım.

09:10.210 --> 09:18.670
Dolayısıyla, burada ECX'e tam olarak neyin itildiğini bilmek için bir hata ayıklayıcı kullanmamız gerekir.

09:18.700 --> 09:26.050
Bu, burada bir yere bir kesme noktası koymamız ve ardından hata ayıklayıcının bu noktaya kadar çalışmasına izin vermemiz gerektiği anlamına gelir.

09:26.050 --> 09:33.580
O zaman ECX'in değerinin ne olduğunu ve orada gerçekte neyin paketinden çıkarılmaya çalışıldığını araştırabiliriz.

09:33.590 --> 09:36.350
Ve muhtemelen orada bir kabuk kodu bulacağız.

09:36.590 --> 09:39.230
Bunu bir sonraki derste yapacağız.

09:39.260 --> 09:40.820
İzlediğiniz için teşekkürler.
