Есть 2 функции. Каждую из них я обрамляю маркерами, чтобы накрыть виртуальной машиной. Но одна из этих функций вызывает вторую.
Скажите, сможет ли взломщик дизассемблировать программу и подсмотреть/заменить параметры вызова на стеке?
Если да, то как правильно поступать в таких случаях, чтобы предотвратить взлом?
Безопасность вызовов между защищенными функциями
Re: Безопасность вызовов между защищенными функциями
Для безопасного вызова защищенной функции из другой защищенной функции вместо маркеров необходимо добавить в проект все необходимые функции по имени (при наличии MAP файла). При использовании маркеров прологи и эпилог функции может остаться незащищенным и взломщик может перехватить управление в этом месте.
Re: Безопасность вызовов между защищенными функциями
После защиты функции с помощью map файла мы можем наблюдать в начале jmp, который ведет в секцию VMP.
Если первая функция будет вызывать вторую, то управление будет переходить на начальный jmp второй функции?
Если да, то взломщик сможет перехватить вызов в этом месте. В старой версии дела обстояли так. А сейчас как?
Если первая функция будет вызывать вторую, то управление будет переходить на начальный jmp второй функции?
Если да, то взломщик сможет перехватить вызов в этом месте. В старой версии дела обстояли так. А сейчас как?
Re: Безопасность вызовов между защищенными функциями
Если обе функции завиртуализированы, то перехода на начальный JMP вызываемой функции не будет.Если первая функция будет вызывать вторую, то управление будет переходить на начальный jmp второй функции?
И в старой и в новой версии работает одинаково как это описано выше.Если да, то взломщик сможет перехватить вызов в этом месте. В старой версии дела обстояли так. А сейчас как?
Re: Безопасность вызовов между защищенными функциями
А если полностью завиртуализированная через MAP-файл ф-ия (1) вызывается из завиртуализированного между маркерами блока другой ф-ии (2) -
можно ли будет перехватить переход на начальный JMP ф-ии (1) в таком случае?
можно ли будет перехватить переход на начальный JMP ф-ии (1) в таком случае?
Re: Безопасность вызовов между защищенными функциями
Все тоже самое что с CALL.
Re: Безопасность вызовов между защищенными функциями
Не уверен, что правильно это понял: т.е. из (2) переход на начальный jmp (1) все-таки будет?
Re: Безопасность вызовов между защищенными функциями
Если обе функции завиртуализированы, то перехода на начальный JMP вызываемой функции не будет.