У меня есть упражнение переполнения буфера. После некоторого размышления я успешно завершаю работу приложения и перезаписываю точные 4 байта EIP, а затем мне удается преобразовать JMP в ESP, который содержит часть моей полезной нагрузки (начало 40 байтов полезной нагрузки, также я заметил, что EBP также ссылается на мой другой часть полезной нагрузки, но также эта часть занимает 40 байт (я успешно могу перенаправить поток в часть шелл-кода EBP).
Я пытался запустить egg-hunter, но из-за того, что у него windows x64, шелл-код hunter имеет длину 46 байт, поэтому он не может работать с имеющимся у меня 40-байтным пространством, также я не нашел никаких указаний на остаток моего буфера что охотник его найдет.
Некоторая информация о буфере
buffer = "A" * 7 + ret + "^" + "B" * 1000 (можно использовать только 40)
- Я могу заменить местоположение «B» в буфере на «^», но такая же проблема существует
- "^" - это символ, вызывающий сбой
- перезапись eip после 7 байтов
- B - остальная часть полезной нагрузки, но может использоваться только 40 байтов, остальные просто обрезаны
- buffer = "A" * 7 + ret + здесь я также могу поставить 40 байт + "^" + "B" * 1000, я пробовал это с охотником за яйцами и его работами, но все еще Я приземлился для небольшого буфера и той же проблемы ..
Есть идеи?
Спасибо