Size: a a a

Ассемблер

2020 December 21

DR

Dima Richev in Ассемблер
А я другое придумал, вроде работает
источник

A

Aleksandr in Ассемблер
Пример сгенерированного исходника
источник

A

Aleksandr in Ассемблер
Пример лога
источник

DR

Dima Richev in Ассемблер
Запустить хендлер в другом потоке, который получает FS:0x1A4, где хранится адрес последнего исключения.
Запускаешь проверяемый поток (где происходит ACCESS_VIOLATION) и хукаешь EIP на выход:
источник

A

Aleksandr in Ассемблер
а зачем?
источник

DR

Dima Richev in Ассемблер
Aleksandr
а зачем?
Ну проверка же
источник

DR

Dima Richev in Ассемблер
Запустил - после ACCESS_VIOLATION сразу выходит, без крашей
источник

A

Aleksandr in Ассемблер
а, проверка адреса. я ж написал, для этого у винапи функция специальная есть
источник

A

Aleksandr in Ассемблер
Aleksandr
о, нашел решение, IsBadReadPtr
вот
источник

DR

Dima Richev in Ассемблер
Ааа.. Ну ладно
источник

DR

Dima Richev in Ассемблер
Не увидел
источник

A

Aleksandr in Ассемблер
вообще, вроде бы без хуков можно было переназначать обработчик исключений
источник

A

Aleksandr in Ассемблер
но точно не помню
источник

DR

Dima Richev in Ассемблер
Ну это для удобства. Там можно всё, что угодно делать
источник

DR

Dima Richev in Ассемблер
Можно поменять исключение, и дальше работать будет
источник

A

Aleksandr in Ассемблер
а проверка доступности памяти мне была нужна чтобы делать дамп памяти по адресам переданным как параметры
источник

DR

Dima Richev in Ассемблер
Так а что тебе изначально вообще надо было?
источник

A

Aleksandr in Ассемблер
генератор прокси-DLL
источник

DR

Dima Richev in Ассемблер
Ааа
источник

A

Aleksandr in Ассемблер
что я хоть и кривенько, но сделал
источник