Всем привет! Недавно попался упакованный файлик (малвара), решил разобрать, дамп снял, нашёл оффсеты, куда хотелось бы поставить бряки и посмотреть что да как. Т.к. это малвара, для отладки выбрал Remote Win32 Debugger в IDA и вот тут возникла проблема, после распаковки сампл становится в памяти больше, чем оригинальный файл и найденные в дампе оффсеты просто отсутствуют в файле. Вопрос такой: Как можно настроить удалённую отладку в Иде (или в любом другом дебаггере) по оффсету, если этот оффсет отсутствует в файле?
То, что я сделал, даже не распаковка, я просто дал процессу поработать некоторое время и снял дамп Хочу уточнить: как поставить хардварные бряки, если по сути оффсеты не известны?
я не совсем понимаю, что значит оффсеты не известны? программа выделяет память и копирует себя туда, каждый раз по разным адрессам?
Ну то и значит Мне нужны определённые оффсеты, которые я узнал посмотрев дамп. Но прямо до запуска файла на эти оффсеты хардварную бряку поставить нельзя, такой оффсет просто отсутствует в файле. Получается оффсет в файле до запуска того участка кода, который нам нужен не известен.
хардварные бряки ставятся непосредственно по адресу, если он известен то добавляете бряк указывайте адрес и условия срабатывания в исполнение
Клёво, спасибо большое Ещё вопрос, ImageBase программы всегда будет постоянным? (Нужен для того, чтобы сложить его в оффсетом и получить адрес в памяти).
Возникла следующая проблема: Вот определился куда ставить бряку, поставил, стартую файл на удалённой отладке и Ида вываливается с ошибкой доступа к памяти, а если просто запустить файл, не под отладкой то отрабатывает корректно. Значит ли это, что малвара защищается от дебага?
я код хотел который к ошибке приводит.... хотя судя по всему там мусор... Трассируйте, смотрите что к чему...
Сложно его достать, как я говорил, сам файл запакован. А во время отладки сложно сказать где упало...