Вопрос Можно ли создать Spoofer при помощи ChatGPT

Легенда форума
Статус
Оффлайн
Регистрация
10 Дек 2018
Сообщения
4,381
Реакции[?]
2,284
Поинты[?]
189K
Ага, конечно, с таким же успехом можешь просто загуглить, что тебе нужно, т.к. нейронка будет из гугла код брать.
 
anonymous
Участник
Статус
Онлайн
Регистрация
18 Окт 2022
Сообщения
612
Реакции[?]
216
Поинты[?]
144K
Наверное можно, вообще нужно крякнуть chatgpt, чтобы он писал читы, было бы круто 🥶
 
Femboy Access
Эксперт
Статус
Оффлайн
Регистрация
11 Ноя 2020
Сообщения
1,333
Реакции[?]
428
Поинты[?]
96K
Ответ: да.
1676799798341.png1676799808524.png1676799821279.png
C++:
#include <Uefi.h>
#include <Library/UefiLib.h>
#include <Protocol/BlockIo.h>

EFI_STATUS EFIAPI UefiMain(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE* SystemTable)
{
  EFI_STATUS Status;
  EFI_HANDLE Handle = ImageHandle;
  UINTN BlockSize = 0;
  UINT8* BlockBuffer = NULL;
  UINT8 NewSerialNumber[] = "MY_NEWSERIALNUMBER";
  UINTN NewSerialNumberSize = sizeof(NewSerialNumber);

  // Get the handle for the first Block I/O protocol
  EFI_HANDLE* HandleBuffer = NULL;
  UINTN NumHandles = 0;
  Status = gBS->LocateHandleBuffer(ByProtocol, &gEfiBlockIoProtocolGuid, NULL, &NumHandles, &HandleBuffer);
  if (EFI_ERROR(Status)) {
    Print(L"Failed to locate Block I/O protocol handles\n");
    return Status;
  }

  // Open the first Block I/O protocol
  EFI_BLOCK_IO_PROTOCOL* BlockIo = NULL;
  Status = gBS->OpenProtocol(HandleBuffer[0], &gEfiBlockIoProtocolGuid, (VOID**)&BlockIo, Handle, NULL, EFI_OPEN_PROTOCOL_GET_PROTOCOL);
  if (EFI_ERROR(Status)) {
    Print(L"Failed to open Block I/O protocol\n");
    return Status;
  }

  // Get the block size and allocate a buffer for the block data
  BlockSize = BlockIo->Media->BlockSize;
  BlockBuffer = AllocatePool(BlockSize);
  if (BlockBuffer == NULL) {
    Print(L"Failed to allocate block buffer\n");
    return EFI_OUT_OF_RESOURCES;
  }

  // Read the block data into the buffer
  Status = BlockIo->ReadBlocks(BlockIo, BlockIo->Media->MediaId, 0, BlockSize, BlockBuffer);
  if (EFI_ERROR(Status)) {
    Print(L"Failed to read block data\n");
    return Status;
  }

  // Overwrite the serial number in the block data buffer
  CopyMem(BlockBuffer + 20, NewSerialNumber, NewSerialNumberSize);

  // Write the modified block data back to the disk
  Status = BlockIo->WriteBlocks(BlockIo, BlockIo->Media->MediaId, 0, BlockSize, BlockBuffer);
  if (EFI_ERROR(Status)) {
    Print(L"Failed to write block data\n");
    return Status;
  }

  // Free resources
  FreePool(BlockBuffer);
  FreePool(HandleBuffer);

  return EFI_SUCCESS;
}
 
Начинающий
Статус
Оффлайн
Регистрация
2 Мар 2017
Сообщения
32
Реакции[?]
2
Поинты[?]
0
Ответ: да.
Посмотреть вложение 239122Посмотреть вложение 239123Посмотреть вложение 239124
C++:
#include <Uefi.h>
#include <Library/UefiLib.h>
#include <Protocol/BlockIo.h>

EFI_STATUS EFIAPI UefiMain(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE* SystemTable)
{
  EFI_STATUS Status;
  EFI_HANDLE Handle = ImageHandle;
  UINTN BlockSize = 0;
  UINT8* BlockBuffer = NULL;
  UINT8 NewSerialNumber[] = "MY_NEWSERIALNUMBER";
  UINTN NewSerialNumberSize = sizeof(NewSerialNumber);

  // Get the handle for the first Block I/O protocol
  EFI_HANDLE* HandleBuffer = NULL;
  UINTN NumHandles = 0;
  Status = gBS->LocateHandleBuffer(ByProtocol, &gEfiBlockIoProtocolGuid, NULL, &NumHandles, &HandleBuffer);
  if (EFI_ERROR(Status)) {
    Print(L"Failed to locate Block I/O protocol handles\n");
    return Status;
  }

  // Open the first Block I/O protocol
  EFI_BLOCK_IO_PROTOCOL* BlockIo = NULL;
  Status = gBS->OpenProtocol(HandleBuffer[0], &gEfiBlockIoProtocolGuid, (VOID**)&BlockIo, Handle, NULL, EFI_OPEN_PROTOCOL_GET_PROTOCOL);
  if (EFI_ERROR(Status)) {
    Print(L"Failed to open Block I/O protocol\n");
    return Status;
  }

  // Get the block size and allocate a buffer for the block data
  BlockSize = BlockIo->Media->BlockSize;
  BlockBuffer = AllocatePool(BlockSize);
  if (BlockBuffer == NULL) {
    Print(L"Failed to allocate block buffer\n");
    return EFI_OUT_OF_RESOURCES;
  }

  // Read the block data into the buffer
  Status = BlockIo->ReadBlocks(BlockIo, BlockIo->Media->MediaId, 0, BlockSize, BlockBuffer);
  if (EFI_ERROR(Status)) {
    Print(L"Failed to read block data\n");
    return Status;
  }

  // Overwrite the serial number in the block data buffer
  CopyMem(BlockBuffer + 20, NewSerialNumber, NewSerialNumberSize);

  // Write the modified block data back to the disk
  Status = BlockIo->WriteBlocks(BlockIo, BlockIo->Media->MediaId, 0, BlockSize, BlockBuffer);
  if (EFI_ERROR(Status)) {
    Print(L"Failed to write block data\n");
    return Status;
  }

  // Free resources
  FreePool(BlockBuffer);
  FreePool(HandleBuffer);

  return EFI_SUCCESS;
}
это что получается осталось скомпилирувать и готово ?
 
ЧВК YAROSLAV
Забаненный
Статус
Оффлайн
Регистрация
25 Дек 2019
Сообщения
594
Реакции[?]
183
Поинты[?]
31K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Сверху Снизу