التشفير بالسي ++ وفك التشفير بالسي شارب

تم تحميل الصفحة في 1,1311322 ثانية
التشفير بالسي ++ وفك التشفير بالسي شارب
إنضم
27 يناير 2018
المشاركات
434
الإعجابات
368
النقاط
63
بقالي كام ساعة بجرب في الدوت نت وطلعت بشيء

بدون إطالة هذه هي الأكواد

كود c++

C++:
// ConsoleApplication3.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
#include <Windows.h>
#include <bcrypt.h>
#include <random>
#include <filesystem>
#include <fstream>


#pragma comment(lib,"bcrypt.lib")

using namespace std;
namespace fs = std::experimental::filesystem::v1;

void print_bytes(const char *begin, byte *bytes, int size) {
    cout << begin << " = {";
    for (int i = 0;i < size;++i) {
        cout << "0x" << hex << int(bytes[i]);
        if ((i + 1) != size) cout << ", ";
    }
    cout << "}" << endl;
}

byte * random_key_iv() {
    random_device rd;
    default_random_engine reg(rd());
    uniform_int_distribution<int> generator(0, 255);
    byte *ret = new byte[16];
    for (int i = 0;i < 16;++i) ret[i] = generator(reg);
    return ret;
}

int main(int argc , char **argv)
{

    if (argc < 2) {
        cout << "[!] enter a file name" << endl;
        return 0;
    }
    
    if (!fs::exists(argv[1])) {
        cout << "[!] the file doesn't exist !\n";
        return 0;
    }

    cout << "[!] operating on " << argv[1] << endl;

    fstream ifile(argv[1],ios::binary|ios::ate|ios::in);
    cout << "[!] opened the file " << endl;
    auto buffer_size = ifile.tellg();
    cout << "[!] the size of the file is " << buffer_size << " bytes" << endl;
    ifile.seekg(0, ifile.beg);
    byte *blockBuffer = new byte[buffer_size];
    cout << "[!] allocated memory for the file" << endl;
    ifile.read((char*)blockBuffer, buffer_size);
    cout << "[!] read the file" << endl;
    ifile.close();
    cout << "[!] closed the file" << endl;

    byte *key = random_key_iv();
    byte *iv = random_key_iv();

    print_bytes("byte[] key ", key, 16);
    print_bytes("byte[] iv ", iv, 16);

    BCRYPT_HANDLE hAlg, hKey;
    ULONG needed_size, encrypted_Size;
    byte *encryptedBuffer = 0;

    BCryptOpenAlgorithmProvider(&hAlg, BCRYPT_AES_ALGORITHM, 0, 0);
    BCryptSetProperty(hAlg, BCRYPT_CHAINING_MODE, (byte*)BCRYPT_CHAIN_MODE_CBC, sizeof(BCRYPT_CHAIN_MODE_CBC), 0);
    BCryptGenerateSymmetricKey(hAlg, &hKey, 0, 0, key, 16, 0);
    BCryptEncrypt(hKey, blockBuffer, buffer_size, 0, iv, 16, 0, 0, &needed_size, 0);
    encrypted_Size = needed_size;
    encryptedBuffer = new byte[encrypted_Size];
    BCryptEncrypt(hKey, blockBuffer, buffer_size, 0, iv, 16, encryptedBuffer, encrypted_Size, &needed_size, 0);

    ofstream ofile("output", ios::binary);
    ofile.write((char*)encryptedBuffer, encrypted_Size);
    ofile.close();
    cout << "[!] finished " << endl;
    getchar();
    return 0;
}
كود c#

C#:
namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            if (args.Length < 1) return;
            byte[] file_array = File.ReadAllBytes(args[0]);
            Console.WriteLine(args[0]);
            byte[] source = File.ReadAllBytes(args[0]);
            Decrypt(source, "dec.exe");
        }

      
        public static byte[] Decrypt(byte[] Bytes, string outfile)
        {

            // حصلت عليهم من كود السي ++ ، سأحاوب بعد ذلك تمريرهم في سطر الأوامر
            byte[] key =  { 0x44, 0xda, 0x9c, 0x5d, 0x29, 0x3e, 0xb2, 0xde, 0xb3, 0x81, 0x91, 0xf4, 0xc3, 0xfd, 0xa3, 0xd5};
            byte[] iv = { 0xfb, 0x3d, 0xd7, 0xc2, 0xfe, 0x87, 0xd2, 0x85, 0xc9, 0x93, 0x63, 0xa6, 0x49, 0x9a, 0x1a, 0x28 };
            System.Security.Cryptography.RijndaelManaged rj = new System.Security.Cryptography.RijndaelManaged();
            rj.Mode = CipherMode.CBC;
            rj.Padding = PaddingMode.None;
            ICryptoTransform cTransform = rj.CreateDecryptor(key, iv);
            byte[] resultArray = cTransform.TransformFinalBlock(Bytes, 0, Bytes.Length);
            rj.Clear();
            File.WriteAllBytes(outfile, resultArray);
            return resultArray;
        }
    }
}

الكود ين استخدامهم في توليد ملفات دوت نت مشفرة بالسي ++
وفك التشفير بالسي شارب أثناء التشغيل

إذا تم إصلاح أخطاء ClrHost سيكون الاثنان معا بالسي ++
 

๖ۣۜA M E E R

إداري أقسام حماية الأجهزة
إنضم
8 سبتمبر 2013
المشاركات
6,868
الإعجابات
10,258
النقاط
128
الإقامة
Iraq
جازاك الله خير اخي يوسف
الفكرة كلها خوارزمية متوفرة في اللغتين
فنكشن الفك ينفع في الاختراق بالنسبة للاخوة مستخدمين الدوت نت في التشفير .. مع التعديل البسيط على المدخلات الغير مهمة
 
إنضم
27 يناير 2018
المشاركات
434
الإعجابات
368
النقاط
63
جازاك الله خير اخي يوسف
الفكرة كلها خوارزمية متوفرة في اللغتين
فنكشن الفك ينفع في الاختراق بالنسبة للاخوة مستخدمين الدوت نت في التشفير .. مع التعديل البسيط على المدخلات الغير مهمة
كود التشفير بالدوت نت فقط تغيير دالة CreateDecryptor

C#:
public static byte[] Encrypt(byte[] Bytes, byte[] key, byte[] iv, string outfile)
        {
            System.Security.Cryptography.RijndaelManaged rj = new System.Security.Cryptography.RijndaelManaged();
            rj.Mode = CipherMode.CBC;
            rj.Padding = PaddingMode.None;
            ICryptoTransform cTransform = rj.CreateEncryptor(key, iv);
            byte[] resultArray = cTransform.TransformFinalBlock(Bytes, 0, Bytes.Length);
            rj.Clear();
            File.WriteAllBytes(outfile, resultArray);
            return resultArray;
        }
الفكرة مفيدة في عمل crypter بالسي ++ يولد ستبات دوت نت حيث يتم توليد بايتات مشفرة من السي في سورس سي شارب
والسي شارب تفكهم عند التشغيل

وكذلك بديل للبيس 64 و طبعا FUD
 

๖ۣۜA M E E R

إداري أقسام حماية الأجهزة
إنضم
8 سبتمبر 2013
المشاركات
6,868
الإعجابات
10,258
النقاط
128
الإقامة
Iraq
كود التشفير بالدوت نت فقط تغيير دالة CreateDecryptor

C#:
public static byte[] Encrypt(byte[] Bytes, byte[] key, byte[] iv, string outfile)
        {
            System.Security.Cryptography.RijndaelManaged rj = new System.Security.Cryptography.RijndaelManaged();
            rj.Mode = CipherMode.CBC;
            rj.Padding = PaddingMode.None;
            ICryptoTransform cTransform = rj.CreateEncryptor(key, iv);
            byte[] resultArray = cTransform.TransformFinalBlock(Bytes, 0, Bytes.Length);
            rj.Clear();
            File.WriteAllBytes(outfile, resultArray);
            return resultArray;
        }
الفكرة مفيدة في عمل crypter بالسي ++ يولد ستبات دوت نت حيث يتم توليد بايتات مشفرة من السي في سورس سي شارب
والسي شارب تفكهم عند التشغيل

وكذلك بديل للبيس 64 و طبعا FUD
نعم اخي ممكن ذلك .. جازاك الله خير لانك ارفقت الفنكشنات بشكل سليم
 

Hac Tool

مُشرف أقسام التشفير
rankrankrank
إنضم
10 أكتوبر 2016
المشاركات
511
الإعجابات
523
النقاط
93
العمر
27
بارك الله فيك اخي علي موضوع مميز
هدي فنكشن بغة سي شارب لي من يريد بعد اذن صاحب موضوع
public static byte[] Encrypt(byte[] Bytes, string outfile)
{
byte[] key = new[] { 0x44, 0xDA, 0x9, 0x5D, 0x29, 0x3E, 0xB2, 0xDE, 0xB3, 0x81, 0x91, 0xF4, 0xC3, 0xFD, 0xA3, 0xD5 };
byte[] iv = new[] { 0xFB, 0x3D, 0xD7, 0xC2, 0xFE, 0x87, 0xD2, 0x85, 0xC9, 0x93, 0x63, 0xA6, 0x49, 0x9A, 0x1A, 0x28 };
System.Security.Cryptography.RijndaelManaged rj = new System.Security.Cryptography.RijndaelManaged();
rj.Mode = CipherMode.CBC;
rj.Padding = PaddingMode.None;
ICryptoTransform cTransform = rj.CreateEncryptor(key, iv);
byte[] resultArray = cTransform.TransformFinalBlock(Bytes, 0, Bytes.Length);
rj.Clear();
File.WriteAllBytes(outfile, resultArray);
return resultArray;
}

public static byte[] Decrypt(byte[] Bytes, string outfile)
{
byte[] key = new[] { 0x44, 0xDA, 0x9, 0x5D, 0x29, 0x3E, 0xB2, 0xDE, 0xB3, 0x81, 0x91, 0xF4, 0xC3, 0xFD, 0xA3, 0xD5 };
byte[] iv = new[] { 0xFB, 0x3D, 0xD7, 0xC2, 0xFE, 0x87, 0xD2, 0x85, 0xC9, 0x93, 0x63, 0xA6, 0x49, 0x9A, 0x1A, 0x28 };
System.Security.Cryptography.RijndaelManaged rj = new System.Security.Cryptography.RijndaelManaged();
rj.Mode = CipherMode.CBC;
rj.Padding = PaddingMode.None;
ICryptoTransform cTransform = rj.CreateDecryptor(key, iv);
byte[] resultArray = cTransform.TransformFinalBlock(Bytes, 0, Bytes.Length);
rj.Clear();
File.WriteAllBytes(outfile, resultArray);
return resultArray;
 

معتزل

Beginner Developer
rank
إنضم
10 سبتمبر 2017
المشاركات
28
الإعجابات
7
النقاط
3
العمر
23
جازاك الله خير اخي يوسف
الفكرة كلها خوارزمية متوفرة في اللغتين
فنكشن الفك ينفع في الاختراق بالنسبة للاخوة مستخدمين الدوت نت في التشفير .. مع التعديل البسيط على المدخلات الغير مهمة
امير شنو سالفه كل مااحجي وياج مترد اريد اتواصل وياك فيس بوك سكايب
 

الأعضاء النشطين حاليآ الذين يشاهدون هذا الموضوع (1 عضو و 1 ضيف)

خيارات الاستايل

نوع الخط
مودك
اخفاء السايدر بار OFF
توسيط المنتدى OFF
فصل الأقسام OFF
الأقسام الفرعية OFF
عرض المشاركات
حجم الخط
معلومات العضو OFF
إخفاء التوقيع OFF

إرجاع خيارات الإستايل