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

IDA.WLL


Ищем строку с именем любой IDC функции (например AskYN) - и видим, что смещение на нее расположено в одном из полей структуры, служащей для bindingа функций во встроенный IDC движок, адрес начала массива таких структур у меня был 0x1008D9C0. Структура имеет три поля - сначала ссылка на строку - имя функции в IDC, затем указатель на функцию, а последнее поле описывает типы аргументов функции. Об этом последнем поле хочется сказать подробнее - оно представляет собой указатель на массив байт. Каждый байт в этом массиве описывает собой один аргумент экспортируемой в IDC функции, значения байт:

  • 1 строковый аргумент
  • 2 числовой аргумент (long)
  • 4 переменное число аргументов, как в функции Message

  • 0 означает конец списка описания аргументов.
  • Для удобства я переименовал с помощью IDC scrpitа rename_f.idc все экспортирумые в IDC функции. Оказалось, что далеко не все функции описаны в idc.idc. Теперь у нас есть полный список всех функций IDC, а также реализации IDC функций с помощью API - уже немало.



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