Сейчас на форуме: zds (+5 невидимых)

 [email protected] —› Программирование —› Структура библиотек модулей в egb версии 3.0
Посл.ответ Сообщение

Ранг: 2.0 (гость), 1thx
Активность: 0=0
Статус: Участник

Создано: 25 июня 2013 04:26 · Поправил: lizergin
· Личное сообщение · #1

Может быть кому-нибудь пригодится ...

Название экспортируемых функций и процедур:

extern "C" __declspec(dllexport) void G( module_info* ModuleInfo ); - заполнение структуры информацией о модуле( аналог GetInfo в PasswordsPro)
extern "C" __declspec(dllexport) void B( kernel_config* KernelConfig ); - запуск ядра на выполнение( аналог GetHash в PasswordsPro)
extern "C" __declspec(dllexport) int I( void* mem_pointer ); - копирование памяти между хостом и устройством
extern "C" __declspec(dllexport) int M( void* mem_pointer ); - копирование памяти между хостом и устройством, существует если используется соль или имя пользователя
extern "C" __declspec(dllexport) int C( salt_hash* SaltHash ); - присутствует когда соль является частью хеша, для их разделения( аналог GetData в PasswordsPro)


typedef struct // На примере DES(Unix).dll
{ // Размер структуры 36 байт
unsigned char return_hash[8]; // Извлеченный хеш
unsigned char padding[8]; // Заполнение ( не используется )
char salt_with_hash[16]; // Исходный хеш с солью
unsigned char return_salt[4]; // Извлеченная соль
} salt_hash;


typedef struct
{ // Размер структуры 32 байта
char* AlgoritmName; // Указатель на строку с названием алгоритма хеширования
unsigned int MaxPasswordLength; // Максимальная длина пароля
unsigned int HashLength; // Длина хеша
unsigned int BufferSize; // Размер общего буфера
unsigned int HashWithSaltOffset; // Не ноль только когда соль является частью хеша
unsigned int MaxSaltLength; // Максимальная длина соли или имени пользователя
unsigned int SaltOffset; // Имеет не нулевое значение только когда модуль использует при хешировании соль или имя пользователя
unsigned int Flags; // Основные флаги , которые определяют возможности данного модуля
} module_info;

Некоторые из флагов для поля Flags структуры module_info:
#define PPF_BINARY_HASH 0x00000001
#define PPF_COMPLEX_HASH 0x00000004
#define PPF_USE_SALT_NAME 0x00000100
#define PPF_MD5_SALT 0x00000200
#define PPF_LOWER_NAME 0x00000400
#define PPF_UNICODE_NAME 0x00000800
#define PPF_LM1 0x01000000
#define PPF_LM2 0x02000000


typedef struct { // Размер структуры 40 байт
unsigned int BlocksNumber; // Число блоков для устройства
unsigned int ThreasNumber; // Число потоков для устройства
unsigned int nCount; // Число хешей в списке для подбора
unsigned int nPasswords; // Число паролей на поток
void* pHashes; // Указатель на масив со списком хешей
void* pPasswords; // Указатель на массив с паролями
void* pMask; // Указатель на массив масок
unsigned int nMask; // Число маскок в соответствующем массиве
void* pResult; // Указатель на массив с результатом работы ядра
void* pPasswordsMask; // Указатель на массив ( используется только для гибридной атаки , иначе он равен нулю, то есть пустой == null )
} kernel_config;


Пример использования для получения информации о библиотеках :
b292_25.06.2013_EXELAB.rU.tgz - 7.png



Ранг: 2.0 (гость), 1thx
Активность: 0=0
Статус: Участник

Создано: 07 февраля 2014 17:54 · Поправил: lizergin
· Личное сообщение · #2

Всем привет .
Если API для написания библиотек для своих алгоритмов в программе Hash Manager от инсайд закрыты , то это еще ничего не означает ... И вот как доказательство пример более качественного алгоритма для MD4 , который на каждом ядре дает выигрыш около двух миллионов паролей в секунду . Так что желаю удачи в ваших исследованиях ;)


791d_07.02.2014_EXELAB.rU.tgz - MD4_.zip

| Сообщение посчитали полезным: kampaster
 [email protected] —› Программирование —› Структура библиотек модулей в egb версии 3.0
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати