Доброго времени суток. kernel32!LoadLibraryA: push ebp mov ebp,esp nop pop ebp jmp 0B2E3ABD0h По адресу 0B2E3ABD0h память не выделена. Если запустить то переход выполняется и никакое исключение не возникает. Трассировка ничего не даёт, на этой команде отладчик выдаёт что память не выделена. Как это может быть такое ?
Библиотека защищена драйвером либо модуль, куда идет ссылка непосредственно сам драйвер ЗЫ: судя по всему у вас рут Потому как попытка безпалевного сплайса
скопировал kernel32.dll, изменил имя: LoadLibraryA: mov edi,edi push ebp mov ebp,esp cmp dword ptr ss:[ebp+8],0 push ebx push esi je short 00871D98 push 0087E2F0 [...] Всё нормаль там, попробую сдампить то.
Clerk Ты смотрел экспорт kernel32.dll в Олли У меня для LoadLibraryA там стоит тоже самое, что и у тебя. На самом деле LoadLibraryA находится совсем в другом месте - это сделано для защиты от примитивного хука.
valterg Это не защита от хука, а, как уже сказал zoool, хук. Правда скорее всего не руткитовский, а вполне правопорядочный.
Сдампил; Код (Text): ntdll.dll image base:7C900000h ntdll.dll section '.data': Address: 7C97C000h Size: 5000h ;0B2E3ABD0h $ ==> push ecx $+1 mov eax,dword ptr ss:[esp+8] $+5 push ebx $+6 push esi $+7 push edi $+8 push 0 $+A push eax $+B push B2E17118 $+10 lea ecx,dword ptr ss:[esp+20] $+14 push 0 $+16 push ecx $+17 mov dword ptr ss:[esp+20],0 $+1F call 7C97E7D0 $+24 test al,al $+26 jnz 7C97F1C8 $+2C push B2E3ABD0 $+31 call 7C97EA00 $+36 mov esi,eax $+38 mov edx,dword ptr ss:[esp+14] $+3C push edx $+3D call 7C97E970 $+42 push esi $+43 mov ebx,eax $+45 call 7C97EFE0 $+4A test eax,eax $+4C je short 7C97F175 $+4E mov ecx,dword ptr ss:[esp+14] $+52 lea eax,dword ptr ss:[esp+C] $+56 push eax $+57 push B2E40D6C $+5C push ecx $+5D call 7C97EEA0 $+62 push 0 $+64 push 0 $+66 mov edx,dword ptr ss:[esp+14] $+6A push edx $+6B push esi $+6C call 7C97EE80 $+71 test eax,eax $+73 jnz short 7C97F1C8 $+75 mov eax,dword ptr ss:[esp+14] $+79 lea edi,dword ptr ds:[esi+esi*2] $+7C push eax $+7D call dword ptr ds:[edi*4+B2E40CB0] $+84 mov esi,eax $+86 test esi,esi $+88 je short 7C97F1D2 $+8A test ebx,ebx $+8C je short 7C97F1AD $+8E push ebp $+8F call dword ptr ds:[B2E3B0A0] ;ntdll.RtlGetLastWin32Error $+95 push ebx $+96 mov ebp,eax $+98 call 7C97F020 $+9D push ebx $+9E call dword ptr ds:[edi*4+B2E40CB0] $+A5 push ebp $+A6 call dword ptr ds:[B2E3B08C] ;ntdll.RtlSetLastWin32Error $+AC pop ebp $+AD mov ecx,dword ptr ss:[esp+14] $+B1 push 0 $+B3 push ecx $+B4 push B2E17118 $+B9 lea edx,dword ptr ss:[esp+20] $+BD push esi $+BE push edx $+BF call 7C97E7D0 $+C4 test al,al $+C6 je short 7C97F1D2 $+C8 push 5 $+CA xor esi,esi $+CC call dword ptr ds:[B2E3B08C] ;ntdll.RtlSetLastWin32Error $+D2 mov eax,dword ptr ss:[esp+C] $+D6 test eax,eax $+D8 je short 7C97F1E1 $+DA push eax $+DB call dword ptr ds:[B2E3B0B8] ;kernel32.GlobalFree $+E1 mov eax,esi $+E3 pop edi $+E4 pop esi $+E5 pop ebx $+E6 pop ecx $+E7 ret 4 По адресам CallXX мусор.
ОС 32бита? стоит ключ /3GB? 0B2E3ABD0h адрес то не из юзермодных диапазонов. Вот все измысления. Выводы налицо.