Привет люди!
Для тех кто не знает или не умеет делать шелл код. Хочу продемонстрировать небольшой пример!
Данные пример будет вызывать функцию MessageBoxA в любом процессе
1. Начнем с создание и настройки проекта под шелл код.
- Жмем создать проект и выбираем Win32
- Ставим галочку на Пустой проект и отключаем SDL
- Создаем файл C++
- Дальше заходим в свойства проекта
- Прописываем точку входа EntryPoint (Определит от куда будет начинаться наша программа и уберет лишнии зависимости)
2. Напишем нашу точку входа (EntryPoint - название то которое мы прописали в настройках. Этот тот же WinMain только указан вручную)
3. Для вызова функции на нужна структура в ней будут храниться данные
4. Напишем сам шеллкод или функция которая будет выполняться в процессе
Прототип основан на стандартной функции
5. Напишем функцию которая будет создавать и заполнять нашу структуру с данными в процесс
6. Запускаем наш ShellCode)
Общий принцип:
- Описать функцию без лишних вызовов.
- Описать структуру с данными которые нам нужно передать нашей функции.
- Записать все эти данные в процесс
Открываем процесс в который мы будем инжектить код -> Выделяем в нем память под все данные(Структуру, Функцию) -> Записываем структуру и функцию в выделенное место -> Создаем поток на нашу функцию и передаем в параметрах потока адресс нашей структуры.
Пример:
Выполняется только наш код который мы записали. Без инжекта длл и прочего
Надеюсь у вас получится)