- 23 Eyl 2016
- 7,205
- 13
.NET Builder + Stub İlişkisi / Ar-Ge
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
Ş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.
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.
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.
Son düzenleme: