PDA

Просмотр полной версии : [Программа] [Beta Release] PacketX - Новый Packet Hacker (L2Off+L2J)


Кузя
01.08.2011, 15:06
Что программа может:
- Патчит lineage2, шифрует / дешифрует трафик, не шифрует трафик, проходящий через PacketX.
- Поддержка подключаемых модулей (Планируется много функций, позволяющих повеселиться в игре или сделать ингейм бота)
- Возможность модификации входящих пакетов с сервера, используя брейкпоинты
- Исправлена информация об игроках / НПС
- Можно установить брейкпоинты на пакеты клиента или сервера
- Удалено сообщение при Логине, если Вы установили брейкпоинт на Key Packet (в любом случае, сообщение было бесполезно)
- Проходящий через PacketX трафик не шифруется, и может быть легко прочитан
- Исправлены некоторые игровые ошибки, которые появлялись при работе PacketX
- Своевременное обновление Сервер / Клиент ключей.
- Пользовательские команды начинаются с '??'
(Пример использования команд: ??say тест)
- Ведутся логи плагинов.
- Существует возможность расшифровки при полиморфном шифровании.
- PacketX может прослушивать любой порт. По умолчанию стоит 555 порт.
- Возможен обход некоторых трюков, которые используются при блокировки L2Phx.
- Обход смены login/game портов. PacketX автоматически обнаруживает смену портов в игре или непосредственно при логине.

Работа с пакетами:
- Брейкпоинты — одна из самых главных возможностей PacketX, с их помощью можно модифицировать пакеты до того как они будут отправлены серверу или клиенту.
- Таким образом можно изменить что-нибудь в игре, и модифицировать все, что нам доступно.
- Кода брейкпоинт срабатывает, Вы можете изменить данные, которые находятся в очереди на получение/отправку.
- Использование брейкпоинтов в игре может быть очень полезным, так как позволяет изменять все, что отправляется клиенту / серверу.
- Мы можем остановить и изменить пакет, который еще не был принят клиентом или отправлен серверу.
- Логирование игроков — Вы можете получить Object id, name, title, координаты, Heading, verhicle Id и многое другое.
- Логирование NPS — Вы можете получить Object Id, Npc Id, Name, Title, координаты, Heading и многое другое.
- Расшифровка пакетов в native mode — это позволяет расшифровывать пакеты в c++ без использования .net фреймворка, что ускоряет процесс расшифровки.
- Отладка server/client в режиме реального времени — Вы можете наблюдать за всем, что прорисходит.
- Логи шифрования/расшифровывания в режиме реального времени.
- Перенаправление подключения к lineage2
- Поддержка нескольких версий клиента.
- Инъект Клиентских/Серверных пакетов. Возможность отправлять произвольные пакеты Клиенту/Серверу, возможность включать/отключать шифрование пакетов и размер заголовков (возможность устанавливать автоматическую отправку пакетов).
- Вы можете самостоятельно создавать плагины на .net фреймворке и использовать их во время игры.
- Работает с официальными серверами (l2off) и l2j

И многое-многое другое.

Эта версия PacketX стабильная, и Вы можете устанавливать флуд-пакетами 0мсек.

В состав PacketX входит:

L2Crypt.dll - Шифровщик/расшифровщик
WinsockRedirect.dll — перенаправляет соединение на proxy-сервер для работы с пакетами
xBot.dll — плагин, разработанный создателем PacketX'a

Исходный код xBot:


using System;
using System.Collections.Generic;
using System.Text;
using L2PacketX.src.Lineage2.Packets;
using L2PacketX.src.Lineage2;

namespace xBot
{
public class xBot : L2PacketX.src.PluginSystem.PacketXPlugin
{
Random rnd = new Random();

public override string PluginName
{
get
{
return "xBot";
}
}

public override void EntryPoint()
{
AddLog("xBot Plugin is loaded!", true);
}

public override void onEnterWorld(L2PacketX.src.ConnectedClient client)
{
AddLog("Entering world", true);
}

public override void onLogout(L2PacketX.src.ConnectedClient client, PlayerInfo player)
{
L2Say say = new L2Say();
say.Message = "Bye bye world...";
Say(say, client, TargetHost.Server);
AddLog("Logging out", true);
}

public override void onValidatePosition(L2PacketX.src.ConnectedClient client, PlayerInfo player)
{
AddLog("Validating Position", true);
}

public override void onPacketXCommand(L2PacketX.src.ConnectedClient client, string cmd, PlayerInfo player)
{
AddLog("Executing command: " + cmd, true);

if (cmd.StartsWith("say "))
{
L2Say say = new L2Say();
say.Message = cmd.Substring(4);
Say(say, client, TargetHost.Server);
}
else if (cmd.StartsWith("rndwalk"))
{
L2Position pos = new L2Position();
pos.TargetX = (client.playerInfo.X + rnd.Next(-100, 100));
pos.TargetY = (client.playerInfo.Y + rnd.Next(-100, 100));
pos.TargetZ = client.playerInfo.Z;
pos.CurX = client.playerInfo.X;
pos.CurY = client.playerInfo.Y;
pos.CurZ = client.playerInfo.Z;
MoveToPosition(pos, client, TargetHost.Server);
}
else if (cmd.StartsWith("kill_all"))
{
for (int i = 0; i < client.Npcs.Count; i++)
{
L2Die die = new L2Die();
die.ObjectId = client.Npcs.Values[i].ObjectId;
this.Die(die, client);
}
for (int i = 0; i < client.Players.Count; i++)
{
if (client.playerInfo.ObjectId == client.Players.Values[i].ObjectId)
continue; //don't kill ourself

L2Die die = new L2Die();
die.ObjectId = client.Players.Values[i].ObjectId;
this.Die(die, client);
}
}
else if (cmd.StartsWith("clean"))
{
for (int i = 0; i < client.Npcs.Count; i++)
{
this.DeleteObject(client.Npcs.Values[i].ObjectId, client);
}
for (int i = 0; i < client.Players.Count; i++)
{
if (client.playerInfo.ObjectId == client.Players.Values[i].ObjectId)
continue; //don't kill ourself
this.DeleteObject(client.Players.Values[i].ObjectId, client);
}
}
else if (cmd.StartsWith("lvlup"))
{
L2SocialAction action = new L2SocialAction();
action.ActionId = (int)SocialActions.Hello;
action.ObjectId = player.ObjectId;
SocialAction(action, client, TargetHost.Server);
}
else if (cmd.StartsWith("injectgame "))
{
List<Byte> bytes = new List<Byte>();
string byteStr = cmd.Substring(11);
for (int i = 0; i < byteStr.Length / 3; i++)
bytes.Add(Byte.Parse(byteStr[i * 3].ToString() + byteStr[(i * 3) + 1].ToString(), System.Globalization.NumberStyles.HexNumber));
InjectPayload(bytes.ToArray(), client, TargetHost.Game, true);
}
}

public override void onRequestAttack(L2PacketX.src.ConnectedClient client, PlayerInfo player)
{
AddLog("Requestion to attack", true);
}

public override void onRequestStartPledgeWar(L2PacketX.src.ConnectedCli ent client, PlayerInfo player)
{
}

public override void onRequestReplyStartPledgeWar(L2PacketX.src.Connect edClient client, PlayerInfo player)
{
}

public override void onRequestStopPledgeWar(L2PacketX.src.ConnectedClie nt client, PlayerInfo player)
{
}

public override void onRequestReplyStopPledgeWar(L2PacketX.src.Connecte dClient client, PlayerInfo player)
{
}

public override void onRequestSurrenderPledgeWar(L2PacketX.src.Connecte dClient client, PlayerInfo player)
{
}

public override void onRequestReplySurrenderPledgeWar(L2PacketX.src.Con nectedClient client, PlayerInfo player)
{
}

public override void onRequestUnEquipItem(L2PacketX.src.ConnectedClient client, PlayerInfo player)
{
}

public override void onRequestTrade(L2PacketX.src.ConnectedClient client, PlayerInfo player)
{
}

public override void onAddTradeItem(L2PacketX.src.ConnectedClient client, PlayerInfo player)
{
}

public override void onTradeDone(L2PacketX.src.ConnectedClient client, PlayerInfo player)
{
}

public override void onRequestLinkHtml(L2PacketX.src.ConnectedClient client, PlayerInfo player)
{
AddLog("Requesting html", true);
}

public override void onRequestBBSwrite(L2PacketX.src.ConnectedClient client, PlayerInfo player)
{
}

public override void onRequestJoinPledge(L2PacketX.src.ConnectedClient client, PlayerInfo player)
{
}

public override void onRequestAnswerJoinPledge(L2PacketX.src.ConnectedC lient client, PlayerInfo player)
{
}

public override void onRequestWithdrawalPledge(L2PacketX.src.ConnectedC lient client, PlayerInfo player)
{
}

public override void onRequestOustPledgeMember(L2PacketX.src.ConnectedC lient client, PlayerInfo player)
{
}

public override void onRequestGetItemFromPet(L2PacketX.src.ConnectedCli ent client, PlayerInfo player)
{
}

public override void onRequestAllianceInformation(L2PacketX.src.Connect edClient client, PlayerInfo player)
{
}

public override void onRequestCrystallizeItem(L2PacketX.src.ConnectedCl ient client, PlayerInfo player)
{
}

public override void onRequestPrivateStoreManageSell(L2PacketX.src.Conn ectedClient client, PlayerInfo player)
{
}

public override void onSetPrivateStoreListSell(L2PacketX.src.ConnectedC lient client, PlayerInfo player)
{
}

public override void onRequestSellItem(L2PacketX.src.ConnectedClient client, PlayerInfo player)
{
}

public override void onRequestMagicSkillList(L2PacketX.src.ConnectedCli ent client, PlayerInfo player)
{
}

public override void onAppearing(L2PacketX.src.ConnectedClient client, PlayerInfo player)
{
AddLog("Appearing", true);
}

public override void onSendWareHouseDepositList(L2PacketX.src.Connected Client client, PlayerInfo player)
{
}

public override void onSendWareHouseWithDrawList(L2PacketX.src.Connecte dClient client, PlayerInfo player)
{
}

public override void onRequestShortCutRegister(L2PacketX.src.ConnectedC lient client, PlayerInfo player)
{
}

public override void onRequestShortCutDelete(L2PacketX.src.ConnectedCli ent client, PlayerInfo player)
{
}

public override void onRequestBuyItem(L2PacketX.src.ConnectedClient client, PlayerInfo player)
{
}

public override void onRequestDismissPledge(L2PacketX.src.ConnectedClie nt client, PlayerInfo player)
{
}

public override void onRequestJoinParty(L2PacketX.src.ConnectedClient client, PlayerInfo player)
{
}

public override void onRequestAnswerJoinParty(L2PacketX.src.ConnectedCl ient client, PlayerInfo player)
{
}

public override void onRequestWithDrawalParty(L2PacketX.src.ConnectedCl ient client, PlayerInfo player)
{
}

public override void onRequestOustPartyMember(L2PacketX.src.ConnectedCl ient client, PlayerInfo player)
{
}

public override void onRequestDismissParty(L2PacketX.src.ConnectedClien t client, PlayerInfo player)
{
}

public override void onCannotMoveAnymore(L2PacketX.src.ConnectedClient client, PlayerInfo player)
{
AddLog("Cannot move anymore", true);
}

public override void onRequesTargetCancel(L2PacketX.src.ConnectedClient client, PlayerInfo player)
{
AddLog("Cancelling target", true);
}

public override void onClanSetTitle(L2PacketX.src.ConnectedClient client, PlayerInfo player)
{
}

public override void onProtocolVersion(L2PacketX.src.ConnectedClient client, PlayerInfo player)
{
AddLog("Sending protocol version", true);
}

public override void onMovingToPosition(L2PacketX.src.ConnectedClient client, PlayerInfo player)
{
AddLog("Moving to position", true);
}

public override void onDismisspartyroom(L2PacketX.src.ConnectedClient client, PlayerInfo player)
{
}

public override void onCommunityBoard(L2PacketX.src.ConnectedClient client, PlayerInfo player)
{
AddLog("Opening community board", true);
}

public override void onCharacterSelect(L2PacketX.src.ConnectedClient client, PlayerInfo player)
{
AddLog("Selecting character", true);
}

public override void onNewCharacter(L2PacketX.src.ConnectedClient client, PlayerInfo player)
{
AddLog("Creating character", true);
}

public override void onInventory(L2PacketX.src.ConnectedClient client, PlayerInfo player)
{
AddLog("Opening inventory", true);
}

public override void onSelectTarget(L2PacketX.src.ConnectedClient client, PlayerInfo player)
{
AddLog("Selecting target", true);
}

public override void onRequestDropItem(L2PacketX.src.ConnectedClient client, PlayerInfo player)
{
AddLog("Dropping item", true);
}

public override void onRequestUseItem(L2PacketX.src.ConnectedClient client, PlayerInfo player)
{
}

public override void onBypassHandler(L2PacketX.src.ConnectedClient client, PlayerInfo player)
{
}

public override void onAuthLogin(L2PacketX.src.ConnectedClient client, PlayerInfo player)
{
AddLog("Logging in", true);
}

public override void onRequestUseSkill(L2PacketX.src.ConnectedClient client, PlayerInfo player)
{
}

public override void onSay(L2PacketX.src.ConnectedClient client, PlayerInfo player)
{
}
}
}



Скачать: тут ([Ссылки могут видеть только зарегистрированные и активированные пользователи])
Разработчик: DragonHunter
Написано на C++/C#

Как использовать:
Запустить L2PacketX.exe.
Перейти на вкладку Server и нажать 'Listen Proxy'.
Нажать на кнопку '...' и выбрать l2.exe.
Нажать 'Start & Inject' и игра запустится.
Логиньтесь и получайте удовольствие*


Если при нажатии 'Inject' или 'Start & Inject' появляются ошибки, для исправления надо:
1. Скачать msvcr100d.dll отсюда [Ссылки могут видеть только зарегистрированные и активированные пользователи]
2. Переместить файл в C:\Windows\System
3. Попробовать снова запустить L2PacketX.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Не несу ответственности за софт, перевод с забугорного форума. Используйте на свой страх и риск.

J-Fobos
01.08.2011, 19:53
virustotal ([Ссылки могут видеть только зарегистрированные и активированные пользователи] fa6fdf022568c37229531c0c1e49a-1307379524) Result: 3 /43

ProHacked228
01.08.2011, 21:36
Спасибо, особенно Брейкпоинт порадовал. Я так понимаю, что возможно и обойти слабенькую шифрацию? Или серв не сможет дешифровать её, если сменить её в пакете?

J-Fobos
02.08.2011, 19:24
Спасибо, особенно Брейкпоинт порадовал. Я так понимаю, что возможно и обойти слабенькую шифрацию? Или серв не сможет дешифровать её, если сменить её в пакете?
Все зависит от того, шифруются данные до того как программа их перехватит или после.

car
02.08.2011, 23:43
Кузя, ты не мог бы все залить в 1 архив с длл и описанием?

[Ссылки могут видеть только зарегистрированные и активированные пользователи] DLL для того кому трудно качать с 1 поста

psixoLOG
03.08.2011, 07:53
Может кто помочь,программа запускает окно л2,но дальше не чего не происходит акк ввел,нечего не пишет !