Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ida.final.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
6 Mб
Скачать

Long atol (char str);

Функция преобразует строковое десятичное значение в длинное целое. Постфикс 'h' игнорирует, а, встретив префикс 'x', возвращает нулевое значение.

операнд

Пояснение

srt

Строка, заканчивающаяся нулем

Return

==return

пояснения

длинное целое

==0

Ошибка

Пример:

Message ("%x \n",

atol ("16")

);

10

Разное char Compile (char filename);

Очень полезная функция, компилирующая в память указанные файлы (скрипты IDA). Все функции, объявленные в них, будут глобальными и доступными всем остальным скриптам вплоть до завершения сеанса работы с IDA.

Обычно так главный модуль скрипта подключает все остальные необходимые ему функции, находящиеся во внешних файлах. Обратите внимание, что 'Compile' только компилирует, но не запускает функцию 'main()'. Если модуль требует инициализации, то 'main' придется вызвать вручную. Однако в компилируемом файле не должно содержаться функции, совпадающей по имени с текущей (то есть вызвавшей ‘Compile’). Иначе поведение дизассемблера окажется непредсказуемым. В остальных случаях совпадение имен откомпилированных функций приводит лишь к их замещению.

Заметим, что системные функции таким образом перекрыть не удастся и выдастся сообщение об ошибке. Любопытно, что 'Compile' возвращает не код ошибки, а осмысленную символьную строку. В случае успеха операции - пустую.

Пример:

demo.idc:

static MyFunc()

{

Message("Hello, Sailor! \n");

}

compl.idc

static main()

{

Compile("demo.idc");

MyFunc();

}

Загрузим и запустим на выполнение 'compl.idc' На экране появиться 'Hello, Sailor!'. Нетрудно убедиться, что функция 'MyFunc' доступна и с консоли и с остальных скриптов.

Заметим, что IDA сложным образом манипулирует с понятием текущего каталога, поэтому если приведенный пример не сработает, попробуйте указать полный путь к файлу 'demo.idc'

Void Exit (long code);

Функция осуществляет выход из IDA в операционную систему, сохраняя все последние изменения и закрывая базу.

Выполнение скрипта при этом прерывается. Закрытие активных файлов не гарантируется.

Операнд

назначение

code'

код завершения процесса

Long Exec (char command);

Функция позволяет выполнить команду операционной системы, не выходя из IDA.

Операнд

Пояснение

command

Команда операционной системы (как правило командного интерпретатора command.com)

Эта команда расширяет возможности скриптов. Можно, например, удалять временные файлы, или склеивать их командой 'copy' и делать многие другие вещи, в том числе писать вирусы и троянские компоненты. (Поэтому с присланными вам скриптами сомнительного происхождения следует вести себя крайне осторожно)

Для запуска параллельного процесса предусмотрена команда 'start', например Exec("start command.com"). В Windows приложение запуститься в соседнем окне. В этом случае функция возвращает не код завершения процесса (поскольку таковой еще не известен), а результат исполнения программы, использующейся операционной системой для запуска приложения. Для консольных программ, это как правило ‘conagent’

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

Пример использования:

Exec (“command.com /c del *.tmp”);

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]