- - [Interlude] Por favor, um anti phx para l2 dot
(https://secretexperience.net/l2j-pedidos/10261-por-favor-um-anti-phx-para-l2-dot.html)
Tirromxd
01-07-2009 06:36 PM
Por favor, um anti phx para l2 dot
Estou usando o L2JDOT Plus 03, e tem gringo usando PHX no servidor... e agora, como resolvo isso? Já coloquei a dll com anti phx (Editei o EXE para a dll dar inject com outro nome, caso alguém já conheça aquela dll), em fim... queria alguma solução na parte JAVA do servidor. E agora comofas? :twitcy:
l2kaskata
04-07-2009 03:42 PM
Cara o l2-dot ja vem com Proteção;;;ant phx
Tirromxd
04-07-2009 04:21 PM
Então por que tem gringo usando phx? ;) thx
cassiomaggot
05-08-2009 12:12 PM
Muito facil de explicar ^^
Citação:
Então por que tem gringo usando phx? ;) thx
ele usa script proprios para hackear seu server....
e esse arquivo nophx.dll e muito facil de burlar , basta pegar sua l2.ini e colar em uma sistem que nao tem nophx.dll
vi e um forum russo que ja tem uma nova inject.dll (arquivo essencial do phx para conseguir enviar os pacotes) que bloqueia qualquer antihack do servidor, deixando vulneravel nao so ao hacker mas a qualquer player que tbm esteja querendo hackear :shocked:
pra vc ter uma ideia esses caras conseguiram hackear um dos servers privado mais foda de l2 , o l2.ru :jiggy:
e muito dificil impedir o l2phx pois ele nao e mais um hack de l2 e sim um video game onde vc coloca o cd pra rodar (no caso o script) e ele funciona perfeitamente....
aqueles bug de enchant pela werehouse e coisa do passado,
StringList.Clear;
ItemsName.Clear;
//äîñòàòî÷íî îñâîáîäèòü ôîðìó
Free_FormMain;
end;
//.................................................. ............................
procedure ShowInfo;
var
i: integer;
begin
stats.Lines.Clear;
stats.Lines.Add('Èìÿ ÷àðà :'+Name);
stats.Lines.Add('Âðåìÿ ñòàðòà :'+TimeToStr(starttime));
stats.Lines.Add('Âðåìÿ ðàáîòû :'+TimeToStr(time-starttime));
stats.Lines.Add('Óëó÷øèëè: '+IntToStr(good));
stats.Lines.Add('Ñëîìàëè: '+IntToStr(broken));
end;
//......................................
//************************************************** *************
procedure OnShowInfo(Sender: TObject); //âûâîäèì â ôîðìó
begin
ShowInfo;
end;
//.................................................. ............................
//ïîñëàòü ñîîáùåíèå â ÷àò
//use: SendMessage(msg);
procedure SendMessage(msg:string); //îòïðàâêà ñèñòåìíûõ ñîîáùåíèé êëèåíòó
begin
buf:=#$4A;
WriteD(0);
WriteD(10);
WriteS('');
WriteS(msg);
SendToClientEx(Name);
end;
//.................................................. ............................
procedure debugMsg(msg: string);
begin
if debug then begin
sendMSG(msg);
SendMessage(msg);
end;
end;
//.................................................. ............................
procedure ItemList;
{Ñîçäàåì áàçó Items}
//11=ItemList:h(ShowWindow)h(ListSize:Loop.01.0021)h (ItemType1)d(ObjectID)
// d(ItemID:Get.Func01)d(LocationSlot)d(Count)h(ItemT ype2)h(CustomType1)
// h(isEquipped)d(BodyPart)h(EnchantLevel)h(CustType2 )d(AugmentationID)
// d(Mana)d(AttackAttrElement)d(AttackAttrElementVal) d(DefAttrFire)
// d(DefAttrWater)d(DefAttrWind)d(DefAttrEarth)d(DefA ttrHoly)d(DefAttrUnholy)
var
i, j, k: integer;
ListCount: integer;
begin
j:=4; //ñìåùåíèå äëÿ ListCount
ListCount:=ReadH(j); //êîëè÷åñòâî èòåìîâ íå äîëæíî ïðåâûøàòü max!
for i:=1 to maxitems do
if (i<=ListCount) then begin
BaseItems[i,1]:=ReadH(j); //ItemType1
BaseItems[i,2]:=ReadD(j); //ObjectID
BaseItems[i,3]:=ReadD(j); //ItemID
BaseItems[i,4]:=ReadD(j); //LocationSlot
BaseItems[i,5]:=ReadD(j); //Count
BaseItems[i,6]:=ReadH(j); //ItemType2
BaseItems[i,7]:=ReadH(j); //CustomType1
BaseItems[i,8]:=ReadH(j); //isEquipped
BaseItems[i,9]:=ReadD(j); //BodyPart
BaseItems[i,10]:=ReadH(j); //EnchantLevel
BaseItems[i,11]:=ReadH(j); //CustType2
BaseItems[i,12]:=ReadD(j); //AugmentationID
//debugmsg('OID='+inttostr(BaseItems[i,2])+' ID='+inttostr(BaseItems[i,3]));
inc(j,40);
end else for k:=1 to 12 do BaseItems[i,k]:=0; // çàáèâàåì íóëÿìè
//âíîñèì èçìåíåíèÿ â ÷åêáîêñû
StringList.Clear;
try
for i:=1 to ListCount do begin
try
//StringList.Add(ItemsName[ItemBase[2,i]-1]); //çàïèñûâàåì íàçâàíèå âåùåé èç èíâåíòàðÿ
StringList.Add(ItemsName.Values[IntToStr(BaseItems[i,3])]); //çàïèñûâàåì íàçâàíèå âåùåé èç èíâåíòàðÿ
except;
//msg.Lines.Add('Ïðîïóñêàåì! Íåò ItemID='+inttostr(BaseItems[i,3])+' â itemsid.ini');
end
end;
except;
//msg.Lines.Add('îøèáêà â CreateItemBase->StringList.Add()');
//msg.Lines.Add(inttostr(BaseItems[i,3]));
exit;
end;
if not CheckBoxItem.Checked then begin //íàïîëíÿåì êîìáîáîêñ
with ComboBoxItem do
begin
Items.Clear;
Items.Assign(StringList);
ItemIndex:=0;
end;
end;
if not CheckBoxScroll.Checked then begin //íàïîëíÿåì êîìáîáîêñ
with ComboBoxScroll do
begin
Items.Clear;
Items.Assign(StringList);
ItemIndex:=0;
end;
end;
end;
//.................................................. ............................
procedure InventoryUpdate; //ïàêåò 27, Ñîçäàåò áàçó ObjectID ïî ItemID
var
i, ii, j, k, ListCount, UpdType : integer;
ItemType1, ObjectID, ItemID, LocationSlot, Count, ItemType2, CustomType1,
isEquipped, BodyPart, EnchantLevel, CustType2, AugmentationID :integer;
additem : boolean;
begin
additem:=true;
ListCount:=ReadH(2); //êîëè÷åñòâî èòåìîâ
// debugmsg('ListCount='+inttostr(ListCount));
j:=4; //ñìåùåíèå äëÿ äåéñòâèÿ ñ ïðåäìåòîì 1-äîáàâëåí 2-èçìåíåí 3-óäàëåí
for i:=1 to ListCount do begin
UpdType:=ReadH(j);
ItemType1:=ReadH(j);
ObjectID:=ReadD(j);
ItemID:=ReadD(j);
LocationSlot:=ReadD(j);
Count:=ReadD(j);
ItemType2:=ReadH(j);
CustomType1:=ReadH(j);
isEquipped:=ReadH(j);
BodyPart:=ReadD(j);
EnchantLevel:=ReadH(j);
CustType2:=ReadH(j);
AugmentationID:=ReadD(j);
case UpdType of
1: k:=0; //äîáàâëåí íîâûé ïðåäìåò
2: k:=ObjectID; //èçìåíåí ïðåäìåò â èíâåíòàðå
3: begin //óäàëåí
for ii:=1 to maxitems do
if (BaseItems[ii,2]=ObjectID) then begin
//debugmsg('óäàëÿåì OID='+inttostr(BaseItems[ii,2])+' ID='+inttostr(BaseItems[ii,3]));
for k:=1 to 12 do BaseItems[ii,k]:=0;
break;
end;
end;
end;
for ii:=1 to maxitems do begin
if (BaseItems[ii,2]=k) then begin
BaseItems[ii,1]:=ItemType1;
//BaseItems[ii,2]:=ObjectID;
BaseItems[ii,3]:=ItemID;
BaseItems[ii,4]:=LocationSlot;
BaseItems[ii,5]:=Count;
BaseItems[ii,6]:=ItemType2;
BaseItems[ii,7]:=CustomType1;
BaseItems[ii,8]:=isEquipped;
BaseItems[ii,9]:=BodyPart;
BaseItems[ii,10]:=EnchantLevel;
BaseItems[ii,11]:=CustType2;
BaseItems[ii,12]:=AugmentationID;
//debugmsg('äîá/èçì OID='+inttostr(BaseItems[ii,2])+' ID='+inttostr(BaseItems[ii,3]));
break;
end;
end;
inc(j,38);
end;
end;
//.................................................. ............................
function GetItem(ID, FieldIn, FieldOut : integer): integer;
{GetInv(÷òî èùåì, ¹ ïîëÿ ãäå èùåì, ¹ ïîëÿ ÷òî âîçâðàùàòü)
ãäå:
ID - èñêîìûé êîä;
FieldIn - ïî êàêîìó ïîëþ èùåì;
FieldOut - êàêîå ïîëå âîçâðàùàåì;
1=ItemType1; 2=ObjectID;3=ItemID;4=LocationSlot;5=Count;6=ItemT ype2;7=CustomType1;
8=isEquipped;9=BodyPart;10=EnchantLevel;11=CustTyp e2;12=AugmentationID;
ex1: GetInv(6408,2,1) - âåðíåò ObjectID ñâàäåáíîãî ïëàòüÿ, åñëè îííîå ëåæèò â
èíâåíòàðå, èíà÷å âåðíåò -1
ex2: GetInv(6408,2,8) - âåðíåò óðîâåíü çàòî÷êè ïåðâîãî ïîïàâøåãîñÿ â èíâåíòàðå
ñâàäåáíîãî ïëàòüÿ, åñëè ñâàäåáíîãî ïëàòüÿ íåò, òî âåðíåò -1
}
var
i: integer;
begin
for i:=1 to maxitems do
if (BaseItems[i,FieldIn]=ID) then begin
Result:=BaseItems[i,FieldOut];
//debugmsg('Íàøëè='+inttostr(result));
exit;
end;
Result:=-1;
end;
//.................................................. ............................
//************************************************** ****************************
//íàõîäèì â èíâåíòàðå ïðåäìåò ñ ItemID è âîçâðàùàåì åãî ObjectID
function GetItemEnchant(item,lvl:integer) : integer;
var
i : integer;
begin
//íè÷åãî íå íàøëè
result:=0;
for i:=1 to maxitems do
if (BaseItems[i,3]=item) and (BaseItems[i,10]=lvl) then begin
ItemEnch:=BaseItems[i,10];
Result:=BaseItems[i,2];
//debugmsg('Íàøëè='+inttostr(result));
exit;
end;
// Result:=-1;
end;
//************************************************** ****************************
function SumItem(Item: integer):integer;
var
sum, i : integer;
begin
result:=0;
//íàõîäèì ïîäõîäÿùèé ïðåäìåò ïî ItemID
for i:=1 to maxitems do begin
if (BaseItems[i,3]=item) then begin
// msg.Lines.Add('Íàøëè ïðåäìåò ItemOID='+inttostr(ItemBase[1,i])+' ItemID='+inttostr(ItemBase[2,i])+' ItemCol='+inttostr(ItemBase[3,i])+' EnchantLvl='+inttostr(ItemBase[4,i]));
// msg.Lines.Add('i='+inttostr(i));
result:=result+BaseItems[i,5]; //count
//inc(result);
end;
end;
end;
//************************************************** ****************************
procedure UseItem(ObjectID: integer);
begin
buf:=#$19;
WriteD(ObjectID);
WriteD(0);
SendToServerEx(Name);
end;
//************************************************** ****************************
procedure RequestEnchantItem(ObjectID: integer);
begin
buf:=#$5F;
WriteD(ObjectID);
SendToServerEx(Name);
end;
//************************************************** ****************************
procedure OnTimer(Sender: TObject);
begin
EditItemVal.text:=inttostr(sumitem(ItemID));
EditScrollVal.text:=inttostr(sumitem(ScrollID));
if (strtoint(Edit2.text)>=strtoint(Edit1.Text)) then begin
msg.Lines.Add('Íåò ïîäõîäÿùèõ ïðåäìåòîâ äëÿ óëó÷øåíèÿ! Ïðåðâàíî!');
ButtonStartEnchant.Enabled := true;
ButtonStopEnchant.Enabled := false;
timer.enabled:=false;
exit;
end;
if (sumitem(ItemID)<=1) then begin
// if (sumitem(ItemID)<=0) then begin //åñëè íàäî òî÷èòü îäíó âåùü
ButtonStartEnchant.Enabled := true;
msg.Lines.Add('Ïðåäìåòîâ äëÿ óëó÷øåíèÿ äîëæíî áûòü áîëüøå äâóõ! Ïðåðâàíî!');
ButtonStartEnchant.Enabled := true;
ButtonStopEnchant.Enabled := false;
timer.enabled:=false;
exit;
end;
if ready then exit;
ScrollOID:=GetItem(ScrollID,3,2);//íàéäåì OID ñêðîëëà
if ScrollOID=-1 then begin
msg.Lines.Add('Êîí÷èëèñü ñâèòêè! Ïðåðâàíî!');
ButtonStartEnchant.Enabled := true;
ButtonStopEnchant.Enabled := false;
timer.enabled:=false;
exit;
end;
UseItem(ScrollOID);
msg.Lines.Add('Çàäåéñòâîâàëè ñâèòîê ScrollID='+IntToStr(scrollID)+' ScrollOID='+IntToStr(ScrollOID));
ready:=true; //ãîòîâû çàòà÷èâàòü
end;
//************************************************** ****************************
// âûçûâàåòñÿ ïðè ïðèõîäå êàæäîãî ïàêåòà, åñëè ñêðèïò âêëþ÷åí
//************************************************** ****************************
begin
//************************************************** **************************
//íå îáðàáàòûâàåì ïóñòûå ïàêåòû
if pck='' then exit;
//************************************************** **************************
if FromServer then
case pck[1] of
//......................................
#$11: begin
//debugmsg('S>C Ïàêåò ItemListPacket #$11');
ItemList;
end;
//......................................
#$21: begin
//debugmsg('S>C Ïàêåò InventoryUpdate #$21');
InventoryUpdate;
end;
//......................................
//Ïàêåò ChooseInventory
#$7C: begin
if ready then begin //and (readd(2)=itemid)
//èùåì ïîäõîäÿùèé ïðåäìåò äëÿ çàòî÷êè
timer.enabled:=false; //îòêëþ÷àåì ïîêà íå íàéäåì ïðåäìåò äëÿ çàòî÷êè
repeat
ItemOID:=GetItemEnchant(ItemID, CurEnchLvl);
if ItemOID=0 then begin
inc(CurEnchLvl);
Edit2.text:=inttostr(CurEnchLvl);
end;
until ItemOID<>0;
//************************************************
if (CurEnchLvl>=strtoint(Edit1.Text)) then begin
msg.Lines.Add('Íåò ïîäõîäÿùèõ ïðåäìåòîâ äëÿ óëó÷øåíèÿ! Ïðåðâàíî!');
msg.Lines.Add('Äîñòèãëè MaxEnchLvl!');
timer.enabled:=false;
ready:=false;
delay(500);
RequestEnchantItem(-1);
exit;
end else begin
// msg.Lines.Add('Ïðîáóåì óëó÷øèòü ItemID='+IntToStr(ItemID)+' ItemOID='+IntToStr(ItemOID)+' ItemEnchLvl='+IntToStr(ItemEnch));
RequestEnchantItem(ItemOID);
ready:=false;
timer.enabled:=true;
end;
end;
end;
#$87: begin
if readd(2)=0 then begin
msg.Lines.Add('Óëó÷øèëè ItemID='+IntToStr(ItemID)+' ItemOID='+IntToStr(ItemOID)+' ItemEnchLvl='+IntToStr(ItemEnch));
inc(good);
end else begin
msg.Lines.Add('Ñëîìàëè ItemID='+IntToStr(ItemID)+' ItemOID='+IntToStr(ItemOID)+' ItemEnchLvl='+IntToStr(ItemEnch));
inc(broken);
end;
// CurEnchLvl:=0; //íà÷íåì ñ íà÷àëà
end;
end;
end.
o cara que fez esse script se chama NLObP, fodao em programacao por sinal....
ai em cima onde tem o nome dele o cara substitui pelo nome do seu char, e em baixo seleciona o cliente, pode ser c4 , interlude , gracia pt2 ou final.
Prestigioo
31-08-2009 01:03 PM
phx
aee vey see for possivel ; manda seeu msn preciso tirar umas duvidas sobre l2phx pra funfar eim l2jDOT ;] ow see naum add aee MSN/E-MAIL RETIRADO!:cute: