WarCraft 3: Часть 4: Обобщение

Preload Exploit: работа с файлами
Эта глава - что-то вроде справочника по Preload Exploit. Тут обобщены две предыдущие главы.
Эта глава создана, чтобы вы не бегали по статье, ища нужную информацию.

Функции Preload Exploit

  • PreloadGenClear() - очищает буфер.
  • Preload(S) - записывает в буфер строку S. Также встречается в выходном файле.
  • PreloadGenEnd(F) - записывает содержимое буфера в виде кода в файл F. В пути к файлу вместо \ следует использовать \\.
  • PreloadGenStart() - насколько я понял, начинает записывать в буфер пути к текстурам и звукам. В общем, создаёт бесполезный мусор.
  • PreloadRefresh() - насколько я понял, делает то же, что и PreloadGenClear().
  • PreloadEnd(R) - встречается в конце выходного файла. Смысл её непонятен. В качестве параметра берёт real.
  • Preloader(F) - запускает функцию PreloadFiles из файла F. Если такой функции нет или есть синтаксические ошибки, то ничего не происходит. В пути к файлу вместо \ следует использовать \\.

В коде выходного файла:

  • Недоступны переменные из карты
  • Невозможно вызывать функции из кода карты при помощи call function()
  • Насколько я понял, можно вызывать native-функции. Если я ошибаюсь, поправьте меня.
  • ВАЖНО: Можно применять call ExecuteFunc(function) для вызова функций из кода карты.

Чтобы ввести в выходной файл свой код:

call Preload("\")\n <some code> \n //")

Как отрезать "call PreloadEnd"

Сразу перед записью в файл добавить функцию:
call Preload("\")\nendfunction\nfunction Other takes nothing returns nothing\n//")

Просмотров: 1 007

Комментарии пока отсутcтвуют