Прочитав небольшой туториал по WP, мне показалось что WP - это очень мощный инструмент и поэтому данным инструментом должен уметь пользоваться каждый, особенно если вы будущий хакер. Все примеры
по возможности будут связаны с игрой darkorbit.
Так что же такое WP? WP (Wicked Patcher) - это редактор пакетов. Основное его назначение это принимать пакеты от сервера, редактировать их и отправлять отредактированные пакеты на сервер.
У вас может возникнуть вопрос: а для чего вообще нужно редактировать пакеты? Ответ прост - для того, чтобы добавить свои функции, которые на сервере не предусмотрены, а также изменить ход событий.
Из своих функций например можно отметить - показ невидимых игроков или автоматическое взятие игрока в лок. Данные функции на сервере игры darkorbit не предусмотрены, однако их можно добавить в свой арсенал и всегда быть чуть впереди других игроков, но для этого нужно
разбираться в скриптах WP. Поэтому изучением данных скриптов мы сейчас и займёмся.
Сразу следует отметить, что скипты WP работают только внутри WP (это вам не .exe файлы или
java-скрипты, которые можно запустить отдельно в windows).
Скрипты WP бывают трёх типов:
1) с расширением .fsc (FS)
2) с расширением .sc (WPS)
3) с расширением .xml (XML)
Автор создавший WP рекомендует пользоваться первым вариантом (.fsc). Объясняет он этот выбор тем,
что движок WPS уже устарел и больше не поддерживается. XML неудобен тем, что при сохранении файл компилируется и его уже невозможно использовать для дальнейшего редактирования. Ну чтож, логично, учтём данные рекомендации и продолжим обучение.
Прежде всего познакомимся поближе с редактором, где мы будем писать свои скрипты, редактировать их и в случае если скрипт получится удачный сохранять его для дальнейшего использования или передачи третьим лицам.
Итак, открываем WP и переходим на вкладку "Proxy PC/PPC панель/Script Tester". Если у вас ещё по каким-то причинам не скачан WP, то незамедлительно сделайте это. Официальный сайт WP находится по адресу:
[Ссылки могут видеть только зарегистрированные пользователи. ]
На этом сайте вы всегда найдёте свежую версию WP.
После скачивания и первого запуска появится главное окно WP:
[Ссылки могут видеть только зарегистрированные пользователи. ]
У него две основные вкладки, которыми мы будем пользоваться:
1) PPC-панель
На этой вкладке находится редактор ScriptTester (основная область нашей работы)
Также здесь расположена панель, с помощью которой мы будем цеплять наши скрипты.
2) MI-панель
Эта панель нам понадобится чтобы прицепить WP к запущенному процессу. Это может быть браузер
(firefox, opera, IE и др.), IBot, UDOBot и вообще любой запущенный процесс.
Итак, как и было сказано выше открываем вкладку "Proxy PC/PPC панель/Script Tester":
[Ссылки могут видеть только зарегистрированные пользователи. ]
Комментарии думаю тут излишне, всё показано на скрине.
Итак,перед нами рабочая область,что дальше? А дальше разберём структуру скрипта. Как и в любом языке программирования здесь есть константы, переменные, процедуры, функции, условные блоки,
логические и математические операторы и много чего ещё. Следует отметить, что синтаксис очень похож на язык программирования pascal/delphi, поэтому кто знаком с этими языками им будет проще.
Писать сами мы пока ничего не будем, а загрузим готовый пример. Скопируйте приведённый ниже текст и вставьте его в ScriptTester:
------------------------------------------------------
// Наш первый скрипт, который запускает paint
const _apprun = 'C:\WINDOWS\system32\mspaint.exe'; // здесь укажите полный путь до запускаемого приложения
var hl : Handle;
s,s1 : string;
i,j : integer;
Procedure OnCreate;
begin
hl := gDLL.LoadLib('kernel32.dll');
gDLL.CallFunc3(hl,'Beep',1000,100,null);
s := hstr('',255);
s1 := hstr('',255);
pInt(s,68,1,4);
i := gDLL.CallFuncF10(hl,'CreateProcessA','dsddddddss', 0, _apprun+#0, 0, 0, 0, 0, 0, 0, s, s1);
j := GetLastError;
s := ''; s1 := '';
if i = 0 then begin
writelogln(format('ошибка : %s',[SysErrorMessage(j)]));
end;
gDLL.freelib(hl);
end;
begin
end.
--------------------------------------------------------
После того как скопировали исходник в ScriptTester, обязательно проверьте работоспособность скрипта. Для этого нажмите на ScriptRun. Если приложение paint запустилось, значит всё в порядке и скрипт можно сохранить. Не забудьте также заглянуть во вкладку TesterLog, там пишется о результатах работы скрипта и указываются ошибки, если они имеются.
Комментарии к нашему скрипту:
Как вы могли уже заметить двойной слеш "//" означает комментарий. То есть всё что следует после этого знака, компилятором не учитывается. Комментарии делаются программистом для лучшего понимания программы. Хорошим стилем программирования считается указание в самом начале заголовка, т.е. что это за программа и для чего она предназначена. Данная информация бывает очень полезна, т.к. спустя продолжительное время может потребоваться отредактировать
собственный скрипт и вы не сможете вспомнить что обозначает та или иная переменная.
Дальше в нашем скрипте идёт константа _apprun. Саму константу можно назвать как угодно (естественно использовать можно только английский алфавит), но перед константой должно стоять служебное слово Const.
var - это служебное слово для переменных.
procedure - это служебное слово для процедуры. Причём в нашем примере используется стандартная процедура. Процедуры можно писать и самому.
После каждой инструкции/строчки обязательно ставить точку с запятой.
В конце стоит обязательный блок:
begin
end.
в отличие от процедур, функций и прочих переменных, которые могут отсутствовать в скрипте, наличие блока begin/.end обязательно.
Ну думаю для первого урока хватит. Изучайте, анализируйте, экспериментируйте и ждите дальнейших уроков. Если же вы опытный юзер и хорошо разбираетесь в скриптах, то можете написать собственную обучающую главу (скрипты желательно на тематику darkorbit). И помните, чем больше обучающих примеров
у нас будет, тем быстрее мы освоим инструмент под названием WP.
Procedure OnCreate;
begin
hl := gDLL.LoadLib('kernel32.dll');
gDLL.CallFunc3(hl,'Beep',1000,100,null);
s := hstr('',255);
s1 := hstr('',255);
pInt(s,68,1,4);
i := gDLL.CallFuncF10(hl,'CreateProcessA','dsddddddss', 0, _apprun+#0, 0, 0, 0, 0, 0, 0, s, s1);
j := GetLastError;
s := ''; s1 := '';
if i = 0 then begin
writelogln(format('ошибка : %s',[SysErrorMessage(j)]));
end;
gDLL.freelib(hl);
end;
begin
end.
--------------------------------------------------------
procedure - это служебное слово для процедуры. Причём в нашем примере используется стандартная процедура. Процедуры можно писать и самому.
После каждой инструкции/строчки обязательно ставить точку с запятой.
В конце стоит обязательный блок:
begin
end.
Всё это есть в мануале к проге, но ты забыл написать самое главное: Надо хоть немного соображать что вы делаете,для чего вы это делаете и какой результат должен быть, а не просто взять скрипт вставить посмотреть что будет.
Вот к примеру что это?: "procedure - это служебное слово для процедуры. Причём в нашем примере используется стандартная процедура. Процедуры можно писать и самому."
Это равносильно написать:"Возьмите кривошипно-шатунный механизм вставьте туда то, соберите всё и вуаля - двигатель заработал.Пробуйте,меняйте размеры,посмотрите что будет.Да ничё хорошего не будет."Но надо же знать что это для чего это.
Ну взял я скрипт ну вставил, о щастье запустился Paint. Ну поменял кое что запустилась другая прога и что с этого?
Что всё это означает и за что отвечает:" Procedure OnCreate;
begin
hl := gDLL.LoadLib('kernel32.dll');
gDLL.CallFunc3(hl,'Beep',1000,100,null);
s := hstr('',255);
s1 := hstr('',255);
pInt(s,68,1,4);
i := gDLL.CallFuncF10(hl,'CreateProcessA','dsddddddss', 0, _apprun+#0, 0, 0, 0, 0, 0, 0, s, s1);
j := GetLastError;
s := ''; s1 := '';
if i = 0 then begin
writelogln(format('ошибка : %s',[SysErrorMessage(j)]));
end;
gDLL.freelib(hl);
ИМХО. Тема не для новичков и самостоятельного изучения. Есть мануал к проге но без помощи не обойтись если с ноля начинать.
Последний раз редактировалось klivarius; 22.10.2010 в 18:20.
А можно сам язык рассмотреть поподробнее на примере одного из скриптов( с позволение автора) или на примере своего собственного на тематику ДО?
Свои собственные? Прикалываешься что-ли? Я только начал изучение WP, поэтому своих скриптов у меня нет. А исходники чужих скриптов мне выкладывать запретили.
Ну взял я скрипт ну вставил, о щастье запустился Paint. Ну поменял кое что запустилась другая прога и что с этого?
Что всё это означает и за что отвечает:" Procedure OnCreate;
begin
hl := gDLL.LoadLib('kernel32.dll');
gDLL.CallFunc3(hl,'Beep',1000,100,null);
s := hstr('',255);
s1 := hstr('',255);
pInt(s,68,1,4);
i := gDLL.CallFuncF10(hl,'CreateProcessA','dsddddddss', 0, _apprun+#0, 0, 0, 0, 0, 0, 0, s, s1);
j := GetLastError;
s := ''; s1 := '';
if i = 0 then begin
writelogln(format('ошибка : %s',[SysErrorMessage(j)]));
end;
gDLL.freelib(hl);
ИМХО. Тема не для новичков и самостоятельного изучения. Есть мануал к проге но без помощи не обойтись если с ноля начинать.
Так как это первая часть из серии "Изучаем скрипты WP", то я не хотел её загромождать подробными объяснениями. Для первой части это и так большая нагрузка.
По мере появления новых статей новичок будет узнавать всё больше и больше для себя и в конце концов сможет создать что-то своё.
Свои собственные? Прикалываешься что-ли? Я только начал изучение WP, поэтому своих скриптов у меня нет. А исходники чужих скриптов мне выкладывать запретили.
Как тогда можно создавать мануал для новичков, если сам толком ничего не умеешь?
Как тогда можно создавать мануал для новичков, если сам толком ничего не умеешь?
Создавать мануал нужно как раз в тот момент, пока сам являешься начинающим. Когда же человек становится профессионалом ему кажутся многие вещи очевидными, но для новичка - это набор профессиональных ничего не говорящих терминов. Поэтому обучающие статьи нужно писать на стадии обучения.