PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Teamspeak Welcome Message ändern, aber wie?!



KILLER_
26.07.2008, 13:28
Wie kann ich diese Welcome Message ändern?
Die in ROTER SCHRIFT!

http://c.imagehost.org/0121/Teamspeak.jpg

Wenn ich meinen Hex-Editor in den ASCII-Mode umstelle und diese Message kürzer oder länger mache wie sie ursprünglich war, dann geht die Teamspeak.exe nicht mehr. ich wollte auch meine website einfügen, da mag der die : oder // aber nicht.

Wie kann ich das machen?

Unbekannt.exe
26.07.2008, 13:29
Benutz die Sufu, dafür gibts ein Tutorial, ich glaube sogar auf Youtube, von Suicide !

Freepler
26.07.2008, 13:50
Also meine Erfahrungen mit dem Hex-Editor sind folgende:
1. Wenn man bei "Suche" "Ersetzen durch" benutzt und direkt das speichert, ist die .exe kaputt
2.Mann kann nicht länger schreiben als der Text ist, ohne Punkt 1

Ich bin das immer so umgangen:
1. Du gehst auf "Suche" und suchst danach und trägst bei "Ersetze durch" ein Wort ein, was lang genug ist.
2. Da beim sofortigen Speichern die .exe kaputt geht, ersetzt du den Text nochmal, mit dem Text, denn du am Ende haben willst.
Damit ist die Länge geregtl (s.o. 2) und die .exe sollte icht beschädigt sein (s.o. 1)

Ich hoffe, das ist zu verstehen und funktioniert^^
Hat früher immer funktioniert :wink:

KILLER_
26.07.2008, 14:07
Danke, ich werde versuchen das hinzukriegen, komm mal auf Free-Hack Teamspeak

blackberry
26.07.2008, 15:48
Im hexeditor "*** Welcome to TeamSpeak 2 ***" suchen (nur die drei Sternchen reichen als Suchbegirff schon) und du findest sowas wie
http://img518.imageshack.us/img518/9717/655454ic7.png

das Rot umkreiste Byte (1E = dezimal: 30) repräsentiert die Länge der Welcomemessage (*** Welcome to TeamSpeak 2 *** = 30 Buchstaben).
Einfach den Text ändern und die Länge anpassen.
Die zwei NULL-bytes nach der Welcomemessage, die ich dünn rot unterlegt habe sollten auch noch überschreibbar sein, ohne das Programm zum absturz zu bringen. Für die Welcomemessage ergibt sich also eine maximale Länge von 30 + 2 (= 32 xD).
Die Länge ist vom Typ int (4 Bytes -> 1 R + 3 G) in meinem Programm habe ich die Zahl aber als einfachen char dargestellt und den Rest als 3 NULL-bytes, da man die Welcomemessage sowieso nicht so lang machen kann um einen integer zu füllen.


/*
Win32 TeamSpeak 2 Welcome Message Patch
by BlackBerry
This will change the Welcomemessage of
your TeamSpeak 2 Client.
(Default: *** Welcome to TeamSpeak 2 ***)
Note: This can also be done with a simple Hex-Editor.

The final size of this program is about 20 KB.
*/

#include <cstdio>

unsigned int strlen(const char*);
void* memset(void*, int, unsigned int);
void* memcpy(void*, const void*, unsigned int);
void exit(int);
void putError(const char*);
void cin(FILE*, void*, unsigned int);

FILE* fp;

struct ts2_wm
{
char len;
char fill[3];
char msg[33];
};

int main()
{
printf("Win32 TeamSpeak 2 Welcome Message Patch\n"
" by BlackBerry\n\n");
if ((fp = fopen("TeamSpeak.exe", "rb+")) == NULL)
putError("- Could not find/open TeamSpeak.exe\n");
char tswm[35] = "\x1e\x00\x00\x00*** Welcome to TeamSpeak 2 ***";
char buffer;
int x = -1;
int pos = -35;
while(!feof(fp))
{
if (x == 34)
break;
fread(&buffer, 1, sizeof(buffer), fp);
if (buffer != tswm[++x])
x = -1;
}
if (feof(fp))
putError("- No default Welcomemessage found (already patched?)\n");
pos += ftell(fp);
if (fseek(fp, pos, SEEK_SET) != 0)
putError("- Could not set writing position\n");
struct ts2_wm ts2wm;
printf("- Enter new welcomemessage\n"
" Characterlimit: 31\n"
" > ");
cin(stdin, &ts2wm.msg, sizeof(ts2wm.msg));
for(int a=strlen(ts2wm.msg);a<=sizeof(ts2wm.msg);a++)
ts2wm.msg[a] = 0;
ts2wm.len = strlen(ts2wm.msg);
for(int i=0;i<3;i++)
ts2wm.fill[i] = 0;
fwrite(&ts2wm, 1, sizeof(ts2_wm), fp);
fclose(fp);
printf(" [DONE] TeamSpeak.exe");
return 0;
}

void putError(const char* errmsg)
{
printf("%s", errmsg);
fclose(fp);
exit(0);
}

void cin(FILE* stream, void* dest, unsigned int size)
{
char buffer[size];
char buff;
unsigned int len = 0;
for(int x=0;x<size;x++)
{
len += fread(&buff, 1, sizeof(buff), stream);
if (buff == '\n')
break;
memcpy(&buffer[x], &buff, sizeof(buff));
}
buffer[size-2] = 0;
memcpy(dest, &buffer, strlen(buffer));
}
Wie immer - getestet mit dem Dev-C++ IDE.