mirror of
https://github.com/hashcat/hashcat.git
synced 2024-12-22 14:48:12 +00:00
Refresh dynloader management
This commit is contained in:
parent
0cd2c5ab35
commit
083d6e1fb2
@ -18,13 +18,13 @@
|
||||
#endif // _WIN
|
||||
|
||||
#ifdef _WIN
|
||||
HMODULE hc_dlopen (LPCSTR lpLibFileName);
|
||||
BOOL hc_dlclose (HMODULE hLibModule);
|
||||
FARPROC hc_dlsym (HMODULE hModule, LPCSTR lpProcName);
|
||||
hc_dynlib_t hc_dlopen (LPCSTR lpLibFileName);
|
||||
BOOL hc_dlclose (hc_dynlib_t hLibModule);
|
||||
hc_dynfunc_t hc_dlsym (hc_dynlib_t hModule, LPCSTR lpProcName);
|
||||
#else
|
||||
void *hc_dlopen (const char *filename);
|
||||
int hc_dlclose (void *handle);
|
||||
void *hc_dlsym (void *handle, const char *symbol);
|
||||
hc_dynlib_t hc_dlopen (const char *filename);
|
||||
int hc_dlclose (hc_dynlib_t handle);
|
||||
hc_dynfunc_t hc_dlsym (hc_dynlib_t handle, const char *symbol);
|
||||
#endif
|
||||
|
||||
#define HC_LOAD_FUNC2(ptr,name,type,var,libname,noerr) \
|
||||
|
@ -282,15 +282,9 @@ typedef int (ADL_API_CALL *ADL_OVERDRIVE6_CAPABILITIES_GET) (int, ADLOD6Capabili
|
||||
typedef int (ADL_API_CALL *ADL_OVERDRIVE6_TARGETTEMPERATUREDATA_GET) (int, int *, int *);
|
||||
typedef int (ADL_API_CALL *ADL_OVERDRIVE6_TARGETTEMPERATURERANGEINFO_GET) (int, ADLOD6ParameterRange *);
|
||||
|
||||
#if defined (_POSIX)
|
||||
typedef void *ADL_LIB;
|
||||
#else
|
||||
typedef HINSTANCE ADL_LIB;
|
||||
#endif
|
||||
|
||||
typedef struct hm_adl_lib
|
||||
{
|
||||
ADL_LIB lib;
|
||||
hc_dynlib_t lib;
|
||||
|
||||
ADL_MAIN_CONTROL_DESTROY ADL_Main_Control_Destroy;
|
||||
ADL_MAIN_CONTROL_CREATE ADL_Main_Control_Create;
|
||||
|
@ -70,15 +70,9 @@ typedef cl_int (CL_API_CALL *OCL_CLRELEASEPROGRAM) (cl_progra
|
||||
typedef cl_int (CL_API_CALL *OCL_CLSETKERNELARG) (cl_kernel, cl_uint, size_t, const void *);
|
||||
typedef cl_int (CL_API_CALL *OCL_CLWAITFOREVENTS) (cl_uint, const cl_event *);
|
||||
|
||||
#if defined (_POSIX)
|
||||
typedef void *OCL_LIB;
|
||||
#else
|
||||
typedef HINSTANCE OCL_LIB;
|
||||
#endif
|
||||
|
||||
typedef struct hc_opencl_lib
|
||||
{
|
||||
OCL_LIB lib;
|
||||
hc_dynlib_t lib;
|
||||
|
||||
OCL_CLBUILDPROGRAM clBuildProgram;
|
||||
OCL_CLCREATEBUFFER clCreateBuffer;
|
||||
|
@ -221,15 +221,9 @@ typedef int (*NVAPI_API_CALL NVAPI_GPU_GETPERFPOLICIESSTATUS) (NvPhysicalGpuHand
|
||||
typedef int (*NVAPI_API_CALL NVAPI_GPU_GETBUSID) (NvPhysicalGpuHandle, NvU32 *);
|
||||
typedef int (*NVAPI_API_CALL NVAPI_GPU_GETBUSSLOTID) (NvPhysicalGpuHandle, NvU32 *);
|
||||
|
||||
#if defined (_POSIX)
|
||||
typedef void *NVAPI_LIB;
|
||||
#else
|
||||
typedef HINSTANCE NVAPI_LIB;
|
||||
#endif
|
||||
|
||||
typedef struct hm_nvapi_lib
|
||||
{
|
||||
NVAPI_LIB lib;
|
||||
hc_dynlib_t lib;
|
||||
|
||||
NVAPI_QUERYINTERFACE nvapi_QueryInterface;
|
||||
NVAPI_INITIALIZE NvAPI_Initialize;
|
||||
|
@ -192,15 +192,9 @@ typedef nvmlReturn_t (*NVML_API_CALL NVML_DEVICE_SET_COMPUTEMODE) (nvmlDevice_t,
|
||||
typedef nvmlReturn_t (*NVML_API_CALL NVML_DEVICE_SET_OPERATIONMODE) (nvmlDevice_t, nvmlGpuOperationMode_t);
|
||||
typedef nvmlReturn_t (*NVML_API_CALL NVML_DEVICE_GET_PCIINFO) (nvmlDevice_t, nvmlPciInfo_t *);
|
||||
|
||||
#if defined (_POSIX)
|
||||
typedef void *NVML_LIB;
|
||||
#else
|
||||
typedef HINSTANCE NVML_LIB;
|
||||
#endif
|
||||
|
||||
typedef struct hm_nvml_lib
|
||||
{
|
||||
NVML_LIB lib;
|
||||
hc_dynlib_t lib;
|
||||
|
||||
NVML_ERROR_STRING nvmlErrorString;
|
||||
NVML_INIT nvmlInit;
|
||||
|
@ -765,6 +765,14 @@ typedef enum brain_link_status
|
||||
} brain_link_status_t;
|
||||
#endif
|
||||
|
||||
#ifdef _WIN
|
||||
typedef HMODULE hc_dynlib_t;
|
||||
typedef FARPROC hc_dynfunc_t;
|
||||
#else
|
||||
typedef void * hc_dynlib_t;
|
||||
typedef void * hc_dynfunc_t;
|
||||
#endif
|
||||
|
||||
/**
|
||||
* structs
|
||||
*/
|
||||
@ -2239,14 +2247,16 @@ typedef struct event_ctx
|
||||
|
||||
#define MODULE_DEFAULT (void *) -1
|
||||
|
||||
typedef void (*MODULE_INIT) (void *);
|
||||
|
||||
typedef struct module_ctx
|
||||
{
|
||||
void *module_handle;
|
||||
|
||||
size_t module_context_size;
|
||||
int module_interface_version;
|
||||
|
||||
void (*module_init) (struct module_ctx *);
|
||||
hc_dynlib_t module_handle;
|
||||
|
||||
MODULE_INIT module_init;
|
||||
|
||||
u32 (*module_attack_exec) (const hashconfig_t *, const user_options_t *, const user_options_extra_t *);
|
||||
void *(*module_benchmark_esalt) (const hashconfig_t *, const user_options_t *, const user_options_extra_t *);
|
||||
|
@ -641,10 +641,10 @@ hashcat64.bin: src/main.c $(LINUX_64_OBJS)
|
||||
$(CC_LINUX_64) $(CFLAGS_CROSS_LINUX64) -o $@ $^ $(LFLAGS_CROSS_LINUX64) -DCOMPTIME=$(COMPTIME) -DVERSION_TAG=\"$(VERSION_TAG)\" -DINSTALL_FOLDER=\"$(INSTALL_FOLDER)\" -DSHARED_FOLDER=\"$(SHARED_FOLDER)\" -DDOCUMENT_FOLDER=\"$(DOCUMENT_FOLDER)\"
|
||||
|
||||
hashcat32.exe: src/main.c $(WIN_32_OBJS) $(WIN_ICONV_32)/lib/libiconv.a
|
||||
$(CC_WIN_32) $(CFLAGS_CROSS_WIN32) -o $@ $^ $(LFLAGS_CROSS_WIN32) -DCOMPTIME=$(COMPTIME) -DVERSION_TAG=\"$(VERSION_TAG)\"
|
||||
$(CC_WIN_32) $(CFLAGS_CROSS_WIN32) -o $@ $^ $(LFLAGS_CROSS_WIN32) -DCOMPTIME=$(COMPTIME) -DVERSION_TAG=\"$(VERSION_TAG)\" -Wl,--output-def,host32.def
|
||||
|
||||
hashcat64.exe: src/main.c $(WIN_64_OBJS) $(WIN_ICONV_64)/lib/libiconv.a
|
||||
$(CC_WIN_64) $(CFLAGS_CROSS_WIN64) -o $@ $^ $(LFLAGS_CROSS_WIN64) -DCOMPTIME=$(COMPTIME) -DVERSION_TAG=\"$(VERSION_TAG)\"
|
||||
$(CC_WIN_64) $(CFLAGS_CROSS_WIN64) -o $@ $^ $(LFLAGS_CROSS_WIN64) -DCOMPTIME=$(COMPTIME) -DVERSION_TAG=\"$(VERSION_TAG)\" -Wl,--output-def,host64.def
|
||||
|
||||
hashcat32.dll: src/main.c $(WIN_32_OBJS)
|
||||
$(CC_WIN_32) $(CFLAGS_CROSS_WIN32) -o $@ $^ $(LFLAGS_CROSS_WIN32) -DCOMPTIME=$(COMPTIME) -DVERSION_TAG=\"$(VERSION_TAG)\" -shared
|
||||
|
@ -4,38 +4,39 @@
|
||||
*/
|
||||
|
||||
#include "common.h"
|
||||
#include "types.h"
|
||||
#include "dynloader.h"
|
||||
|
||||
#ifdef _WIN
|
||||
|
||||
HMODULE hc_dlopen (LPCSTR lpLibFileName)
|
||||
hc_dynlib_t hc_dlopen (LPCSTR lpLibFileName)
|
||||
{
|
||||
return LoadLibraryA (lpLibFileName);
|
||||
}
|
||||
|
||||
BOOL hc_dlclose (HMODULE hLibModule)
|
||||
BOOL hc_dlclose (hc_dynlib_t hLibModule)
|
||||
{
|
||||
return FreeLibrary (hLibModule);
|
||||
}
|
||||
|
||||
FARPROC hc_dlsym (HMODULE hModule, LPCSTR lpProcName)
|
||||
hc_dynfunc_t hc_dlsym (hc_dynlib_t hModule, LPCSTR lpProcName)
|
||||
{
|
||||
return GetProcAddress (hModule, lpProcName);
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
void *hc_dlopen (const char *filename)
|
||||
hc_dynlib_t hc_dlopen (const char *filename)
|
||||
{
|
||||
return dlopen (filename, RTLD_NOW);
|
||||
}
|
||||
|
||||
int hc_dlclose (void *handle)
|
||||
int hc_dlclose (hc_dynlib_t handle)
|
||||
{
|
||||
return dlclose (handle);
|
||||
}
|
||||
|
||||
void *hc_dlsym (void *handle, const char *symbol)
|
||||
hc_dynfunc_t hc_dlsym (hc_dynlib_t handle, const char *symbol)
|
||||
{
|
||||
return dlsym (handle, symbol);
|
||||
}
|
||||
|
@ -4,6 +4,7 @@
|
||||
*/
|
||||
|
||||
#include "common.h"
|
||||
#include "types.h"
|
||||
#include "ext_ADL.h"
|
||||
|
||||
void *HC_API_CALL ADL_Main_Memory_Alloc (const int iSize)
|
||||
|
@ -397,7 +397,7 @@ static bool module_load (hashcat_ctx_t *hashcat_ctx, module_ctx_t *module_ctx, c
|
||||
return false;
|
||||
}
|
||||
|
||||
module_ctx->module_init = hc_dlsym (module_ctx->module_handle, "module_init");
|
||||
module_ctx->module_init = (MODULE_INIT) hc_dlsym (module_ctx->module_handle, "module_init");
|
||||
|
||||
if (module_ctx->module_init == NULL)
|
||||
{
|
||||
@ -406,7 +406,7 @@ static bool module_load (hashcat_ctx_t *hashcat_ctx, module_ctx_t *module_ctx, c
|
||||
return false;
|
||||
}
|
||||
|
||||
free (module_file);
|
||||
hcfree (module_file);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user