PDA

Просмотр полной версии : Пакетхак от arksu


arksu
23.06.2012, 04:08
моя версия пакетхака построенного на базе l2ph, основная цель: удобный, настраиваемый бот движок
ключевые отличия:
1. никакого скриптового движка. только плагины в виде динамически подгружаемых длл
2. никакого инжекта в чужие процессы, вместо этого просто порт форвардинг (заворачиваем трафик на пх средствами файрволла)
3. встроенный примитивный бот движок в пх, плагины оперируют данными из движка, снимается куча рутины при написании плагина, в нем остается только логика поведения
4. привязка плагинов к конкретному чару - облегчает кодинг логики, повышает удобство использования (несколько свсов, меняем только привязку к нику, у каждого будет свой персональный конфиг)

все это позволило существенно снизить нагрузку на цп и требования к памяти (у меня загрузка цп в районе 0-1% при каче на париках в 10 окон)
удобное написание и правка логики плагина: запускаем окна. начинаем кач. чтото не понравилось в поведении. правим логику. выгружаем плагин. компилим длл. и загружаем снова. и тутже продолжаем кач. не надо ничего дисконнектить. или перезаходить чаром. т.к. всеми игровыми данными оперирует пх, плагин лишь использует их.

около недели назад закончил отладку. ботопачка на этом пх качается сутками. считаю стабильная работа достигнута.

в сорцах куча плагинов, выложил полную версию своей работающей ботопачки под сервер reborn.ru

https://code.google.com/p/arkpf/

от самого l2ph взята часть интерфейса (визуализация и мелочи), а также шифрование/дешифрование пакетов.

компилировал в делфи 2007. необходимо поставить http://arkpf.googlecode.com/files/Indy10_4770.zip

ну и часть зависимостей от l2ph (далеко не все)

рабочая сборка:
http://arkpf.googlecode.com/files/public_build.rar

dyh9l
23.06.2012, 08:06
оч интересно )

arksu
23.06.2012, 14:55
инжект не стал делать - т.к. работает далеко не на всех серваках.
многие палят инжект. самый универсальный способ это заворачивание трафика через виртуальную машину, с последующим пробросом на реальный сервер.

играю на вин7
прописан маршрут для гейм сервера через виртуальную машину:
route -p add 195.58.1.0 mask 255.255.255.0 192.168.10.1
192.168.10.1 - это адрес файрволла в виртуальной сети

в качестве виртуалки использую FreeBSD 8.3 с выделенными ей 64 мегабайтами памяти. винда жрет намного больше даже для тупого форварда пакетов.

конфиг файрволла pf для заворота трафика
ext_if=em0
int_if=em1

int_net="192.168.10.0/24"
ext_net="192.168.1.0/24"

ph_host="192.168.1.20"
ph_port="7888"

gs_host="195.58.1.117"
gs_port="7777"

rdr on $int_if proto tcp to 195.58.1.117 port 7777 tag GS_FAKE -> $ph_host port $ph_port
nat on $ext_if proto tcp tagged GS_FAKE -> $ext_if

rdr on $int_if proto tcp to 195.58.1.100 port 7777 tag GS_TRUE -> $gs_host port $gs_port
nat on $ext_if proto tcp tagged GS_TRUE -> $ext_if

nat pass on $ext_if from $int_net to 195.58.1.0/24 -> $ext_if


1. л2 коннектится на 195.58.1.117 файрволл заворачивает на адрес ph_host (192.168.1.20) порт 7888, на котором слушает пх
2. пх инициализирует свой коннект на адрес 195.58.1.100 (можно использовать любой другой, нужно чтобы файрволл понял что пх коннектица к реальному гейм серверу)
3. файрволл редиректит коннект уже не реальный гейм сервер

данная схема будет работать на 100% серверов. т.к. идет непосредственный перехват коннекта который ни клиент ни сервер отследить не в состоянии. проблемы могут возникнуть только с серверами на которых есть свое шифрование трафика.

пх можно запустить где угодно. мне удобнее все запускать в реальной ОС, не в виртуалке. просто по альт табу переключаюсь между окнами л2, пх и делфи чтобы дописывать логику поведения.

J-Fobos
23.06.2012, 21:48
Предлагаю перенести тему в раздел разработки (http://coderx.ru/forumdisplay.php?f=32).

arksu
24.06.2012, 06:10
Предлагаю перенести тему в раздел разработки (http://coderx.ru/forumdisplay.php?f=32).

вам виднее, хотя от оригинального л2пх тут только часть обвеса
идеология и принципы работы другие

mira
26.06.2012, 01:08
инжект не стал делать - т.к. работает далеко не на
проблемы могут возникнуть только с серверами на которых есть свое шифрование трафика.


на всех приличных более менее давно есть.

а так идея неплохая

Yegor
13.07.2012, 00:24
Это все конечно замечательно, но разве остался хотябы 1 серьезный в плане заработка L2 сервер в котором применяется стандартная шифрация?

arksu
14.07.2012, 06:25
это делалось just for fun
речи о заработке не было
прикрутить сюда модуль шифрации - плевое дело.

supernewbie
14.07.2012, 15:21
модуль шифрации - плевое дело.
http://img.likeness.ru/uploads/users/8105/1320682431.jpeg
расскажи это им - http://coderx.ru/showthread.php?t=165

mira
24.07.2012, 11:12
это прикрутить сюда модуль шифрации - плевое дело.

прикрутить неспорю.
Вот только написано таких модулей чуть меньше чем нихуя :)
1) алгоритм могут периодически менять.
2)исследование алгоритма шифрации может занять больше времени чем написание пакетхака с нуля.

arksu
31.01.2014, 08:13
можно перенести тему в Разработка

advigor
07.02.2014, 10:35
пх можно запустить где угодно. мне удобнее все запускать в реальной ОС, не в виртуалке. просто по альт табу переключаюсь между окнами л2, пх и делфи чтобы дописывать логику поведения.

Можно об этом подробнее пожалуйста? И про где угодно и особенно на одной машине в реальной ОС. А то что-то совсем ничего не получается. Пытаюсь запустить на одной машине в реальной ОС. Адреса в опциях какие только не ставил, все одно выдает это:
7:17 connected 192.168.0.23 : 1192 [232]
7:17 disconnected 192.168.0.23 : 1192 [4294967295]
7:23 connected 192.168.0.23 : 1202 [244]
7:23 disconnected 192.168.0.23 : 1202 [4294967295]
7:24 connected 192.168.0.23 : 1209 [236]
7:24 disconnected 192.168.0.23 : 1209 [4294967295]

И еще, продукт получается заточен только под Фрею, ХФ и ГОД?

Antharas
08.02.2014, 15:07
А можно поделится исходником для одной ДЛЛ чисто для примера как их делать?

Silent
12.02.2014, 11:35
А можно поделится исходником для одной ДЛЛ чисто для примера как их делать?Так есть же примеры исходников, по ссылке в первом сообщении посмотри.

Antharas
12.02.2014, 18:59
точно нашел только скачивать неудобно, по одному файлу.

advigor
12.02.2014, 22:13
точно нашел только скачивать неудобно, по одному файлу.

Что да, то да. Тут никаким тортоизом не добраться :) Я вообще все через копи-паст "качал".

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

Antharas
13.02.2014, 00:08
Раз автор не появляется, приходится потихоньку ковырять исходники, чтоб запустить все на одной машине.
а ДЛЛ скомпилировать смог? У меня еще руки не дошли посоеденять юниты просто.

advigor
13.02.2014, 08:39
Увы, только вчера добился стабильной компиляции самого проекта. Теперь буду разбирать, что к чему и как. А уж потом примусь за дллки.
Походу проект действительно заточен под Фрея, ХФ и ГОД. А мне нужна и интерлюда. Так что еще работать и работать. :)

Antharas
22.03.2014, 04:04
2. никакого инжекта в чужие процессы, вместо этого просто порт форвардинг (заворачиваем трафик на пх средствами файрволла)


запустить на одной машине.

Завернуть трафик на ПХ я как понял можно с помощью KSW

http://pumpshooter.com/xbRMmFep

192.168.0.100 мой роутер
95.211.196.17 сервер 8086 его порт
9000 я выбрал порт для слушания

akrph молчит и клиент ниче не выберает сервер нужный,
что не так?

arksu
06.04.2014, 08:57
итак! на первой странице все вроде подробно расписано.
пх запущен на реальной ос
в виртуалке крутится FreeBSD с файрволлом pf
его конфиг расписан. вкратце его функция заворачивать пакеты обратно в реальную ос меняя в них порт назначения
а потом теже пакеты от пх перенаправлять на игровой сервер меняя в них порт.

конкретно он затачивался под HF reborn.ru
который канул в небытие :( проект закрыли.
заточить под другие сервера не должно составлять проблемы особой. надо положить описания пакетов от l2ph
также возможно потребуется доработка дешифрации и конечно если хотим использовать все прелести бот движка то надо править его логику.

Добавлено через 2 минуты
если надо доработать - в принципе возможно. но этот сервер должен быть действительно интересным чтобы у меня возникло желание на нем поботить ))

Добавлено через 1 минуту
точно нашел только скачивать неудобно, по одному файлу.

там ведь описано как скачивать:
svn checkout http://arkpf.googlecode.com/svn/trunk/
через тортоиз можно сделать чекаут всего репозитория.
https://code.google.com/p/arkpf/source/checkout

Antharas
06.04.2014, 19:58
ну вот Arion пока большой он лайн) только там не стандартная шифрация...