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

 eXeL@B —› Программирование —› Загрузить 64-битную kernel32 из 32-битного кода.
Посл.ответ Сообщение

Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 04 июня 2016 20:47
· Личное сообщение · #1

Всем привет. Скомпилировал x64 шеллкод на C++ в виде EXE без импорта. В нем получаю NTDLL через PEB->Ldr, получаю адреса нужных функций, и пробую вручную загружать EXE переданный в качестве параметра в точку входа EXE. Облом случается при попытке загрузить kernel32 (kernelbase грузтся отлично) на Win7 x64. Код вызываю через call 33:xxxxxxxx. Делаю лог - фейл случается при вызове LdrLoadDll с библиотекой kernel32 - STATUS_CONFLICTING_ADDRESSES. Из-за этого не может загрузиться ни одна библиотека. Повторюсь kernelbase и ntdll работают отлично, память под секции и заголовки выделяется успешно, проблема при обработки импорта.
Я хотел бы узнать, как можно обойти данное поведение. К примеру если я вручную буду загружать kernel32 и добавлю соответствующие записи в PEB->Ldr будет ли это работать? Просто в списке лоадера, насколько я знаю, есть кроме трех основных листов еще список по хешам имен библиотек, который различается на разных версиях винды. Может кто делал подобное, просто не хочется делать напрасную работу в этом направлении,а потом обломится что это не будет работать.
Спасибо.




Ранг: 105.6 (ветеран), 36thx
Активность: 0.10
Статус: Участник

Создано: 05 июня 2016 06:30
· Личное сообщение · #2

Явно деструктив пишите - вам на другой форум. На exploit например.



Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 05 июня 2016 11:48 · Поправил: The trick
· Личное сообщение · #3

8756987690


 eXeL@B —› Программирование —› Загрузить 64-битную kernel32 из 32-битного кода.
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати