Модуль для hashcat

Задание закрыто
Стоимость:Договорная
Срок выполнения:3 дня
Варианты оплаты:Планируется использовать Безопасную сделку
Дата публикации:2025-01-21 09:10
Был(а) на сайте:2025-09-22 12:30

Модуль для hashcat

 
Задача

Необходимо написать модуль для hashcat. Есть прототип работающий на питоне, но на cpu.

Оставлять заявки могут только авторизованные пользователи.
Привет, имею большой опыт в разработке скриптов, сайтов, парсеров и просто програм на python, одним словом пишу всо, также пишу приложения на Андроид, с удовольствием возьмусь за работу, сделаю всо в лучшем виде и в кратчайшие сроки, также помогу запустить и разобраться.

Мое портфолио: https://ochistka35.wixsite.com/daichasportfolio
Мой телеграм: https://t.me/daichitakeda

Примеры моих работ

Сайт
Сайт
Сайт на WordPress
Здравствуйте, есть набросок кода, он может помочь:

#include "opencl_common.h"
#include "types_dev.h"

// Определение структуры для передачи параметров
typedef struct {
uint32_t salt_len;
uint32_t salt[64]; // Максимальная длина соли
uint32_t hash_type;
uint32_t iterations;
} HashcatOpenCLParams;

// OpenCL-ядро для параллельных вычислений
__kernel void hashcat_gpu_kernel(
__global const char* password,
__global uint32_t* hashes,
__global HashcatOpenCLParams* params,
__global uint32_t* results
) {
// Получаем идентификатор потока
int tid = get_global_id(0);

char current_password[256];
int password_len = strlen(password + tid * 256);

memcpy(current_password, password + tid * 256, password_len);

// Выполняем хеширование в зависимости от типа
switch(params->hash_type) {
case HASH_TYPE_MD5:
break;

case HASH_TYPE_SHA256:
// Реализация SHA256 хеширования
break;

// Добавить другие типы хешей
}

// Сравнение полученного хеша с целевым
if (compare_hash(hashes[tid], current_hash)) {
results[tid] = 1; // Найден пароль
}
}

// Функция инициализации и запуска OpenCL
int hashcat_opencl_module_run(
cl_context context,
cl_command_queue queue,
HashcatOpenCLParams* params
) {
// Подготовка буферов
cl_mem password_buffer = clCreateBuffer(context, CL_MEM_READ_ONLY);
cl_mem hash_buffer = clCreateBuffer(context, CL_MEM_READ_ONLY);
cl_mem result_buffer = clCreateBuffer(context, CL_MEM_WRITE_ONLY);

// Установка аргументов ядра
clSetKernelArg(kernel, 0, sizeof(cl_mem), &password_buffer);
clSetKernelArg(kernel, 1, sizeof(cl_mem), &hash_buffer);

// Запуск ядра
size_t global_work_size = num_passwords;
clEnqueueNDRangeKernel(queue, kernel, 1, NULL, &global_work_size, NULL, 0, NULL, NULL);

return 0;
}

Оставлять заявки могут только авторизованные пользователи.