|
You last visited: Today at 18:39
Advertisement
Packets senden
Discussion on Packets senden within the C/C++ forum part of the Coders Den category.
10/05/2013, 18:29
|
#1
|
elite*gold: 0
Join Date: Aug 2011
Posts: 1,190
Received Thanks: 549
|
Packets senden
Hey, ich hab eben versucht mir ein Programm zu schreiben das Daten an ein Game Server(NosTale) sendet, so dass ich mich z.B. im Game bewege.
Code:
#include "stdafx.h"
int startWinsock(void);
int main()
{
long rc;
SOCKET s;
SOCKADDR_IN addr;
char buf[256];
rc=startWinsock();
if(rc!=0)
{
printf("Fehler\n");
return 1;
}
else
{
printf("Winsock gestartet!\n");
}
// Socket erstellen
s=socket(AF_INET,SOCK_STREAM,0);
if(s==INVALID_SOCKET)
{
printf("Fehler: Der Socket konnte nicht erstellt werden");
return 1;
}
else
{
printf("Socket erstellt!\n");
}
// Verbinden
memset(&addr,0,sizeof(SOCKADDR_IN));
addr.sin_family=AF_INET;
addr.sin_port=htons(4030);
addr.sin_addr.s_addr=inet_addr("79.110.84.87");
rc=connect(s,(SOCKADDR*)&addr,sizeof(SOCKADDR));
if(rc==SOCKET_ERROR)
{
printf("Fehler beim connecten..");
return 1;
}
else
{
printf("Verbunden mit 79.110.84.87..\n");
}
// Daten austauschen
while(rc!=SOCKET_ERROR)
{
printf("\nPacket: ");
gets(buf);
send(s,buf,strlen(buf),0);
rc=recv(s,buf,256,0);
if(rc==0)
{
printf("Server hat die Verbindung getrennt..\n");
break;
}
if(rc==SOCKET_ERROR)
{
printf("Fehler: recv");
break;
}
}
closesocket(s);
WSACleanup();
return 0;
}
int startWinsock(void)
{
WSADATA wsa;
return WSAStartup(MAKEWORD(2,0),&wsa);
}
Irgendwie funktioniert dies nicht so recht, wenn ich das Packet absende passiert in Game nichts und die Verbindung zum Server stürzt im Programm ab.
Bin noch kein Ober Pro darin, eher dabei es zu üben. Wäre es möglich das es über einer dll wahrscheinlicher wäre das es funktioniert oder muss man dabei ganz anders vorgehen damit die Packets angenommen werden?
Wäre über ein paar hilfreiche Antworten erfreut.
|
|
|
10/05/2013, 18:37
|
#2
|
elite*gold: 1000
Join Date: Apr 2012
Posts: 1,003
Received Thanks: 208
|
1. Hat das Spiel keine Verschlüsselung?
2. Du solltest einen Proxy als man-in-the-middle coden. Ansonsten wird das ohne weiteres nichts mit packets an den Server senden und eine Reaktion bekommen, die im Client sichtbar wird.
|
|
|
10/05/2013, 22:20
|
#3
|
elite*gold: 0
Join Date: May 2013
Posts: 1,266
Received Thanks: 627
|
Darf ich fragen, was du machen möchtest? Clientless Bot?
Kannst du jeze schon vergessen, da du ja ein tut dafür brauchtest.
@qkuh die server sollten eig antworten, nur eben mit bullshit. so wie die metin2 server
|
|
|
10/06/2013, 01:00
|
#4
|
elite*gold: 0
Join Date: Aug 2011
Posts: 1,190
Received Thanks: 549
|
Quote:
Originally Posted by NTX?!
Darf ich fragen, was du machen möchtest? Clientless Bot?
Kannst du jeze schon vergessen, da du ja ein tut dafür brauchtest.
@qkuh die server sollten eig antworten, nur eben mit bullshit. so wie die metin2 server
|
Ne wollte einfache Packets senden um zu gehen, hab mich noch nie damit beschäftigt daher war dies auch nur ein Versuch.
Quote:
Originally Posted by NTX?!
Kannst du jeze schon vergessen, da du ja ein tut dafür brauchtest.
|
Und wer sagt das man sowas nur ohne Tut's schafft? O.o
Jeder fängt mit Büchern und/oder Tutorials an und schafft es irgendwann sowas hinzubekommen.
|
|
|
10/06/2013, 01:11
|
#5
|
elite*gold: 724
Join Date: Mar 2011
Posts: 10,479
Received Thanks: 3,318
|
Quote:
Originally Posted by NTX?!
Kannst du jeze schon vergessen, da du ja ein tut dafür brauchtest.
|
Als ich angefangen habe, HGWC zu emulieren, habe ich mich noch nie mit Sockets befasst. Nach 1-2 Tutorials in der Art stand die Kommunikation, so what?
@TE: Die NosTale Packets werden nach einer speziellen Struktur aufgebaut sein, damit der Server und der Client erkennen können, dass das tatsächlich Daten sind und wie sie verarbeitet werden müssen. Wenn das Packet nicht korrekt ist, wirst du deine Probleme mit dem Server bekommen. Je nachdem disconnectet der dann dich & damit deinen Client.
Um den Charakter zu bewegen, wirst du über die Verbindung des Spiels Daten senden müssen, ansonsten fehlen ja die gesamten Zusatzinformationen (Daten des Spielers, welcher Spieler ist überhaupt gemeint etc.). Ich glaube, Adroxxx hat mal ein Tutorial zum Sniffen und Verschicken von Packets geschrieben, evtl. ist das ja was für dich.
|
|
|
10/06/2013, 07:52
|
#6
|
elite*gold: 0
Join Date: Aug 2011
Posts: 1,190
Received Thanks: 549
|
Meinst bestimmt des:
Danke dir
|
|
|
10/07/2013, 02:30
|
#7
|
elite*gold: 104
Join Date: Oct 2012
Posts: 2,720
Received Thanks: 593
|
Es ist schwachsinnig dich zum Server zu verbinden, und dem einfach irgendwas zuzusenden. Du hast dich mit deinem Programm ja nicht einmal eingeloggt oder verifiziert. Du bist mit deinem Client ständig mit einer Socket verbindung mit dem Server verbunden. Und der Server benutzt ein spezielles Protokoll, und vllt eine Verschlüsslung für die Kommunikation mit dem Client.
Dort musst du dich zwischen Schalten mit ner Man in the Middle (Hooking der Winsock Api).
Wenn du dich jetzt aber mit winsock einfach mit dem server connectest, und ihm zeug zuschickst.. da hast du keine verbindung zu deinem client. Was du tun müsstest wäre die Winsock Send Funktion zu Hooken in deinem Client, nicht ein eigenständiges Programm schreiben und dich dann damit verbinden. Du hookst die Winsock Funktionen von deinem Client,und kannst damit dann deine Pakete senden. Wenn du das richtig machst, klappt dann auch das bewegen ingame etc..
Aber dein Ansatz den du bisher hast, das funktioniert so nicht.
p.s: Die Verbindung die abbricht zum Server, das liegt daran weil dich der Server kickt weil du eben nicht das entsprechende Kommunikations Protokoll benutzt für die Kommunikation. Sobald du dem Server was sendest was nicht dem Protokoll entspricht wirst du gekickt.
|
|
|
10/07/2013, 09:19
|
#8
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
|
^Das Protokoll wird er auch nicht automatisch durch einen Winsock Hook erhalten. Das muss er schon selbst nachbauen oder auf einer höheren Ebene eine Art MovePlayer Funktion des Clients aufrufen.
|
|
|
10/07/2013, 18:30
|
#9
|
elite*gold: 104
Join Date: Oct 2012
Posts: 2,720
Received Thanks: 593
|
Quote:
Originally Posted by MrSm!th
^Das Protokoll wird er auch nicht automatisch durch einen Winsock Hook erhalten. Das muss er schon selbst nachbauen oder auf einer höheren Ebene eine Art MovePlayer Funktion des Clients aufrufen.
|
Das sollte klar sein denke ich^^
Mir ging es nur darum das er nur so Pakete senden kann vom Client zum Server.
Ansonsten müsste er ja das komplette Protokoll reversen und komplett in sein Programm einbauen, sich zum Server connecten, sich authentifizieren usw.. und ich glaub das führt dann zu weit.
Das Protokoll ansich muss er dann halt selbst reversen, z.b wie er sich bewegt etc. - das ist dann aber unabhängig von seinem Programm, und muss er halt mit Paket Sniffing und Reversing rausfinden.
Aber ich denke wirklich wenn er eine Art Bot programmieren möchte.. wärs einfacher für ihn wenn er den Client hooked und die einzelnen Funktionen aufruft. Ich weiß nicht wie es in Nostale ist, aber da gibts sicher auch spezielle Funktionen für das Bewegen des Charakters etc. die er hooken kann, und womit er dann arbeiten könnte.. auch ohne Pakete manuell zu senden. Bei WoW würde man ja z.b ClickToMove gut nutzen können zum Bewegen der Figur, wie das dann bei Nostale ist.. keine Ahnung - muss er mal selbst Reversen.
|
|
|
 |
Similar Threads
|
[C#] WPE Packets senden
08/10/2013 - .NET Languages - 2 Replies
Ich habe mir mit WPE Packets gesnifft und möchte sie nun per C# senden (Für einen Bot für ein Browsergame).
Das Paket:
2 192.168.2.67:51201 95.211.61.148:443 23 WSASend
0000 25 78 74 25 52 61 6E 63 68 45 78 25 31 35 25 31 %xt%RanchEx%15%1
0010 25 43 41 55 3D 25 00 %CAU=%.
Versucht habe ich es so:
|
WPE Packets in AutoIT senden ....
12/04/2010 - AutoIt - 32 Replies
Hallo alle zusammen,
die Überschrift sagt schon vieles ...
Ich will bestimmte Packets die ich von WPE kriege mit AutoIT senden ...
Die so aussehen :
http://public.slay.it/HOUSEOFMOBILE/000006.png
Die möchte ich senden ,aber ich habe momentan keine Ahnung wie ich dies Umsetzen soll ,weil ich diese Befehle,Funktionen ,UDFs nicht hab nicht weiß ...
Naja danke in vorraus ...
|
AutoIT Packets an SRO Gameserver senden via TCP & NuConnector
05/09/2010 - AutoIt - 6 Replies
Hi, also ich versuche gerade weiter mit AutoIT klarzukommen und endlich mal einen Bot(Für Silkroad via NuConnector oder anderes^^) zuschreiben der mit Packets arbeitet, aber irgendwie komme ich nicht weiter, also ich muss ja mit dem Befehl "TCPSend()" arbeiten, aber wie genau mache ich dass, ein Beispiel oder ein Tutorial(Deutsch) wäre nett, wodurch ich das nachvollziehen könnte, habe leider bis jetzt nichts richtiges gefunden, was mir dort weitergeholfen hat.
THX im voraus.
MfG
GomaTa
|
Packets senden mit Vb
01/29/2010 - .NET Languages - 2 Replies
Gibt es eine FUnktion in Vb die ermöglicht Packets zu senden?
|
Packets senden
11/20/2005 - Ragnarok Online - 4 Replies
also ich wollte das jetzt mal geklärt haben : kann man noch mit irgendwelchen packeteditoren irgendwie dupen ? wpe pro geht nicht auf win xp. (packet error)
hab jetz etherpeek 5.1 . ich bin ne arme sau in euro und würd endlich gern herausfinden wie mans richtig macht !!
|
All times are GMT +1. The time now is 18:41.
|
|