eXeL@B —› Крэки, обсуждения —› VirtualAddress директории импорта из IMAGE_DATA_DIRECTORY |
Посл.ответ | Сообщение |
|
Создано: 08 декабря 2005 00:28 · Личное сообщение · #1 |
|
Создано: 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 |