-
[INNE] SendPacket 7.6
Witam, piszę prostego bota używając winapi, posiadam podstawowe rzeczy itp lecz mam pewien problem.
Mianowicie czy jest ktoś w stanie wytłumaczyć mi jak wysłać pakiet za pomocą biblioteki packet.dll z bota MPA?
Szukając rożnych rozwiązań natknąłem się na źródło, które działa lecz gdy pakiet zostanie wysłany to postać zostaje wylogowana.
Zamieszczam tutaj owe źródło:
Kod:
#include <Windows.h>
typedef int(WINAPI* SENDPACKET)(DWORD, char*);
SENDPACKET SendPacket;
HINSTANCE hLib;
int main()
{
HWND hWnd = FindWindow("TibiaClient", NULL);
DWORD pID;
GetWindowThreadProcessId(hWnd, &pID);
hLib = LoadLibrary("packet.dll");
SendPacket = (SENDPACKET)GetProcAddress(hLib, "SendPacket");
char packet[3] = {0x01, 0x00, 0x65};
SendPacket(pID, packet);
if(hLib)
FreeLibrary(hLib);
return 0;
}
Z góry dziękuję za odpowiedź.
-
http://tpforums.org/forum/thread-9038.html
Skompiluj pod 7.6
Tibiasock obsługuje Win 7, Vista, a stary packet.dll nie.
-
Czy mógłbyś mi pokrótce napisać jak to skompilować na 7.6?
Bot będzie używany wyłącznie na systemie win xp i czy nie lepiej jakoś użyć już gotowego packet.dll?
-
Proste, znajdź Adresy 7.6 i przeklej za nowe następnie skompiluj ;)
Nie, nie lepiej. ;d
-
Adresy które mnie interesują itp to już znalazłem. Chodzi mi bardziej o to, że nie wiem co mam kompilować bo nie mam źródła. Na tej stronie jest możliwość pobrania gotowego "Tibiasocket Test" lecz źródeł nie widzę.
-
-
No tak, byłem na tej stronie. Właśnie głownie o nią mi chodziło, że brak tam źródła.
No chyba, że ja znów niedowidzę.
-
Chłopie ogarnij się jak ty chcesz cokolwiek zrobić.
Chodziło mi o adresy do update Tibiasock.dll.
A source masz tutaj: http://tibiasock.googlecode.com/svn/trunk/
Ściagnij sobie to najlepiej Svn'em
-
Wiem o jakie adresy Ci chodziło. Poczytaj ze zrozumieniem, napisałem ze adresy mam ale nie mam całego źródła.
Dzięki za source.
-
Potrzebujesz dllmain.cpp exports.def i *.vcproj
-
Niech sobie wszystko sciagnie bo potem przez te rożne śmieciowate dodatki mvcpp nie dziala.
-
https://code.google.com/p/tibiasock/...nk%2FTibiasock
folder Tibiasock i Tibiasock Test
Sciagasz msvc++ 2010, moze byc express, odpalasz tibiasock.sln, kompilujesz i tyle
-
Skompilowane mam, jednak przeliczyłem się z tymi adressami. Nie jest to takie proste jakby się wydawało na przykładzie kodu który podałem w 1 poście.
-
Tzn?
Adresy które musisz updatować :
Kod:
///////////////////////PACKETS/////////////////////////
///////////////////////////////////////////////////////
///////////////////////////////////////////////////////
////////////////OUTGOINGDATASTREAM/////////////////////
#define OUTGOINGDATASTREAM 0x7B6F50 //961
//////////////////////////////////////////////////////
////////////////OUTGOINGDATALEN/////////////////////
#define OUTGOINGDATALEN 0x9D1FD8 //961
//////////////////////////////////////////////////////
////////////////SENDOUTGOINGPACKET/////////////////////
#define SENDOUTGOINGPACKET 0x514900 //961
//////////////////////////////////////////////////////
////////////////INCOMINGDATASTREAM/////////////////////
#define INCOMINGDATASTREAM 0x9D1FC4 //961
//////////////////////////////////////////////////////
////////////////PARSERFUNC/////////////////////
#define PARSERFUNC 0x463330 //961
//////////////////////////////////////////////////////
Oraz np funkcja do użycia drabiny
Kod:
void useItemOnFloor(DWORD x, DWORD y, int z, DWORD itemid){
Klient::Klient k;
Packet* p = new Packet();
p->AddByte(0x82);
p->AddShort(x);
p->AddShort(y);
p->AddByte(z);
p->AddShort(itemid);
p->AddByte(0x01);
p->AddByte(0x03);
Packlibs pl;
pl.SendPacketToServer(k.handle, p->GetRawPacket(), p->GetRawSize());
delete p;
}
i jej wywolanie
Kod:
p.useItemOnFloor(i1,i2,i3,1948);
I jeśli tego nie rozumiesz, nie bierz się za pisanie botów od "dupy strony"
-
@arkes
Mógłbyś może trochę rozjaśnić jakie kryteria należy użyć aby znaleźć wymienione wyżej adresy?
Chodzi mi czego używasz do znalezienia np tego adresu:
#define OUTGOINGDATASTREAM 0x7B6F50 //961
Po jakich wartościach szukasz?
Czy korzystasz z olly czy z memory scannerów ala cheat engine?
Z góry dziękuje za odpowiedź.