Пытаюсь реализовать функцию дешифрования из DPAPI. Позже я заметил, что после моей функции в памяти забивается 8.13 kB. Я выполнил снятие памяти на каждой строке и выявил, что эту память занимает функция CryptUnprotectData
. Это косяк тех программистов, которые писали эту функцию или мне просто нужно очистить определенные переменные? Или же есть какой то другой вариант?
#include <vector>
#include <wincrypt.h>
#pragma comment(lib, "Crypt32.lib")
using namespace std;
void DecryptDPAPI(vector<byte> input, vector<byte> entropy)
{
vector<byte> result; // + 0.04 KB
DATA_BLOB inputBlob;
inputBlob.cbData = input.size();
inputBlob.pbData = &input[0];
PDATA_BLOB entropyBlob = NULL;
if (entropy.size() > 0)
{
entropyBlob = &DATA_BLOB();
entropyBlob->cbData = entropy.size();
entropyBlob->pbData = &entropy[0];
}
DATA_BLOB resultBlob;
resultBlob.cbData = 0;
resultBlob.pbData = NULL;
if (CryptUnprotectData(&inputBlob, NULL, entropyBlob, NULL, NULL, CRYPTPROTECT_LOCAL_MACHINE, &resultBlob)) // + 8.13 KB
{
result = vector<byte>(resultBlob.pbData, resultBlob.pbData + resultBlob.cbData); // + 0.04 KB
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Пытаюсь переделать данные методы в stream, используя filter и map методы
Мною была прочитана статья на хабре о TLAB Понятно, что у каждого трэда есть свои выделенные куски памятиНо откуда они выделяются? Из хипа? Наблюдаю...
Хочу разработать фронт на vue, который крутится на nodejsСерверная часть будет на spring boot через restapi