Защита игр от взлома

         

дизассемблерный листинг


Динамические библиотеки. Имена неэкспортируемых функций уничтожаются компилятором, экспортируемые же по умолчанию остаются "как есть". Си++ компиляторы в дополнении к этому "замангляют" имена, дописывая к нем "зашифрованный" прототип функции, но IDA PRO с легкостью возвращает их в исходный вид. Если защитный модуль реализуется в виде динамической библиотеки (как очень часто и бывает), наличие символьных имен (да еще с готовыми прототипами!) значительно упрощает анализ. В частности, OO Software (создатель одноименного дефрагментатора) любит таскать за собой библиотеку oorwiz.dll, что очевидно расшифровывается как "OO Registration Wizard", экспортирующую всего три функции, но зато каких (см. листинг 3). Всегда удаляйте все символьные имена из экспорта и вызывайте функции только по ординалу.

       3      0 00001FD0 RegWiz_InitLicMgr

       1      1 000019D0 RegWiz_InitReadOnly

       2      2 00001D00 RegWiz_InitTrial



Содержание раздела