Набор статей и руководств по дизассемблеру IDA


Заshitа


Проанализировав логи моей faked IDA.WLL я пришел к выводу, что многие из сказок, которыми нас пугал в детстве наш французский товарисчь tsehp, не соответствуют действительности. В частности, мои распакованные версии IDAW.EXE (консольная версия пользовательского интерфейса, написанная на TurboVision for Win32), PC.W32 (дизассемблер x86 процессора), IDA.WLL (собственно дизассемблер engine) и PE.LDW (загрузчик файлов в PE формате) не проверяются свою целостность, и вообще чью бы то ни было целостность (что собственно и позволило использовать технику с подменой DLL - даже оригинальные запакованные версии работали с моей faked IDA.WLL без всяких угрызений совести). По крайней мере за довольно продолжительное время работы распакованными версиями никаких видимых недокументрированных изменений с генерируемыми файлами замечено за три недели не было. Итак, по моему необоснованному мнению пока обнаружены только следующие элементы защиты (естественно недокументированные в файлах заголовков из IDA SDK - я описал их в собственном файле заголовков undoc.hpp):

  • экспортируемая таки из ida.wll переменная int isregd. Время от времени ее значение проверяется кое-где (ну, Вы понимаете в общем, что я хотел сказать :-). Чтобы программа считала себя зарегистрированной, ее значение должно равняться 1.
  • Экспортируемая опять таки из ida.wll функция

    char *Registration(char *);

    Она вызывается почти сразу же после вызова init_database (см. описание этой функции в файле заголовков kernwin.hpp), аргументом ей нужно передавать кусок памяти размером байт примерно 0x400. Функция вернет информацию о Вашей лицензии, прочтя при этом файл ida.key и установив соответствующим образом вышеупомянутую переменную isregd.

  • Собственно больше ничего работающего с файлом ida.key или портящего файлы выявлено не было. Я не могу гарантировать, что такой код действительно отсутствует - мне неинтересно заниматься защитой данного программного продукта. Если Вам захочется стать героем (и получить посмертно орден Сутулова за службу Отечеству третьей степени) и Вы решите сделать полностью чистую версию IDA Pro, советую внимательно изучить функцию Registration. Я почему-то верю, что в ней достаточно установить значение isregd в 1 и вернуть строку вида

    Red Plait (1-user license 3/2001)

    Впрочем, все эти досужие вымыслы нуждаются в проверке суровой действительностью...



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