.NET Builder + Stub İlişkisi

Mapzilla

Adanmış Üye
23 Eyl 2016
7,205
13
.NET Builder + Stub İlişkisi / Ar-Ge

logo_asp45.png


Executable oluşturucularında görmüşsünüzdür (Remote administration tool , Keylogger vs.). Sizden optionslar alınarak bi' Stub oluşturuluyor Builder tarafından. Şimdi onun mantığını anlatacağım. İlk Builder'e bakalım.

//Builder
Kod:
File.Copy(Environment.CurrentDirectory + "/STUB.exe", Environment.CurrentDirectory+"/NewSTUB.exe"); //Burada STUB'un bi' kopyasını oluşturacağız. Application.StartupPath sadece Windows.Forms'larda var , Console kullanıyorsanız Environment.CurrentDirectory+"\STUB.exe" şeklinde yapabilirsiniz.
FileStream fs = new FileStream(Environment.CurrentDirectory+"/NewSTUB.exe", FileMode.Append); //FileMode'un Append olmasının sebebi sona yazdıracağız.
BinaryWriter bw = new BinaryWriter(fs);
string IP;
int Port;
Console.Write("IP:");
IP = Console.ReadLine();
Console.Write("\nPort:");
Port = Convert.ToInt16(Console.ReadLine());
bw.Write("StartIP:" + IP + ":EndIP");
bw.Write("StartPort:" + Port + ":EndPort");
bw.Flush();
bw.Close();
fs.Close();

Şimdi bunu çalıştırmayın , çünkü daha Stub'u yapmadık. Yeni bi' project daha oluşturuyoruz. Bu sefer okuma işlemi olacak. Stub kodlarında biraz string fonksiyonları olacak.

Kod:
StreamReader sr = new StreamReader(Environment.CurrentDirectory+"/NewSTUB.exe");
StreamReader sr2 = new StreamReader(Environment.CurrentDirectory+"/NewSTUB.exe");
string Read1IP = sr.ReadToEnd();
string Read2Port = sr2.ReadToEnd();
sr.Close();
sr2.Close();

Read1IP = Read1IP.Substring(Read1IP.IndexOf("StartIP:"),Read1IP.IndexOf(":EndIP")-Read1IP.IndexOf("StartIP:"));
//Burada line IndexOf'u azaltmamızın nedeni indiden çıkmamasını sağlamak. Daha iyi anlamak için uzunluklarını hesap edin.
//Sonuç StartIP:88.77.66.55.44 gibi sonuç olacak. Replace ile StartIP:'i de silelim.
Read1IP = Read1IP.Replace("StartIP:","");
Read2Port = Read2Port.Substring(Read2Port.IndexOf("StartPort:"),Read2Port.IndexOf(":EndPort")-Read2Port.IndexOf("StartPort:"));
Read2Port = Read2Port.Replace("StartPort:","");
Console.Write("IP Address:"+Read1IP);
Console.Write("\nPort:"+Read2Port);

Console.ReadKey();

Burada zaten tek yaptığımız o değerleri arayıp düzgün şekilde bölmek. Builder.exe ve STUB.exe'yi aynı pathe atıyoruz. Builder.exe'yi açıyoruz ve IP Port giriyoruz. NewSTUB.exe geliyor. Açtıktan sonra böyle bi' ekran geliyor.

pC9jDo.png
 
Son düzenleme:

Mapzilla

Adanmış Üye
23 Eyl 2016
7,205
13
Emeğine sağlık.

Peki konsol yerine form oluşturabilir miyiz?

Konuyu okursan Application.StartupPath kodu geçiyor , bu zaten Form'larda olan bi'şey. İkisinde de yapılabilir bu. Console'larda Environment.CurrentDirectory var. :)

Arkadaşlar bu arada Garbage Collector yapmak isterseniz using kullanabilirsiniz.
 

Speretta

Yeni üye
13 Ocak 2018
12
0
Konuyu okursan Application.StartupPath kodu geçiyor , bu zaten Form'larda olan bi'şey. İkisinde de yapılabilir bu. Console'larda Environment.CurrentDirectory var. :)

Arkadaşlar bu arada Garbage Collector yapmak isterseniz using kullanabilirsiniz.

Zaten okumuştum ama C#'a yeni yeni başladığım için biraz yabancı kalabiliyorum. Nasıl form kullanarak yapabileceğimizi gösterirsen çok makbule geçer. Tekrardan teşekkürler.
 

Jeav

Katılımcı Üye
15 Mar 2018
384
0
Adana
Peki ya yeni oluşturduğumuz STUB.exe dosyasının kodlarında değişiklik yapabiliyor muyuz? Virüs oluşturucu gibi birşey yapıyorumda. Mesela bir checked box seçili olucak o seçili olursa ve butona basılırsa yeni oluşturulan stub.exe dosyasında kod eklemesi olsun gibisinden.
 

Gbmdpof

Kıdemli Üye
23 Eyl 2016
2,001
11
Peki ya yeni oluşturduğumuz STUB.exe dosyasının kodlarında değişiklik yapabiliyor muyuz? Virüs oluşturucu gibi birşey yapıyorumda. Mesela bir checked box seçili olucak o seçili olursa ve butona basılırsa yeni oluşturulan stub.exe dosyasında kod eklemesi olsun gibisinden.

Bunun için birkaç yol var, şu an aklıma gelen sadece csc.exe veya CodeDom ile .cs dosyasını compile etmek. İnternetten araştırabilirsiniz.

Ayrıca System.Reflection ile .NET .exe dosyasının kodunu değiştirebiliyorduk sanırım. Onu da araştırabilirsiniz.
 

PS1K0

Uzman üye
6 Ağu 2015
1,143
14
root@kali
Böyle bir şeye ihtiyacım vardı bu tarz bir yöntem düşündüm fakat derlenmiş bir dosyanın üzerine direkt olarak bir veri yazdığımızdan ötürü programın çalışmasını engelleyeceğini düşünmüştüm ama bir sorun olmadı teşekkür ediyorum işime yaradı.

Bu arada konsol uygulamasında da Application sınıfını kullanabilirsin: Visual Studio içerisinde Solution Explorer penceresinde istediğin projeye sağ tıkla Add >> Reference yolunu takip et açılan menüde Sol üst taraftan Assemblies bölümüne gel ve arama yerine System.Windows.Forms yaz çıkan kutuyu işaretle ve OK butonuna tıkla.
 
Son düzenleme:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.