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

 eXeL@B —› Крэки, обсуждения —› VirtualAddress директории импорта из IMAGE_DATA_DIRECTORY
Посл.ответ Сообщение

Ранг: 40.9 (посетитель)
Активность: 0.020
Статус: Участник
diProtector Software

Создано: 08 декабря 2005 00:28
· Личное сообщение · #1

Чето не могу взять в толк... каким-то странным образом это поле обрабатывается - если в ноль его положить - виснет отладчик, если за границы образа в памяти - все ок. Кто знает про тонкости обработки этого поля загрузчиком? Каковы допустимые значения?



Ранг: 309.8 (мудрец), 21thx
Активность: 0.170
Статус: Участник

Создано: 08 декабря 2005 15:39 · Поправил: SLV
· Личное сообщение · #2

эээ... там же rva по ходу... да и ноль ставить нельзя точно... а обрабатывается примерно так

mov edi,[edi].OptionalHeader.DataDirectory[sizeof IMAGE_DATA_DIRECTORY].VirtualAddress
add edi,[dwImageBase]

assume edi : ptr nothing

@@next_module:
mov esi,dword ptr[edi+0Ch]
test esi, esi
jz @_done
add esi,[dwImageBase]
push esi
call GetModuleHandle
.if eax==NULL
push esi
call LoadLibrary
.endif
mov esi,eax
mov edx,dword ptr[edi]
.if edx==NULL
mov edx,dword ptr[edi+10h]
.endif
add edx,[dwImageBase]
mov ebx,dword ptr[edi+10h]
add ebx,[dwImageBase]

@@next_thunk:
mov eax, [edx]
test eax,eax
jz @@last_thunk
push ebx
push edx
cdq
.if edx == 0
inc eax
inc eax
add eax, [dwImageBase]
.else
and eax, 7FFFFFFFh
.endif

push eax
push esi
call GetProcAddress
mov [ebx],eax
pop edx
pop ebx
add edx, 4
add ebx, 4
jmp @@next_thunk

@@last_thunk:
add edi, 14h
jmp @@next_module

@_done:

// SLV

-----
Shalom ebanats!



 eXeL@B —› Крэки, обсуждения —› VirtualAddress директории импорта из IMAGE_DATA_DIRECTORY
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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