Сейчас на форуме: jinoweb, bartolomeo (+5 невидимых) |
eXeL@B —› Программирование —› Загрузить 64-битную kernel32 из 32-битного кода. |
Посл.ответ | Сообщение |
|
Создано: 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 будет ли это работать? Просто в списке лоадера, насколько я знаю, есть кроме трех основных листов еще список по хешам имен библиотек, который различается на разных версиях винды. Может кто делал подобное, просто не хочется делать напрасную работу в этом направлении,а потом обломится что это не будет работать. Спасибо. |
|
Создано: 05 июня 2016 06:30 · Личное сообщение · #2 |
|
Создано: 05 июня 2016 11:48 · Поправил: The trick · Личное сообщение · #3 |
eXeL@B —› Программирование —› Загрузить 64-битную kernel32 из 32-битного кода. |
Эта тема закрыта. Ответы больше не принимаются. |