Вопрос или проблема
Существует ли эквивалент команды !pvefindaddr p2
(поиск всех комбинаций pop/pop/ret в пространстве памяти процесса) в mona.py?
Кроме того, есть ли возможность запустить pvefindaddr в последних версиях Immunity Debugger? В данный момент, когда я пытаюсь выполнить pvefindaddr, возникает следующая ошибка:
Ошибка
---------------------------
pycommands: не удалось выполнить сценарий.
Трассировка (последний вызов последний):
Файл "C:\Program Files\Immunity Inc\Immunity Debugger\PyCommands\pvefindaddr.py", строка 1997, в main
imm.Log("")
AttributeError: объект 'Debugger' не имеет атрибута 'Log'
---------------------------
ОК
---------------------------
Если я правильно помню, Immunity Debugger – это заброшенное программное обеспечение, я бы порекомендовал использовать mona под windbg вместо этого (https://github.com/corelan/windbglib). Вы можете использовать !mona seh
или команду a
(https://www.corelan.be/index.php/2011/07/14/mona-py-the-manual/), чтобы искать ваши гаджеты.
Ответ или решение
Конечно, давайте разберем ваш вопрос более детально.
Вопрос, который вы подняли, касается использования команды !pvefindaddr p2
в Immunity Debugger и её эквивалента в mona.py
. Как вы заметили, команда !pvefindaddr
не работает в последних версиях Immunity Debugger, и вы получили ошибку, указывающую на то, что объект ‘Debugger’ не имеет атрибута ‘Log’. Возможно, это связано с тем, что Immunity Debugger больше не поддерживается, и некоторые функции устарели и не работают должным образом.
Решение через mona.py
:
Для поиска gadget-ов, подобных pop/pop/ret
, вы можете использовать mona.py
в сочетании с WinDbg, как вы упомянули. Вот шаги для выполнения этого:
-
Убедитесь, что вы установили
mona.py
и правильно его настроили вWinDbg
. -
Откройте целевой процесс в
WinDbg
и инициализируйтеmona
, если это ещё не сделано:!mona config -set workingfolder C:\mona\%p
-
Теперь вы можете использовать команду для поиска нужных гаджетов. Например, используйте команду
!mona seh
, которая может помочь вам найти стековые гаджеты, или вы можете использовать команду!mona findgadget
, чтобы найти любые специфические конструкции, напримерpop/pop/ret
.Примерно так:
!mona find -type pop pop ret
-
Также, вы можете использовать общую команду
!mona asm
, чтобы выполнить поиск по всей памяти на наличие различных сгенерированных вами инструкций, включая сочетанияpop/pop/ret
.
Обязательно ознакомьтесь с документацией на сайте Corelan, чтобы получить более детальные инструкции и примеры использования:
Заключение
Поскольку Immunity Debugger больше не поддерживается, переход на WinDbg
и использование mona.py
— это разумное и современное решение для поиска полезных уязвимостей и гаджетов. Это позволит вам максимально эффективно использовать ваши инструменты для безопасности. Если у вас есть еще вопросы, не стесняйтесь задавать!