Почему runPE не работает с определенным типом исполняемых файлов? - PullRequest
0 голосов
/ 19 января 2019

Я сейчас пытаюсь запустить исполняемый файл в памяти.Потому что очень вероятно, что кто-то спросит позже: да, он будет использоваться для вредоносного программного обеспечения, чтобы скрыть его от AV.Это только для образовательных целей, в частности для школьного проекта (будет частью моего выпуска).Однако вопрос касается чего-то другого.Я нашел действительно хороший источник на Github: https://github.com/aaaddress1/RunPE-In-Memory,, который отлично подходит для моих целей (я уже изменил его для своих целей и т. Д.), За исключением трояна, которого я хочу запустить.Я попробовал это с несколькими, например, Darkcomet или Darktrack (Это должно быть что-то старое, что уже хорошо известно, чтобы продемонстрировать, как вы можете использовать их повторно).Я думал, что поскольку Darkcomet закодирован в Delphi (который выводит нативный?), Он будет работать как любой другой EXE-файл (как те, что представлены в Github), но он просто не запускается.В Darkcomet также есть опция, позволяющая сделать файл вредоносного сервера заметным, так что это безопасно, чтобы я не провалился ни при одной переадресации портов.

Моим первым намерением было открыть EXE-файл в текстовом редакторе и посмотреть, есть ли у него такая же архитектура.Я могу найти " PE L " в обоих двоичных файлах, так что, насколько я знаю, они оба 32-битные.Что мне показалось странным, так это две строки

" Эта программа не может быть запущена в режиме DOS. " для скомпилированного загрузчика runPE и

"Эта программа должна быть запущена под Win32"для исполняемого файла троянца.

Кроме того, два двоичных файла различаются по первым символам: MZ и MZP .Открыв больше двоичных файлов и протестировав их, я пришел к выводу, что программы с «Эта программа должна работать под Win32» не работают.

Насколько я знаю и также гуглил, есть исполняемые файлы DOS и Windows.Но если есть только эти два типа, почему есть разница?« должен быть запущен под Win32 » == « не может быть запущен в режиме DOS. », по моему мнению.

Я также посмотрел эти два термина, но яПолучайте только Темы о людях, которые пытаются запустить эти Windows-PE в DOSBox или в подобных вещах.

Итак, мои настоящие два вопроса:

-В чем разница междуПрограмма должна быть запущена под Win32 "(Type1) и" Эта программа не может быть запущена в режиме DOS. "(Type2)

- Почему это не работает, если я хочу нажать (Введите Type1) в память с помощью исполняемого файла RunPe-InMemory (Type2), который я сделал из репозитория Github.

1 Ответ

0 голосов
/ 19 января 2019

В чем разница между ... (Тип1) и ... (Тип2)

Ничего:

Исполняемый файл "PE" состоит из некоторого MS-DOS EXE-файл, за которым следует 32- или 64-разрядная часть.

Если вы запустите исполняемый файл "PE" в MS-DOS (или любой совместимой операционной системе), DOS проигнорирует 32- или 64-битовая часть и выполнить файл MS-DOS EXE в начале исполняемого файла "PE".

Несколько программ написаны так, что файл DOS EXE в начале файла PE выполняеттак же, как часть Windows, так что вы можете использовать один и тот же файл EXE как в DOS, так и в Windows.

Однако в большинстве случаев часть DOS выводит только некоторые сообщения об ошибках, говорящие о том, что программа не может быть запущена под MS-DOS.

Здесь вы видите две разные программы MS-DOS в начале PE EXE-файлов;одна программа печатает сообщение об ошибке "This program must be run under Win32", другая печатает "This program cannot be run in DOS mode."

Кроме того, два двоичных файла различаются по первым символам: MZ и MZP

Этотакже нет разницы:

Третий байт файлов MS-DOS является одним из многих байтов, описывающих длину программы MS-DOS.Поскольку у вас разные программы MS-DOS, они также имеют разную длину.

В одном случае байт имеет значение 80, которое отображается как "P" в текстовом редакторе.

Inв другом случае байт может иметь значение 10 (в качестве примера), которое не отображается как символ в текстовом редакторе.

Почему runPE не работает с исполняемым файлом определенного типа?

Не увидев трояна, я не могу ответить на этот вопрос.

Однако я видел много троянов, которые не используют правильный формат файла "PE".

(Однако в этих случаях «ошибки» были после «PE L», а не в «MZ» -части.)

...