Низкоуровневая сборка Win32 - PullRequest
       2

Низкоуровневая сборка Win32

4 голосов
/ 28 сентября 2010

Знаете ли вы, где я могу найти примеры программ Windows низкого уровня для сборки?

У меня есть несколько примеров использования макросов (NASM, MASM), но я хочу чистую сборку, чтобы позже можно было создать шелл-код.

Большое спасибо, ребята!

Ответы [ 6 ]

1 голос
/ 28 сентября 2010

Этот урок может быть полезен для вас: winamtut

Также эта тема на форуме MASM также хороша.

Если ваша архитектураx64, попробуйте эту ссылку тоже.

И, наконец, если вам интересна какая-то теория, возможно, эта ссылка может быть хорошей.

1 голос
/ 28 сентября 2010

Лучший способ действительно (и быстро) изучить сборку win32 - это декомпилировать простые программы win32.Вы можете скачать реверсивные уроки Лены с tutsforyou.com.В качестве альтернативы вы можете попробовать изменить меня с osix.net - у них есть несколько довольно простых программ для вас, и вы можете увидеть исходный код masm32 после завершения уровня.

tools: ollydbg, masm32 и т. д.

книги: ассемблерное кодирование win32 от Goppit, PE-сборник arteam, руководство для разработчиков Intel

hxxp: //osix.net

hxxp: // tuts4you.com / download.php? list.17

hxxp: //www.intel.com/products/processor/manuals/

1 голос
/ 28 сентября 2010

Если под «чистой сборкой» вы подразумеваете «не выполненный как макрос или библиотека», то это то, что вам нужно сделать:

  • скачать пакет masm32
  • проверьте количество образцов в копиях, многие будут использовать CreateWindow или CreateWindowEx
  • запустить собственную программу
  • ссылка в windows.h
  • используйте макрос invoke для вызова CreateWindow или CreateWindowEx
  • если вы не хотите использовать invoke, просто push параметры в стеке и call функции напрямую - так как в любом случае это делает для вас

Вы также можете получить много помощи, используя пакет MASM на форуме masm .

1 голос
/ 28 сентября 2010

Работа с графическим интерфейсом Windows на ассемблере - это много работы.Вот почему в найденных вами примерах используются макросы - это избавляет от некоторых трудностей.

Если вам действительно нужен чистый язык ассемблера, отличный способ - спросить свой компилятор.Напишите некоторый C-код для вызова CreateWindow или чего-либо еще, а затем сгенерируйте листинг сборки из компилятора (или выполните его с помощью отладчика).

0 голосов
/ 29 июля 2012

Чтобы научиться создавать шелл-код, я бы предложил создать очень простую программу на c, которая будет делать то, что вы хотите, чтобы шелл-код делал, и затем разбирать ее, используя IDA или Immunity (или любой другой отладчик / disasembler, с которым вы знакомы).Чем вы видите, какие инструкции используются.

Я бы также порекомендовал следующие книги:

Взлом: Искусство эксплуатации (2-е издание)

Справочник мошенника

0 голосов
/ 28 сентября 2010

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

Я бы посоветовал вам взглянуть на FASM вместо MASM, поскольку он «ближе к металлу» и напрямую поддерживает двоичный вывод.

...