رمزگزاری AES در سی شارپ :: V i R u s Ʒ²

V i R u s Ʒ²

هک و امنیت

V i R u s Ʒ²

هک و امنیت

Virus 32

💢 دوستانم بی دفاع و دشمنانم بی جواب نخواهند ماند 💢

-->
آخرین نظرات
  • ۲۲ مرداد ۰۲، ۰۰:۳۴ - Sami
    مرسی
  • ۱۴ مرداد ۰۲، ۱۴:۴۶ - farhad
    salam

به نام خداوند بخشنده ی مهربان

سلام عزیزانم خوشگلانم و کاربران قشنگم، امروز یه پستی که هم خودم دوستش داشتم و هم بقیه تون و کلا همگی دوسش داریم رو منتشر میکنم D: بعله! رمزگزاری با سی شارپ D: من که میدونم این پست رو واسه چی میخوای شیطون بلا D: بزار یه تابع هم بعدا برات میزارم که کل فایل های یه پسوند خاص رو ببینی D: /: خب عشاق عزیز، بریم برای دیدن الگوریتم و این چرت و پرت ها :| خب کد خیلی زیاده و جدا توضیحش بسیار زمان بره ، چیز خاصی هم نداره !

نکته => اجزای کد رو باز کنید، توابع استفاده شده رو پیگیری کرده و کاربرد هر کدوم رو پیدا کنید، به کلاس ها خوب دقت کنید تا قشنگ براتون جا بیوفته! از این تکه کد هزار تا تکه کد دیگه هم میشه گرفت...

یه چیز دیگه هم بگم، این باج افزار جیگساو رو هرکی تونست الگوریتمش رو به سی شارپ تبدیل کنه یه جایزه از طرف من داره و به عنوان کاربر نمونه انتخاب میشه D: اگرم نتونستید خودم یه روز میزارم براتون => حیا کن :| برو برنامه ات رو بنویس برادر باج افزار چیه اخه :|

این پست رو شبونه دارم مینیوسم هرکی آیلاند هست یعنی واقعا در پی علم و در حال تبدیل شدن به یک برنامه نویس واقعی هست *_*

خب دیگه زیاد چرت و پرت گفتم، برید توی پروژه و کتابخونه های زیر رو پرت کنید تو پروژه  :

using System.Security.Cryptography; //واسه رمزگزاری هامون
using System.Runtime.InteropServices; //API ویندوز
using System.Text; //تبدیل رمز و اطلاعات به باینری و اسکی و...
using System.IO; //کار با فایل ها

بعدم مواد لازم رو برای ساخت پروژه ی خوشمزه ادد کنید :

1 - ریچ تکست باکس ساده :|

2 - دو تا باتن از این خوشگلا *_*

خب من این پروژه رو با قابلمه ی سرویس ورکاچه ی 5 ظرفی ی مدل.... آخ اشتباه شد :|

خیلی هم عالی! دوشواری نداریم که! حالا بعد از این :

        public MainForm()
        {
            //
            // The InitializeComponent() call is required for Windows Forms designer support.
            //
            InitializeComponent();
           
            //
            // TODO: Add constructor code after the InitializeComponent() call.
            //
        }

این کد های مدیریت نشده و یسری تابع و این چرت و پرت ها رو بزارید :


[DllImport("KERNEL32.DLL", EntryPoint = "RtlZeroMemory")]
public static extern bool ZeroMemory(IntPtr Destination, int Length);
public static byte[] GenerateRandomSalt()
{
    byte[] data = new byte[32];
    using (RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider())
    {
        for (int i = 0; i < 10; i++)
        {            
            rng.GetBytes(data);
        }
    }
    return data;
}
private void FileEncrypt(string inputFile, string password)
{
    byte[] salt = GenerateRandomSalt();
    FileStream fsCrypt = new FileStream(inputFile+".jigsaw32master", FileMode.Create);
    byte[] passwordBytes = System.Text.Encoding.UTF8.GetBytes(password);
    RijndaelManaged AES = new RijndaelManaged();
    AES.KeySize = 256;
    AES.BlockSize = 128;
    AES.Padding = PaddingMode.PKCS7;
    var key = new Rfc2898DeriveBytes(passwordBytes, salt, 50000);
    AES.Key = key.GetBytes(AES.KeySize / 8);
    AES.IV = key.GetBytes(AES.BlockSize / 8);
    AES.Mode = CipherMode.CFB;
    fsCrypt.Write(salt, 0, salt.Length);
    CryptoStream cs = new CryptoStream(fsCrypt, AES.CreateEncryptor(), CryptoStreamMode.Write);
    FileStream fsIn = new FileStream(inputFile, FileMode.Open);    
    byte[] buffer = new byte[1048576];
    int read;
    try
    {
        while ((read = fsIn.Read(buffer, 0, buffer.Length)) > 0)
        {
            Application.DoEvents(); 
            cs.Write(buffer, 0, read);
        }
        fsIn.Close();
    }
    catch (Exception ex)
    {
        richTextBox1.Text = "Error: " + ex.Message;
    }
    finally
    {
        cs.Close();
        fsCrypt.Close();
    }
}
private void FileDecrypt(string inputFile, string outputFile ,  string password)
{     
    byte[] passwordBytes = System.Text.Encoding.UTF8.GetBytes(password);
    byte[] salt = new byte[32];
    FileStream fsCrypt = new FileStream(inputFile, FileMode.Open);
    fsCrypt.Read(salt, 0, salt.Length);
    RijndaelManaged AES = new RijndaelManaged();
    AES.KeySize = 256;
    AES.BlockSize = 128;
    var key = new Rfc2898DeriveBytes(passwordBytes, salt, 50000);
    AES.Key = key.GetBytes(AES.KeySize / 8);
    AES.IV = key.GetBytes(AES.BlockSize / 8);
    AES.Padding = PaddingMode.PKCS7;
    AES.Mode = CipherMode.CFB;
    CryptoStream cs = new CryptoStream(fsCrypt, AES.CreateDecryptor(), CryptoStreamMode.Read);
    FileStream fsOut = new FileStream(outputFile, FileMode.Create);
    int read;
    byte[] buffer = new byte[1048576];
    try
    {
        while ((read = cs.Read(buffer, 0, buffer.Length)) > 0)
        {
            Application.DoEvents();
            fsOut.Write(buffer, 0, read);
        }
    }
    catch (CryptographicException ex_CryptographicException)
    {
        richTextBox1.Text = "CryptographicException error: " + ex_CryptographicException.Message;
    }
    catch (Exception ex)
    {
        richTextBox1.Text = "Error: " + ex.Message;
    }
    try
    {
        cs.Close();
    }
    catch (Exception ex)
    {
        richTextBox1.Text = "Error by closing CryptoStream: " + ex.Message;
    }
    finally
    {
        fsOut.Close();
        fsCrypt.Close();
    }
}        
   

به همین راحتی خوشمزگی قشنگی و نازی و مموسی و خوجملی و خلاصه هرچی :|

روی دکمه ی کننده (اینکریپت عاغا :| ) دو تا کلیک کنید برید به بخش کد هاش، کد های زیر رو بزنید :

string password = "VIRUS32ISLOVE";
GCHandle gch = GCHandle.Alloc(password, GCHandleType.Pinned);
FileEncrypt(input, password);
ZeroMemory(gch.AddrOfPinnedObject(), password.Length * 2);
gch.Free();

به همین هلویی! خب دیگه نباید بگم ولی میگم :| جای input نیم فایل رو بزارید...

روی دکمه ی کننده (دیکریپت -_- ) دو تا کلیک بزنید وارد کد هاش بشید و حالا اینو بزنید :

string password = "VIRUS32ISLOVE";
GCHandle gch = GCHandle.Alloc(password, GCHandleType.Pinned);
FileDecrypt(input , ounput, password);
ZeroMemory(gch.AddrOfPinnedObject(), password.Length * 2);
gch.Free();

به همین راحتی! تموم شد و رفت! هیچی دیگه از فردا آمار باج افزار 666 برابر میشه -_-

اگر مطالب رمزگزاری رو دوست دارید بگید براتون بیشتر بزاریم، چون تا حالا تو وب دربارش چیزی نوشته نشده و معمولا تو سایت های ایرانی وجود نداره...

*به قول دوستان(کیلر و ویروس و کدر و اتکر:| ) => باشد که رستگار شویم!*

سخن امروز => تهمت گناهی است که خداوند هرگز آن را نخواهد بخشید!

نویسنده: Attrib 32

نظر (۶)

نتیجه اخلاقی : تهمت نزنین، باج افزارای خفن بنویسین :) ولی نگرفتم چرا 666 ;)

 

باشد که رستگار شویم :)

Virus32 ولم کنید (: :
هه نه اونو با تو نبودم تو عزیزی
666 بار ذیگه خخ
انشالله :|

میدونم :) با من بودی که ... میگفتم عیب نداره :)

 

راستی، من غلط بکنم برم سراغ Php. بابا با فلسک چه چیزا که نمیشه نوشت!!! خیلییی باحال بود!! یه ویروس خفن نوشتم :) تکمیل داره میشه :) منتشرش کنم؟؟

ولی خدا وکیلی تغییر کردی :) تبریک من رو بپذیر :) ورود اتریب جدید به این دنیارو خوش آمد میگم :) مطمئن باش خیلی چیزای بهتری در انتظارته داداشیم :)

راستی 666 عدد خفنی نی؟؟ ;)

Virus32 ولم کنید (: :
ممنون
چرا عدد خفنیست ((:

سلام

اگه میشه از این به بعد نتیجه کار خودتم بزار واسه دانلود D:

 

راستی شاید ابورت نشه ولی رفتم صفحه آخر آخر سایت و تک تک مطالب رو خوندم :)

انقدر اسکریپت و ابزار کاربردی و علم گیر اومده که حد نداره ولی علم هنوز خیلی جا دار :/

Virus32 ولم کنید (: :
سلام
دو تا تابع کوچولو چی ان که نتیجه داشته باشن؟ :|
(:

چرا دیگه توی گوگل سرچ نمیشی؟

یعنی نیستی

پیدا نمیشی

این روش جالبیه خوشم اومد من رمزنگاری سیمتریک و آسیمتریک رو تو سی شارپ یاد گرفتم خیلی جاها به دردم خورد جدای از مباحث ساخت ابزار های امنیتی مثلا تو نرم افزار هایی که میخاستم بفروشم خیلی به کارم اومدن و تا حدود بالایی جلو مهندسی معکوس رو میگیره

 

این خیلی جالب بود ایول الگوریتم RIJ هم بهینه شده همین AES هست یه تست بکن خوشت میاد من بیشتر از RSA برای رمزنگاری استفاده میکنم چون تو بستر نتورک خیلی خوبه و اینکه اگه ریکوست ها شنود بشن اطلاعات رمز شده دست فرد هکر میافته نه اطلاعات خام!

 

خوشحال میشم بیشتر ازین پستا بزاری

Virus32 Virus 32 :
ممنون
کامنت مفیدی گذاشتین
من همیشه بیشتر تو بخش رمزها تمرکز داشتم
قطعا rsa رمزنگاری با ثبات و جا افتاده ای است و خیلی از ارگان های مهم ازش استفاده میکنن
ولی جدیدا با دستکاری کردن سورس اسنفیرهای SolarWinds میشه فالگوشی خوبی کرد و  مهندسی معکوس با شکوهی به کمک گرابر ها ...
حتما میدونی برای rsa باید از الگوریتم نامتقارن Asymmetric و برای نجات مقدار اضافی از متد متقارن استفاده بشه و ....
در نهایت پیام رمز و کلید باهم ارسال میشه ...
کلید های عمومی که .... کلید خصوصی هم قبل از پیام اول صادر میشه ...
بحثش خیلی طولانی و شیرین بوده و هست
خیلی دوست دارم درباره اش بیشتر صحبت کنیم ولی ...
....
rij قدرت خیلی زیاده داره و به نظر من تنها ایرادش میتونه نیازمند بودنش به یه سیستم قوی تر باشه که این برای ساخت باج افزار هنوز پیش نه حاد نشده D:
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی