سورس رمزنگاری aes در سی پلاس پلاس با api ویندوز :: V i R u s Ʒ²

V i R u s Ʒ²

هک و امنیت

V i R u s Ʒ²

هک و امنیت

Virus 32

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

-->
آخرین نظرات
  • ۲۲ مرداد ۰۲، ۰۰:۳۴ - Sami
    مرسی
  • ۱۴ مرداد ۰۲، ۱۴:۴۶ - farhad
    salam
با سلام D: من برگشتم (:
 api ویندوز یکی بهترین وسیله های برای استفاده از توابع است و دردسری را برای برنامه نویس ایجاد نمیکند.
استفاده از api ویندوز در یک پروژه ی برنامه نویسی سی++ ویندوز اجباری است زیرا شما تحت هر شرایطی به آن نیاز پیدا میکنید.
سورس زیر به شما نحوه ی استفاده از لایبراری crypt32.dll و استفاده از توابع aes را به شما آموزش میدهد و برای نوشتن باج افزار ها کمک شایانی به شما میکند : 
#include"stdafx.h"
#include <Windows.h>
#include <wincrypt.h>
#include <stdio.h>
#pragma comment(lib, "crypt32.lib")
#define AES_KEY_SIZE 16
#define CHUNK_SIZE (AES_KEY_SIZE*3)
int wmain(int argc, wchar_t *argv[])
{
wchar_t *filename = L"v32.txt";
wchar_t *filename2 = L"v32.aes";
wchar_t *key_str = L"3igcZhRdWq96m3GUmTAiv9";
size_t len = lstrlenW(key_str);
HANDLE hInpFile = CreateFileW(filename, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, NULL);
HANDLE hOutFile = CreateFileW(filename2, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
DWORD dwStatus = 0;
BOOL bResult = FALSE;
wchar_t info[] = L"Microsoft Enhanced RSA and AES Cryptographic Provider";
HCRYPTPROV hProv;
CryptAcquireContextW(&hProv, NULL, info, PROV_RSA_AES, CRYPT_VERIFYCONTEXT);
HCRYPTHASH hHash;
CryptCreateHash(hProv, CALG_SHA_256, 0, 0, &hHash);
CryptHashData(hHash, (BYTE*)key_str, len, 0);
HCRYPTKEY hKey;
CryptDeriveKey(hProv, CALG_AES_128, hHash, 0, &hKey);
const size_t chunk_size = CHUNK_SIZE;
BYTE chunk[chunk_size] = { 0 };
DWORD out_len = 0;
BOOL isFinal = FALSE;
DWORD readTotalSize = 0;
DWORD inputSize = GetFileSize(hInpFile, NULL);
while (bResult = ReadFile(hInpFile, chunk, chunk_size, &out_len, NULL)) {
if (0 == out_len) {
break;
}
readTotalSize += out_len;
CryptEncrypt(hKey, NULL, isFinal, 0, chunk, &out_len, chunk_size);
DWORD written = 0;
WriteFile(hOutFile, chunk, out_len, &written, NULL);
memset(chunk, 0, chunk_size);
}
CryptReleaseContext(hProv, 0);
CryptDestroyKey(hKey);
CryptDestroyHash(hHash);
CloseHandle(hInpFile);
CloseHandle(hOutFile);
return 0;
}
در کد بالا شما توابع ویندوزی را فراخوانی کرده  ، داده ها را گرفته ، کلید را مشخص، فایل ها را باز کرده و داده ها را با تابع CryptEncrypt رمزنگاری کردید.
باشد که رستگار شویم.

نظر (۳)

مار ها از جان عسگر چ میخواهند؟؟

عالی بود ❤️

Virus32 Ax0o 32 :
چه میخواهند واقعا؟
مرسی (:

چ عجب :|

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

❤️

Virus32 Ax0o 32 :
(:
با سی شارپشم تقریبا همینه...
البته تو سی شارپ چرا میخوای از api استفاده کنی؟؟ Cryptography هست دیه :/

منظورم آموزش رمزنگاری تو سی شارپ

 مثلا همین  Cryptography رو توضیح بده :؟

 

Virus32 Ax0o 32 :
System.Security.Cryptography  رو میگم
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی