Безопасность вызовов между защищенными функциями

Issues related to VMProtect
Post Reply
vov
Posts: 2
Joined: Fri Aug 28, 2015 10:41 am

Безопасность вызовов между защищенными функциями

Post by vov »

Есть 2 функции. Каждую из них я обрамляю маркерами, чтобы накрыть виртуальной машиной. Но одна из этих функций вызывает вторую.
Скажите, сможет ли взломщик дизассемблировать программу и подсмотреть/заменить параметры вызова на стеке?
Если да, то как правильно поступать в таких случаях, чтобы предотвратить взлом?
Admin
Site Admin
Posts: 2584
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: Безопасность вызовов между защищенными функциями

Post by Admin »

Для безопасного вызова защищенной функции из другой защищенной функции вместо маркеров необходимо добавить в проект все необходимые функции по имени (при наличии MAP файла). При использовании маркеров прологи и эпилог функции может остаться незащищенным и взломщик может перехватить управление в этом месте.
Keroline
Posts: 3
Joined: Sun Sep 06, 2015 9:22 am

Re: Безопасность вызовов между защищенными функциями

Post by Keroline »

После защиты функции с помощью map файла мы можем наблюдать в начале jmp, который ведет в секцию VMP.

Если первая функция будет вызывать вторую, то управление будет переходить на начальный jmp второй функции?

Если да, то взломщик сможет перехватить вызов в этом месте. В старой версии дела обстояли так. А сейчас как?
Admin
Site Admin
Posts: 2584
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: Безопасность вызовов между защищенными функциями

Post by Admin »

Если первая функция будет вызывать вторую, то управление будет переходить на начальный jmp второй функции?
Если обе функции завиртуализированы, то перехода на начальный JMP вызываемой функции не будет.
Если да, то взломщик сможет перехватить вызов в этом месте. В старой версии дела обстояли так. А сейчас как?
И в старой и в новой версии работает одинаково как это описано выше.
mroleg
Posts: 4
Joined: Tue Jun 07, 2016 9:17 am

Re: Безопасность вызовов между защищенными функциями

Post by mroleg »

А если полностью завиртуализированная через MAP-файл ф-ия (1) вызывается из завиртуализированного между маркерами блока другой ф-ии (2) -
можно ли будет перехватить переход на начальный JMP ф-ии (1) в таком случае?
Admin
Site Admin
Posts: 2584
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: Безопасность вызовов между защищенными функциями

Post by Admin »

Все тоже самое что с CALL.
mroleg
Posts: 4
Joined: Tue Jun 07, 2016 9:17 am

Re: Безопасность вызовов между защищенными функциями

Post by mroleg »

Не уверен, что правильно это понял: т.е. из (2) переход на начальный jmp (1) все-таки будет?
Admin
Site Admin
Posts: 2584
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: Безопасность вызовов между защищенными функциями

Post by Admin »

Если обе функции завиртуализированы, то перехода на начальный JMP вызываемой функции не будет.
Post Reply