mach doch einfach die send packets an und guck selber?
jo thx....eigentlich brauch ich keine oder?Quote:
55 8B EC 81 EC 94 00 00 00 D9 45 08 D8 35 E0 DC 66 00 D9 5D 08 <- müsste Hight Detour sein...
DWORD* coordpointerX = (DWORD*)0x006F3840;
DWORD* coordpointerY = (DWORD*)0x006F3840;
DWORD PX;
DWORD PY;
MemcpyEx((DWORD)&PX,(((DWORD)*coordpointerX)+0x0000463C),4);
MemcpyEx((DWORD)&PY,(((DWORD)*coordpointerY)+0x00004644),4);
int difx=Mob[i].X-PX;
int dify=Mob[i].Y-PY;
float MobRange=(difx*difx+dify*dify)*1.0;
DWORD MobRangesqrt=sqrt(MobRange);
target=id;
MessageBoxA(NULL,"Mob found...Walk to mob...\n","Mob found",0);
printf("Target found...\n");
printf("Target stats: X %d Y %d HP %d\n",Mob[target].X,Mob[target].Y,Mob[target].HP);
printf("Continue to step 2...\n");
unsigned char tempx=(double(difx)/MobRangesqrt)*30;
unsigned char tempy=(double(dify)/MobRangesqrt)*30;
DWORD lastattack=GetTickCount();
if (lastattack=GetTickCount()-800)
{
int difx=Mob[target].X-PX;
int dify=Mob[target].Y-PY;
float MobRange=(difx*difx+dify*dify)*1.0;
DWORD MobRangesqrt=sqrt(MobRange);
if ((MobRangesqrt > 55.0)&&(MobRangesqrt < 200.0))
{
SendDetour(0x15,"bbb",tempx,tempy,0);
printf("walk to mob..\n");
lastattack=GetTickCount();
}
else
{
if (MobRangesqrt < 55.0)
{
printf("Attack mob...\n");
SendDetour(0x0f,"bdd",1,Mob[target].MID,lastweapon);
}
else
{
if (MobRangesqrt > 200.0)
{
printf("Ignore mob..\n");
}
}
}
}
}
hab mir schon runtergeladen aber noch nich angeguckt....danke werd ich machen :PQuote:
kalhacker guck meine source an von auto login an da ist send funktion drinne die geht ^^
DWORD Send_To_Server_Main_ = SearchPattern("55 8B EC 83 EC 18 83 3D x x x x 00 74 07 33 C0 E9 x x x x 8A 45 08"
,0x00400000,0x007FFFFF);
DWORD Send_To_Server_Main = SearchPattern("55 8B EC 83 EC 18 83 3D x x x x 00 74 07 33 C0 E9 x x x x 8A 45 08"
,Send_To_Server_Main_+1,0x007FFFFF);
DWORD Send_To_Server_Back = Send_To_Server_Main + 0x06;
int Naked Send_To_Server(BYTE type,LPCSTR format,...)
{
__asm
{
push ebp
mov ebp, esp
sub esp, 18h
}
DWORD SniffPacketMain_ = SearchPattern("55 8B EC 83 EC 18 83 3D x x x x 00 74 07 33 C0 E9 x x x x 8A 45 08",0x00400000,0x007FFFFF);
DWORD SniffPacketMain = SearchPattern("55 8B EC 83 EC 18 83 3D x x x x 00 74 07 33 C0 E9 x x x x 8A 45 08",SniffPacketMain_+1,0x007FFFFF);
DWORD SniffPacketBack = SniffPacketMain_ + 0x06;
DWORD SendPacketMain_ = SearchPattern("55 8B EC 83 EC 18 83 3D x x x x 00 74 07 33 C0 E9 x x x x 8A 45 08",0x00400000,0x007FFFFF);
DWORD SendPacketMain = SearchPattern("55 8B EC 83 EC 18 83 3D x x x x 00 74 07 33 C0 E9 x x x x 8A 45 08",SendPacketMain_+1,0x007FFFFF);
DWORD SendPacketBack = SendPacketMain + 0x06;
char * buf2;
DWORD RecvMain = SearchPattern("55 8B EC 83 EC 08 89 4D F8 8B 45 14 50 8B 4D 10 51 8B 55 0C 52 8B 45 08 50",0x00400000,0x007FFFFF);//0x0053E1F0;
DWORD RecvBack = RecvMain + 0x19;
char SniffPacketText[] = "PACKET TYPE:0x%02x FORMAT:%s\n";
int Naked SendPacket(BYTE type,LPCSTR format,...)
{
__asm
{
push ebp
mov ebp, esp
sub esp, 18h
}
// send.cpp
bool autologin = true;
int Naked UserSendPacketToServer(BYTE sent,LPCSTR format,...)
{
__asm
{
push ebp
mov ebp, esp
sub esp, 18h
}
if (SNF1)
{
printf(SniffPacketText,sent,format);
}
va_list args;
va_start(args, format);
int i;
char* something;
for (i=0;i<(signed)strlen(format);i++)
{
switch (format[i])
{
case 'U':
temp=va_arg( args, DWORD);
last_u=temp;
if (SNF6)
{
printf(" %d: %d\n",i+1,va_arg( args, DWORD));
}
break;
case 'b':
temp =(DWORD)va_arg( args, DWORD);
if (SNF2)
{
printf(" %d: %d\n",i+1,temp);
}
break;
case 'd':
temp =(DWORD)va_arg( args, DWORD);
if (SNF3)
{
printf(" %d: %d\n",i+1,temp);
}
if ((i==0)&&(sent 0x22)&&(trade))
{
PlayerID = temp;
UserSendPacketToServer(0x23,"bd",01,PlayerID);
}
if ((i == 0)&&(sent 0x2c)&&(party))
{
PlayerID = temp;
UserSendPacketToServer(0x2d,"bd",01,PlayerID);
}
if ((i==0)&&(sent 0x50)&&(duel))
{
PlayerID = temp;
UserSendPacketToServer(0x51,"bd",01,PlayerID);
}
if ((usedrop)&&(sent 0x1a)&&(i==0))
{
dropID = temp;
}
if ((i==0)&&(sent 0x1a))
{
dropID = temp;
}
if ((useweapon)&&(sent 0x41)&&(i==0))
{
wearID = temp;
}
if(sent 0x41)
{
wearID = temp;
}
break;
case 'w':
temp=va_arg( args, DWORD);
if (SNF4)
{
printf(" %d: %d\n",i+1,(WORD)va_arg( args, DWORD));
}
break;
case 's':
if (SNF5)
{
printf(" %d: %s\n",i+1,something);
}
something=va_arg( args, char*);
break;
}
}
va_end(args);
__asm
{
jmp UserSendPacketToServerBack
}
}
if ((packet[2] == 0x24) || (packet[2] == 0x25))
{
//mob move..
DWORD id;
memcpy((void*)&id,(void*)((DWORD)packet+3),4);
int i;
for (i=0;i<500;i++)
{
//check if x =0
if (Mob[i].MID == id)
{
signed char x,y/*,z*/=0;
memcpy((void*)&(x),(void*)((DWORD)packet+3+4),1);
memcpy((void*)&(y),(void*)((DWORD)packet+3+4+1),1) ;
//memcpy((void*)&(z),(void*)((DWORD)packet+3+4+1+1), 1);
Mob[i].X+=x;
Mob[i].Y+=y;
//Player[i].Z+=z;
break;
}
}
}
if (packet[2] == 0x33)
{
//mob apear
int i;
for (i=0;i<500;i++)
{
//check if x =0
if (Mob[i].X == 0)
{
DWORD id;
memcpy((void*)&id,(void*)((DWORD)packet+3+2),4);
Mob[i].MID=id;
memcpy((void*)&(Mob[i].Classe),(void*)((DWORD)packet+3),2);
memcpy((void*)&(Mob[i].X),(void*)((DWORD)packet+3+4+2),4);
memcpy((void*)&(Mob[i].Y),(void*)((DWORD)packet+3+4+2+4),4);
memcpy((void*)&(Mob[i].HP),(void*)((DWORD)packet+3+4+2+4+4+1+1),2);
//printf("Mob: %d X %d Y %d Z %d HP %d\n",Mob[i].Classe,Mob[i].X,Mob[i].Y,Mob[i].Z,Mob[i].HP);
mobsx+=1;
if (boton == 1)
{
DWORD* coordpointerX = (DWORD*)0x006F3840;
DWORD* coordpointerY = (DWORD*)0x006F3840;
DWORD PX;
DWORD PY;
MemcpyEx((DWORD)&PX,(((DWORD)*coordpointerX)+0x0000463C),4);
MemcpyEx((DWORD)&PY,(((DWORD)*coordpointerY)+0x00004644),4);
int difx=Mob[i].X-PX;
int dify=Mob[i].Y-PY;
float MobRange=(difx*difx+dify*dify)*1.0;
DWORD MobRangesqrt=sqrt(MobRange);
target=id;
printf("Target found...\n");
printf("Target stats: X %d Y %d HP %d\n",Mob[target].X,Mob[target].Y,Mob[target].HP);
printf("Continue to step 2...\n");
unsigned char tempx=(double(difx)/MobRangesqrt)*30;
unsigned char tempy=(double(dify)/MobRangesqrt)*30;
DWORD lastattack=GetTickCount();
if (lastattack=GetTickCount()-800)
{
int difx=Mob[target].X-PX;
int dify=Mob[target].Y-PY;
float MobRange=(difx*difx+dify*dify)*1.0;
DWORD MobRangesqrt=sqrt(MobRange);
if ((MobRangesqrt > 55.0)&&(MobRangesqrt < 200.0))
{
SendDetour(0x15,"bbb",tempx,tempy,0);
printf("walk to mob..\n");
lastattack=GetTickCount();
}
else
{
if (MobRangesqrt < 55.0)
{
printf("Attack mob...\n");
SendDetour(0x0f,"bdd",1,Mob[target].MID,lastweapon);
}
else
{
if (MobRangesqrt > 200.0)
{
printf("Ignore mob..\n");
}
}
}
}
}
if (nearest > range)
{
printf("Search again..\n");
id=i;
}
else if (id=-1)
{
boton=2;
printf("Walk to mob\n");
}