Логика эксплуатации Python

Добавить Автора

В этой теме я научу простому приему Python для обработки полезной нагрузки или данных во время разработки эксплойта. Наиболее распространенной ошибкой нового разработчика эксплойтов является обработка данных, например преобразование типов, заполнение, создание исключений и т. д.

Разделение полезной нагрузки
Это полезно, когда вам нужно сократить полезную нагрузку, чтобы получить некоторое информационное значение, например: IP-адрес и порт, cookie стека, rbp (базовый указатель), обратный адрес.

Распаковать данные
Во время запроса на получение пакета (process.recv(1024)) данные необходимо сначала распаковать для логического использования (например: xor, add, подраздел, раздел и т. д.). без этого у вас будет головная боль при преобразовании типов и даже реализации некоторых новых алгоритмов для начинающих для обработки таких данных.

Логический процесс

Кодировщик
Вы не можете просто использовать функцию hex(), возникает исключение: аргумент hex() не может быть преобразован в шестнадцатеричный strong>. вам нужно использовать правильную функцию кодирования вызова для строки.

Упакуйте данные
Когда вы будете готовы отправить свои данные/полезную нагрузку . Сначала следует упаковать данные/полезную нагрузку.

регулировка длины
Иногда пакет, который вы получаете, короче ожидаемого значения. Например, пакет, полученный после утечки, некоторая информация составляет 6 байтов, короткие 2 байта. Обычно короткий байт - это нулевой байт, возврат каретки (CR) или перевод строки (LF). Вам следует реализовать заполнение ваших данных/пакета.

Логика цикла кодирования и декодирования
Вы можете просто манипулировать каждым байтом полезной нагрузки с помощью логики цикла.

Грубая логика

Все это основано на моем личном опыте разработки эксплойтов. Это достаточно важно, чтобы укрепить ваши навыки кодирования. До свидания~ :D