@@ -92,14 +92,17 @@ bool load_imports(t_mini_iat iat, IMAGE_DATA_DIRECTORY importsDirectory, BYTE* i
9292 while (thunk->u1 .AddressOfData != NULL )
9393 {
9494 FIELD_PTR functionAddress = NULL ;
95+ LPCSTR functionName = NULL ;
9596 if (IMAGE_SNAP_BY_ORDINAL (thunk->u1 .Ordinal )) {
96- LPCSTR functionOrdinal = (LPCSTR )IMAGE_ORDINAL (thunk->u1 .Ordinal );
97- functionAddress = (FIELD_PTR )iat._GetProcAddress (library, functionOrdinal);
97+ functionName = (LPCSTR )IMAGE_ORDINAL (thunk->u1 .Ordinal );
9898 }
9999 else {
100- PIMAGE_IMPORT_BY_NAME functionName = (PIMAGE_IMPORT_BY_NAME )((FIELD_PTR )image + thunk->u1 .AddressOfData );
101- functionAddress = ( FIELD_PTR )iat. _GetProcAddress (library, functionName ->Name ) ;
100+ PIMAGE_IMPORT_BY_NAME functionByName = (PIMAGE_IMPORT_BY_NAME )((FIELD_PTR )image + thunk->u1 .AddressOfData );
101+ functionName = functionByName ->Name ;
102102 }
103+ if (!functionName) return false ;
104+
105+ functionAddress = (FIELD_PTR )iat._GetProcAddress (library, functionName);
103106 if (!functionAddress) return false ;
104107
105108 thunk->u1 .Function = functionAddress;
@@ -120,7 +123,8 @@ bool run_tls_callbacks(IMAGE_DATA_DIRECTORY& tlsDir, BYTE* image)
120123 FIELD_PTR callback_va = *callbacks_ptr;
121124 if (!callback_va) break ;
122125
123- void (NTAPI * callback_func)(PVOID DllHandle, DWORD dwReason, PVOID ) = (void (NTAPI *)(PVOID , DWORD , PVOID )) callback_va;
126+ void (NTAPI * callback_func)(PVOID DllHandle, DWORD dwReason, PVOID )
127+ = (void (NTAPI *)(PVOID , DWORD , PVOID )) callback_va;
124128 callback_func (image, DLL_PROCESS_ATTACH , NULL );
125129
126130 callbacks_ptr++;
0 commit comments