packet send hook format[i] ausgeben

04/14/2015 12:23 Slade100#1
hey :D habs vor kurzem geschafft send function in kal zu hooken habe zur hilfe der ausgabe den teil vom kalsendhack genommen

for (i = 0; i<strlen(format); i++)

{

switch (format[i])

{

case 'b': //BYTE
temp = va_arg(args, BYTE);
printf(" %d: %d\n",i+1,temp);

break;

case 'd': //DWORD
temp = (DWORD)va_arg(args, DWORD);
printf(" %d: %d\n",i+1,temp);

break;

case 'w': //WORD

printf(" %d: %d\n",i+1,(WORD)va_arg( args, DWORD));

break;

case 's': //STRING

something = va_arg(args, char*);
char* somethings;
//printf(" %d: %s\n",i+1,something);// wird ja garnet ausgegebn

break;

case 'm':

printf(" %d: %d\n",i+1,(DWORD)va_arg( args, DWORD));

break;


}


}
jetzt meine frage, wieso klappt das mit der ausgabe nicht? es wird immer nur das erste printf ausgegeben.. z.b bei einem packet move stop steht da bbb aber nur das erste byte wird ausgegeben... erstmal dachte ich mir vllt buggt das bei dem strlen(format), habe da dafür dann ein printf direkt unter die for schleife gemacht
printf("%d\n", strlen(format));
dann wurde nur noch das ausgegeben xD ich peil einfach nicht woran das liegen könnte :S
04/14/2015 17:08 meak1#2
weil du mit break die schleife beendest ?

Edit: achsooo Mh, kann mich auch irren...
Sry hab die func nie benutzt XD

ich dachte eig. das die Sendhook geprüft wird aus der engine
Weil in der ws32_2.dll send sind die packete verschlüsselt und anders aufgebaut als in der KalSendhook
04/14/2015 18:22 Slade100#3
Quote:
Originally Posted by meak1 View Post
weil du mit break die schleife beendest ?

Edit: achsooo Mh, kann mich auch irren...
Sry hab die func nie benutzt XD

ich dachte eig. das die Sendhook geprüft wird aus der engine
Weil in der ws32_2.dll send sind die packete verschlüsselt und anders aufgebaut als in der KalSendhook
das ist die normale sendhook womit ich auch packets senden kann nicht die aus ws32_2.dll
04/14/2015 20:38 Mahatma#4
Quote:
Originally Posted by meak1 View Post
weil du mit break die schleife beendest ?
ne, break is von der switch anweisung - des passt schon so...

@erfan100 bitte nächstes mal den sourcecode etwas strukturierter und mit syntax-highlighting posten, dann is das ganze übersichtlicher und man kann dir besser helfen ;)

hab mir das ganze angesehen und find eigentlich keinen grund warum er es net vollständig ausgeben sollte... :-/

würde mir an deiner stelle einfach noch ein paar debug ausgaben ausgeben lassen - beispielsweise ausserhalb der switch in der schleife, damit du mal siehst wie oft die schleife durchlaufen wird undso ;)

würde dann beispielsweise so aussehen:
04/14/2015 20:46 Slade100#5
Quote:
Originally Posted by Mahatma View Post
ne, break is von der switch anweisung - des passt schon so...

@erfan100 bitte nächstes mal den sourcecode etwas strukturierter und mit syntax-highlighting posten, dann is das ganze übersichtlicher und man kann dir besser helfen ;)

hab mir das ganze angesehen und find eigentlich keinen grund warum er es net vollständig ausgeben sollte... :-/

würde mir an deiner stelle einfach noch ein paar debug ausgaben ausgeben lassen - beispielsweise ausserhalb der switch in der schleife, damit du mal siehst wie oft die schleife durchlaufen wird undso ;)

würde dann beispielsweise so aussehen:
okay werd ich machen das mit dem code ab jetzt :D habe schon alles versucht, als ich etwas oberhalb der for schleife gemacht habe gings aber da wurde auch nur 1 werd zurück gegeben^^ und die for schleife ignoriert, aber direkt unter der forschleife, da gings nichtmal mehr ins switch rein^^
04/15/2015 16:45 katze123#6
sehe keinen Grund warum es nicht funzen sollte. Sehe nur, dass dein i global ist und evtl durch nen anderen thread verändert wird
04/16/2015 00:48 Slade100#7
ach das was in der schleife passiert ist hat 0 sinn gemacht xD
in der for schleife war das i nach dem ersten durchlauf bei iwie 45675474 statt bei 1 xD naja mit global hatte das nichts zu tun, gleiches problem war auch als ich i zu m geändert habe^^ naja egal hab das schon längst anders gelöst in dem ich einfach immer 4 werte ausgebe
PHP Code:
temp = (DWORD)va_arg(argsDWORD);
    
printf(" 1: %d\n"temp);
    
temp = (DWORD)va_arg(argsDWORD);
    
printf(" 2: %d\n"temp);
    
temp = (DWORD)va_arg(argsDWORD);
    
printf(" 3: %d\n"temp);
    
temp = (DWORD)va_arg(argsDWORD);
    
printf(" 4: %d\n"temp); 
da ich die strings eh nicht benötige :D