Öncelikle kodlar C# değil VB.NET ile yazılmış -çağ öncesi bir dil her neyse-. Kod zaten stub halinde verilmiş bu kodu ya kendi encryptor yazılımınızın içine sokacaksınız ya da stub server bağlantısı ile otomatize bir hale dökeceksiniz. Bazı satırların özellikle % ifadeleri ve yorum satırları ile yazılmasının sebebi bu. En baştaki AntiVM işlemini açıklamaya gerek olduğunu düşünmüyorum. Onun öncesinde yine % ifadeleri ile yazılmış AntiSandboxie olduğunu görüyorsunuz fakat içerde onunla alakalı bir kod yok. İşte bunun anlamı adamın stub kodu olduğu yani bunu otomatikleştirmiş olabilir bir yerde. '%Startup% satırlarından kastı registry keyini düzelterek kendini başlangıca ekliyor.
Zaten az çok bakmışsanız asıl olayın HandleRun() fonksiyonunda döndüğünü anlıyorsunuz.
Dim SI As New STARTUP_INFORMATION
Dim PI As New PROCESS_INFORMATION
Buradaki iki satır tamamen CreateProcess apisine istek göndermek üzere hazırlanacak olan parametrelerin tanımlanması. Bunun sonrasında da ilgili yapı içerisindeki değişkenlere bazı atamalar yapılmış.
Arkadaşlar devamındaki kodun tamamını satır satır açıklayamayacağım. Fakat şunu bilmenizi isterim ki yeni bir method değil
PROCESS HOLLOWING
Process Hollowing, RunPE - Unprotect Project
İçerde yapılan ImageBase + 60 veya Marshal işleminden hemen sonraki 52 numarası...(PE Structure araştırınız...) Hepsinin bir anlamı var ve hafıza üzerinde hesaplama yapıyorlar. Çağ dışı dillere bağlı kalmadan daha iyi okuyabilmeniz için üstteki linki paylaştım. İyi çalışmalar
Dostum bunları bende biliyorum, protect process komutu ne işe yarıyor diye soruyorum bu bir method falan diye lafta etmedim direk bu runpe yazdım runpe method mudur allah aşkına, sadece protect process komutu ne işe yarıyor ve ben çalıştramadım diye attım.
Sonra bana uyarı atıyorsunuz yetkililer. O kadar şey yazmışım adam ilk paragrafı okumuş gerisine hiç bakmamış bile yani şimdi ben buna nasıl dangalak demeyeyim.
sayın sw1ndler, akıl sağlığının yerinde olmadığını düşünerek tekrar söyleyeceğim. Stub kodlar içerisinde kullanılan tekniğin gerçek ismi PROCESS HOLLOWING protect process falan yok yani adam kendi fonksiyon oluşturmuş. LİNK ATTIM LİNKE DE Mİ BAKMADIN BE ADAM!..
'%Process_Protection%
'%Process_Protection% ProtectProcess(0)
'%Process_Protection% <DllImport("kernel32.dll", EntryPoint:="GetCurrentProcess"), SuppressUnmanagedCodeSecurity> _
'%Process_Protection% Private Shared Function GetCurrentProcess() As IntPtr
'%Process_Protection% End Function
'%Process_Protection% <DllImport("ntdll.dll", EntryPoint:="ZwSetInformationProcess"), SuppressUnmanagedCodeSecurity> _
'%Process_Protection% Private Shared Sub ZwSetInformationProcess( _
'%Process_Protection% ByVal Handle As Integer, _
'%Process_Protection% ByVal ProcessIOPriority As Integer, _
'%Process_Protection% ByRef SignedValue As Integer, _
'%Process_Protection% ByVal ProcessInformationLenght As Integer)
'%Process_Protection% End Sub
'%Process_Protection% <DllImport("kernel32.dll")> _
'%Process_Protection% Public Shared Function OpenProcess(processAccess As Integer, bInheritHandle As Boolean, processId As Integer) As IntPtr
'%Process_Protection% Function
'%Process_Protection% Public Shared Sub ProtectProcess(PID As Integer)
'%Process_Protection% Dim aaaaaaaaaaaaaaa As UInteger = 2147545385
'%Process_Protection% If PID = 0 Then
'%Process_Protection% ZwSetInformationProcess(GetCurrentProcess(), 33, aaaaaaaaaaaaaaa, 4)
'%Process_Protection% Else
'%Process_Protection% ZwSetInformationProcess(OpenProcess(512, True, PID), 33, aaaaaaaaaaaaaaa, 4)
'%Process_Protection% End If
'%Process_Protection% End Sub