L2-Community.com - Bce o Lineage II  
Главная Регистрация Справка Пользователи Поиск Сообщения за день Все разделы прочитаны
 
 
Старый 16.05.2009, 16:58   #1
J-Fobos
Member of L2 Community
 
Аватар для J-Fobos
 
Регистрация: 30.05.2008
Адрес: город темных эльфов
Сообщений: 1,311
Вы сказали Спасибо: 82
Поблагодарили: 407 раз(а) в 243 сообщениях
По умолчанию WP - Wicked Patcher

WP - Wicked Patcher
Официальный сайт программы http://saur.x33.ru

Ниже выложенный материал взят с официального сайта программы

Wicked Patcher (после wp655f версии) содержит три модуля:

1. PPC : Proxy Packed Converter - прокси сервер и скриптовый пакет-конвертер. Позволяет перехватывать и контролировать любой трафик TCP.
Гибкая система контроля и изменения трафика посредством скриптов пользователя.
Необходимо использовать любой сторонний проксификатор, которым перенаправляется трафик на PPC по socks5 протоколу. (либо воспользоваться MI модулем)

2. MI: модуль, позволяющий автоматически внедрять DLL в процессы по списку условий.
Очень удобно для создания различных патчей.
Также, MI имеет функцию перехвата трафика на PPC, работающий с большинством программ. (но в некоторых 'тяжелых' случаях проще использовать сторонний проксификатор)

3. SE: список оконечных серверов, с возможностью подключения DLL или скрипта для обработки входящего трафика. (модуль в разработке)



Здесь речь идет о PPC. Как о самом важном, сложном и нужном модуле программы. Автором этого модуля является Станислав Голубовский.

PPC = Proxy Packet Converter, что примерно означает - Прокси, Пакетный конвертер.
PPC предназначен для перехвата трафика TPC вообще , и трафика между клиентом (ботом) и сервером LA2/RFO (и других) в частности. Так же , продвинутым контролем над этим трафиком , включая полное оперативное вмешательство в протокол соединения и изменение трафика по своему усмотрению с помощью гибкой системы скриптов.
С помощью PPC можно ловить пакеты TCP, изменять их, блокировать, посылать свои пакеты и вообще все что угодно с помощью скриптов.

В состав PPC входит:
1. Два прокси сервера с гибким настраиваемым протоколом , по умолчанию Socks 5.
Каждый из серверов многопоточный, то есть , каждый из серверов может держать несколько соединений одновременно. В принципе не обязательно он и Socks, так как прокси протокол написан на скрипте, а его можно изменять под свои нужды.

2. Продвинутый Автологгер (далее по тексту - AL),
предназначенный для протоколирования и автоматической записи пакетов трафика. Управляется как в ручную, так и через скрипты (включая способы шифрации и прочее)
Умеет автоматически определять является ли этот трафик последствием LA2 соединения, и, исходя из этого автоматически дешифрует (и шифрует обратно) пакеты LA2. Так же, автоматически определяет разные способы работы с не LA2-трафиком, например RFO.
Возможно пользовательское дополнение своего типа трафика в определитель AL.

3. Скрипт-машина. (далее по тексту - СМ),
Позволяет гибко изменять пакеты трафика, путем написания скрипт-программ.
Это позволяет делать с пакетами все , что захотим. Функции СМ все время дополняются и улучшаются, о них далее по тексту. Каждый принятый пакет проходит последовательно до трех скриптов.
[принятый пакет] >> [дешифрация] >> [скрипт1] >> [скрипт2] >> [скрипт3] >> [шифрация ] >> [пакет на отправление]










I) Соединение клиента с сервером.

Обычно Трафик между клиентом (ботом) и сервером происходит напрямую, т.е. клиент сразу лезет на заданный IP и порт сервера (для LA2 трафика: в боте прописывается в set.ini , а в клиенте в l2.ini).
Соединение через прокси ,у бота LA2 (walker), происходит на адрес указанный в самом боте, а он уже по прокси-протоколу передает ему адрес куда прокси сервер должен соединятся дальше на сервер. Другими словами, перенаправить трафик бота LA2 (Walker) просто, так как у него в опциях есть настройки работы через socks5 прокси, а PPC это и есть sock5 прокси (по умолчанию). Достаточно сделать следующее , чтобы бот соединялся через PPC :


127.0.0.1 ставить обязательно, а вот порт надо указывать такой, какой указываем в один из серверов PPC:

А чтобы по 10 раз не забивать адрес, то сохраните в опциях волкера настройки.
НО! Волкер глючит при лоаде настроек - поэтому вызывайте настройки в волкере два раза подрят - это исключит глюки при загрузки сохраненых опций волкера.

С клиентом сложнее, так как у него нету встроенной функции соединения через прокси, и для этого приходится пользоваться сторонними программами проксификаторами.
Permeo Security Driver и Proxifier являются стандартными проксификаторами, инструкций по использованию полно в интернете.
http://www.satspace.ru/uploaded/perm...er.v.4.2.6.rar
http://l2-community.com/showthread.php?t=1931

В последних версих WP PPC добавлен модуль Multi Injector.
Он позволяет перенаправлять программы без использования сторонних проксификаторов.
В WP PPC по умолчанию уже находятся записи MI для перехвата LA2 и RFO:

в случае LA2 клиента надо включить галочку на l2.exe (l2.dll в случае левых загрузчиков)
Обратите внимание: GG официального сервера Lineage2.com обнаруживает данный перехват (если получится обойтись без драйвера, то скоро эта проблема будет решена)
В случае RFO включаем галочки на rf.exe и rf_online.bin (в rf.exe внедряем DLL помогающую перехватывать rf_online.bin)
Разумеется, чтобы MI работал с процессами, необходимо так же включить кнопку:


Для других программ создаются аналогичные записи пользователем.
Более полная документация по MI (Multi Injector) в процессе написания ..
Внимание! скрины в описании настройки устаревшие,
Вот пример как выглядит трафик Lineage2 перехваченный версией WP658:
http://saur.x33.ru/trash/LostWarNet281108.JPG





II) Настройки PPC
В начале , надо определить порт , на который зацепится наш прокси сервер.
Так как их два, то можем поставить два номера порта подряд, по умолчанию в PPC это 1777 и 1778. Но можно выбрать любые не занятые номера. Обычно нужен только один сервер, поэтому выбираем любой из двух и нажимаем кнопку включения (с желтым солнышком).

Если появилось предупреждение о том, что порт занят, ставим другой номер порта.
! Очень важно правильно настроить фаерволл, разрешив WP PPC запускать сервера на локальном компьютере, а так же, разрешить выход в интернет. !
Нажав на кнопку [*P-C панель] открываем главную панель PPC:
Тут изображена первая закладка главной панели PPC:

На ней, вверху, находится список задания условий для соединений, а в углу права внизу опции. На этой закладке устанавливается привязка скриптов по условиям.
Условие может быть :
Имя сервера - у соединения должно совпасть имя сервера
Host / IP - у соединения должно совпасть Host или IP
Port - у соединения должен совпасть Port
Галочками ставятся либо какое ни будь одно условие либо комбинацию из них.
В списке ниже, устанавливается от 1 до 3 скриптов для данной привязки.

Нужно помнить, что если мы поставим порт 2106, то указанные скрипты в этой записи запустятся ТОЛЬКО на этот порт, то есть только на время работы Логин сервера, следовательно самым разумным ставить только Host /IP ! Для этого должна стоять только одна галочка Host/IP на данном условии, и в поле 'Выбор по:' так же должно стоять IP нашего сервера.

Устанавливая порт мы можем отдельно для логин сервера запускать одни скрипты, а для геймсервера другие.
Имена серверов берутся из обнаруженных в памяти ботов - эти имена мы прописываем в set.ini бота. Имена в условие запуска скриптов лучше не ставить, для начала достаточно только IP.

Например, мы хотим установить скрипт позволяющий боту нормально двигаться на ява-серверах, l2j. Пусть IP сервера у нас будет 195.152.91.110 , название скрипта - demo2.sc (скрипт уже есть в дистрибутиве).
Тогда все должно выглядеть так :

(1) мы добавляем кнопкой [Добавить] сервер в список , можно с любым именем, например [Все имена].
(2) убедившись, что появившаяся запись отмечена (выбрана) , мы вводим IP в первом поле над кнопкой [OK]. (4) Далее нажимаем [OK].
(3) отмечаем галочку [x] Host/IP
(4) Далее нажимаем [OK].
(5) После этого, указываем какие скрипты будут запускаться при этих условиях.
Теперь нажав на пустое место под записью, чтобы снять выделение, мы должны увидеть раскраску полей . Если первое поле с номером зеленое , и нет ни одного поля с красным, значит, эта запись будет использоваться, иначе, она игнорируется (когда есть хоть одно красное поле - значит данные не до конца введены)

Теперь, если будет произведен коннект по такому IP, то на этот коннект будут запущены скрипты ниже (список из трех строчек).
Мы поставили 1 скрипт, но можно ставить до трех. Они будут выполняться по очереди , отдавая друг другу пакет по цепочке, после последнего он зашифруется и отправится.

Ниже на этой же закладке мы видим опции (они стоят в данный момент по умолчанию):

'[ ] без скриптов не пропускать '- если тут будет галочка, то соединение не попавшее в список выбора скриптов, (либо если запись выбора не полная, есть красные поля), то это соединение не будет установлено.
'[x] Автостарт Auto Logger'a (AL)' - AL работает сразу, с первым пакетом. Иначе он будет ждать нажатия кнопки [On/Off] см. закладку Auto Logger. (либо когда из скрипта будет команда)
'Пакетов сохранять [ 500 ]' - Так как сохранить весь трафик не возможно (будет слишком накладно), то здесь ставится максимально количество пакетов на одно соединение, когда количество в работающем AL превысит установленное, ранние (верхние) пакеты будут удаляться, а последние добавляться . Например , если стоит 500, но при работающем AL прошло 850 пакетов, то сохранятся пакеты с 350 по 850. Значения этой опции могут быть от 100 до 3000 (пока так)
'Макс. Размер файла AL [ 3 ] Мег.' - Все собранные пакеты (если AL был включен хоть на время), при разрыве соединения сохраняются в файл 'autolog.dat', туда добавляются все пакеты пока файл не превысит указанный размер тут. Далее файл переименовывается в 'autolog.dat~.dat' заменяя старый если был, и начинается новый фал. 3 мегабайта это достаточно, но кому мало, можно поставить до 10 (пока так). (см. закладку Auto Logger.)
'Тип АвтоПарсинга пакетов [1]' - значение 1 - означает автоматическое определение разделения 'склеенных' пакетов. Значение 0 - не парсить пакеты , значение 2 - делить по факту размера в первых двух байтов. По умолчанию значение 1 .
Значение можно изменять 'на лету' в скриптах. Допустим, зная, что первые пакеты - это пакеты защиты, мы ставим значение в 0 (в скриптах) и работаем, эмулируя защиту, когда приходит время протоколу la2 мы ставим 2.(в скриптах)
'Тип PDecode пакетов [1]' - значение 1 - автоматическое определение дешифрации пакетов гейм сервера, 0 - выключено ! В этом случае пакеты будут идти, как есть - не дешифрованные.
2 - включен тип декодировки пакетов для la2 'GSDecode' (дешифроваться будет, только, если определятся ключи). Оставим 1.
'Таймаут по не активности [0]' - в секундах. Любое соединение, через которое в течении установленного тут времени не было ни одного пакета - рвется.
0 - таймаут выключен. (по умолчанию)

Все опции PPC запоминаются при выходе из WP PPC.
Левее опций мы видим установки скрипта для Прокси протокола, по умолчанию запускается скрипт почти аналогичный тому что можно посмотреть в файле 'wpsc\socks5.sc'.





III) Скрипты.
Запустив бота можно переключиться на следующую закладку (Links Online):
Мы видим онлайн соединение нашего бота.
!!! (Далее мы будет разбирать реальное соединение, и там другое IP, отличающееся от того, что мы указывали выше, скрины переделывать мне уже влом. Будем считать, что IP было то, что будем видеть дальше)
[/img]http://saur.x33.ru/upload/PPC/k7.gif[/img]
Ниже списка мы видим закладки 'SysLog' , 'INFO' и 'Send Raw Packet'
'Syslog' это системный лог, туда пишутся глобальные сообщения об ошибках ( а так же сообщения от прокси скрипта).
'INFO' - это информация об активном соединении.
Там , кстати , можно всегда узнать реальный протокол =) (в данном случае 659)
'Send Raw Packet' - возможность послать пакет вручную, без скрипта.
в верхнем поле вводится пакет в виде двухсимвольных шестнадцатеричных байт разделенных пробелом, выбирается активное соединение и нажимается кнопка отсылки на сервер или на клиент.

В низу справа под списком Онлайн соединений мы видим кнопку [ Terminate link ]
Этой кнопкой мы всегда сможет разорвать соединение.

Кнопка с солнышком и надписью 'редактировать скрипты онлайн' активна только при выборе активного соединения из списка.
! Нажав не него мы получаем дополнительную закладку !!! с именем сервера и его Host/IP

На ней мы видим редакторы для трех скриптов и скрипт лог для данного соединения,
Скрипты можно оперативно, не разрывая связи править, записывать в память/на диск/загружать...
Script Log - туда записываются сообщения скриптов для каждого пакета.

Вспомним, что скрипты, все три, вызываются по очереди для каждого пакета, и после них пакет шифруется и отправляется дальше, куда он и шел в начале.
Далее , следующий пакет трафика опять идет на скрипты и так далее: (и пакеты от сервера и от клиента все идут через скрипты, а уже в скриптах можно по переменной _gFromServ определить откуда пакет)

Кнопки Read/Write - читают/пишут скрипт в памяти, после исправления скрипта, чтобы он исправился в памяти надо нажать Write - с этого момента следующий пакет сразу попадет на исправленный скрипт. Read - читает пакет из памяти.
Кнопки Load/Save - загружают/записывают, соответственно, скрипт из/в файл.
Если воспользовались кнопкой Load, то после загрузки, надо нажать Write, чтобы скрипт из редактора записался в память на пакеты. Т.е. как и при редактировании.
В закладке ScriptLog мы видим сообщения от скриптов (функции типа Writelog() ) и ошибки скриптов. Если ошибка будет фатальна для соединения, то произойдет разъединение и вся закладка скриптов закроется. НО! Если был включен (по умолчанию включен, вспомним опции) Auto Logger, то все это запишется в лог , и сообщения скриптов тоже, так что мы всегда узнаем что там случилось.




IV) Auto Logger. (AL)

Не прерывая соединение бота, можно переключиться на закладку 'Auto Logger'

Мы видим Список соединений сверху, слева список пакетов.
Нажимая кнопки 'Online'/'Log File'справа от списка соединений , мы можем видеть как запущенные в данный момент соединения, так и записанные в файл.

Когда нажат режим 'Online' , в списке вверху, раз в секунду, обновляются запущенные в данный момент соединения, и выбрав одно , можно увидеть пакеты данного соединения в левом списке.
Кнопкой Start log/Stop log мы может останавливать и заново запускать автолог для каждого соединения.
Нажав на любой пакет из списка пакетов, можно видеть содержимое пакета.
'S>c ' означает , что пакет идет в направлении от сервера к клиенту.

Сохраняется только определенное количество пакетов, максимум 3000 пакетов (см. опции)
При разрыве соединения, лог этого соединения записывается в файл.

В случае, если пакет был исправен скриптом, или было некое сообщение из скриптов, то появляются дополнительные закладки:

Тут пакет идет с клиента через скрипт , закладка C>(scr) , далее пакет из скрипта иде на сервер (scr)>S.

Закладка Scripts log появляется, когда скрипт выдает какое либо сообщение (к примеру ф-цией Writelog())

Есть еще закладка (scr)<>(с)/(s) это закладка отражает все дополнительные пакеты, которые были переданы из скриптов при обработке данного пакета.

отображение пакетов в списке пакетов :
1. первая скобка '>':
S>c , C>s - передача текущего пакета без изменения.
2. первая скобка '}':
S}c , C}s - передача пакета с изменениями (закладки S>(scr) C>(scr) (scr)>S (scr)>C )
3. вторая скобка '>':
S>>c, C>>s - передача текущего пакета без изменений,
но были посланы дополнительно пакеты. (закладка (scr)<>(c/s))
S}>c, C}> - передача текущего пакета с изменениями,
и плюс были посланы дополнительные пакеты (закладки соответствуют)
4. значек в конце '~':
S>c~, S}>c~, S>>c~ .. - присуствуют сообщения из скриптов (закладка Script Log)
5. символ 'x':
S>x , C>x, S>>x, S}x - текущий пакет блокирован.
6. первый значек '='
=>c, =>s - пакет отправлен вручную, минуя скрипт. ('Links Online' / 'Send Raw Packet')
7. первый значек 'T' : (см. '_gS3OnTimer' и gSys('S3timer'))
сообщения или дополнительные пакеты из скрипта3 запущенного по таймеру:
T>~ - присуствуют сообщения из скрипта3 по таймеру.
T>> T>>~ - были посланы дополнительные пакеты из скрипта3 по таймеру.

В последних версиях дополнено описание пакетов.
Описание пакетов зависит от типа трафика, и устанавливается либо автоматически, либо в ручную на закладке 'Описание'

пример 'раскраски' пакета в зависимости от типов аргументов (и типа трафика, в данном случае это трафик 'LA2'):

цвета заменяемые.
для одного типа аргумента один цвет, но до 5 тонов, чтобы одного типа аргументы не 'склеивались'

Номера пакетов можно переключить на название из описания или обратно:





V) Script Tester

Это отдельный скрипт-движок, для отработки синтаксиса выражений, от остальной части PPC не зависим и не связан.
Системные переменные почти все отсутствуют, (для отладки инициализировать в ручную)
Можно писать несложные некоторые программки.

При выходе из WP, все , что написано в Script Tester'е будет автоматически сохранено в файле 'ScriptTester.txt'. И при запуске WP опять туда загрузится.

Возможность выбирать скрипт-движок: зависит от расширения файлов скриптов:

'.sc' - WPS, - текстовый файт WPScript
'.fsc' - FS, - текстовый файл FastScript
'.xml' - PFS, - прекомпилированный файл FastScript. (можно создать в Script Tester'e)

В .xml случае (прекомпилированный) файл можно только использовать, но не редактировать. Так же его очень трудно понять, можно использовать в качестве некоего подобия шифрования скрипта

Прекомпилированный файл будет примерно в 6-9 раз больше текстового, но зато при первичной загрузке (и соответственно компиляции) будет выполняться быстрее.
компиляция происходит только один раз при загрузке, но, например, при количестве строк более 1000 компиляция '.fsc' будет примерно 2 секунды, а компиляция '.xml' будет 100 ms.

Далее, после компиляции, при работе скрипта, разницы в скорости не будет.

Внимание!
Крайне рекомендуется выбирать FS скрипт, так как FS движок более быстр и продвинут, чем WPS.
__________________

В любом из нас спит гений. И с каждым днем все крепче.

Переходим на протокол нового поколения jabber
J-Fobos вне форума   Ответить с цитированием
3 пользователя(ей) сказали cпасибо:
Клерик (06.02.2010), idc2814 (14.01.2012), Mazai (08.09.2009)
Sponsored Links
 

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход




Powered by vBulletin® Version 3.7.5
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot
Advertisement System V2.5 By   Branden
L2-Community ©2008-2015


Еще можно прочесть: