C++ Исходник Tpm emulator

Забаненный
Статус
Оффлайн
Регистрация
4 Апр 2023
Сообщения
107
Реакции[?]
8
Поинты[?]
6K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
мб кому-то пригодиться кому лень его включать.
сразу говорю про помощь не пишите, тем кому это нужно сами смогут это реализовать.

tpm:
#include "dependencies/safety.hpp"
#include "dependencies/spoof_drv_object.hpp"
#include "dependencies/tpm/tpm_all.hpp"

class tpm_driver {
public:
    static TPM2B_PUBLIC_KEY_RSA generated_key;

    static NTSTATUS handle_read_public(PDEVICE_OBJECT device, PIRP irp, PVOID context) {
        UNREFERENCED_PARAMETER(device);
        UNREFERENCED_PARAMETER(irp);

        if (!context)
            return STATUS_SUCCESS;

        auto request = [I]static_cast<driver_utils::ioc_request[/I]>(context);
        ExFreePool(context);

        auto data = static_cast<driver_utils::tpm_data_read_public*>(request.buffer);

        const UINT32 command_size = driver_utils::big_endian_to_little_endian_32(data->header.param_size);
        const size_t min_size = offsetof(driver_utils::tpm_data_read_public, out_public.public_area.unique.rsa.buffer) + driver_utils::key_size;
        if (command_size < min_size) {
            return STATUS_SUCCESS;
        }

        memcpy(data->out_public.public_area.unique.rsa.buffer, generated_key.buffer, driver_utils::key_size);

        return STATUS_SUCCESS;
    }

    static NTSTATUS dispatch(PDEVICE_OBJECT device, PIRP irp) {
        const auto ioc = IoGetCurrentIrpStackLocation(irp);
        if (ioc->Parameters.DeviceIoControl.IoControlCode == IOCTL_TPM_SUBMIT_COMMAND) {
            const auto header = static_cast<const TPM2_COMMAND_HEADER*>(irp->AssociatedIrp.SystemBuffer);
            const TPM_CC command = driver_utils::big_endian_to_little_endian_32(header->command_code);
            if (command == TPM_CC_ReadPublic)
                driver_utils::change_ioc(ioc, irp, &tpm_ctx.get()->handle_read_public());
        }

        return STATUS_SUCCESS;
    }
};

TPM2B_PUBLIC_KEY_RSA tpm_driver::generated_key = {0};

extern "C" NTSTATUS DriverEntry(PDRIVER_OBJECT driver_object, PUNICODE_STRING registry_path) {
    UNREFERENCED_PARAMETER(registry_path);
    driver_object->DriverUnload = driver_unload;

    driver_object->MajorFunction[IRP_MJ_DEVICE_CONTROL] = tpm_driver::dispatch;

    UNICODE_STRING driver_name;
    RtlInitUnicodeString(&driver_name, L"\\Driver\\TPM");
    PDEVICE_OBJECT device_object = nullptr;

    auto status = IoCreateDevice(driver_object, 0, &driver_name, FILE_DEVICE_UNKNOWN, 0, FALSE, &device_object);

    return STATUS_SUCCESS;
}
 
Участник
Статус
Оффлайн
Регистрация
19 Апр 2020
Сообщения
1,180
Реакции[?]
314
Поинты[?]
152K
Stop Staring At the Shadows
Участник
Статус
Оффлайн
Регистрация
10 Окт 2020
Сообщения
518
Реакции[?]
497
Поинты[?]
86K
спиздил у кого-то с uc, у кого-то кто спиздил это с какого-то гитхаба :stupid:
жаль что ты из клетки (бана) вышел, теперь пацаны будут вынуждены смотреть каждый твой шизопост где ты выдаёшь всю эту хуйню за что-то своё) lmao.
 
Эксперт
Статус
Оффлайн
Регистрация
29 Мар 2021
Сообщения
1,605
Реакции[?]
607
Поинты[?]
48K
спиздил у кого-то с uc, у кого-то кто спиздил это с какого-то гитхаба :stupid:
жаль что ты из клетки (бана) вышел, теперь пацаны будут вынуждены смотреть каждый твой шизопост где ты выдаёшь всю эту хуйню за что-то своё) lmao.
сразу говорю про помощь не пишите
ты вот это зацени
 
эксперт в майнкрафт апи
Read Only
Статус
Оффлайн
Регистрация
25 Янв 2023
Сообщения
676
Реакции[?]
284
Поинты[?]
22K
прошлая тема была на самом глубоком дне, тогда все расслабились: хуже быть не может.но вдруг...в этой теме со дна постучались
на всякий случай напомню что данная кнопка придумана не только для разбавления дизайна форума
1707558023438.png
 
Сверху Снизу