27/08/09 10:46
norbix
salve in questo periodo sto riorganizzando il mio keylogger suddividendolo in vari sorgenti, il "modulo" per la codifica in HTML non funziona correttamente, e dopo vari giorni di tentativi, debugging e meditazione, sono arrivato alla conclusione che
non equivale a
nel vano tentativo di scoprire perchè questa cosa non sia vera, vi posto il sorgente del modulo
dest[0] = 0; strcat(dest, source);
non equivale a
strcpy(dest, source);
nel vano tentativo di scoprire perchè questa cosa non sia vera, vi posto il sorgente del modulo
#include "HTML_encoder.h" #include <string.h> #include <windows.h> BYTE temp[1024]; void HTML_build_row(BYTE *source, BYTE *dest) { dest[0] = 0; // se il primo carattere della stringa è il carattere di fine stringa, allora la stringa è vuota if(strstr(source, ">> >> >>")) // example: >> >> >> N.A.K. Booted - 04/07/2009 19:17 << << << { strcat(dest, "<bt>"); // boot title HTML_encoder(source, temp); strcat(dest, temp); strcat(dest, "</bt>"); } else if(strstr(source, ">>")) // example: >> Disk space analizer (C:\) << { strcat(dest, "<wt>"); // window title HTML_encoder(source, temp); strcat(dest, temp); strcat(dest, "</wt>"); } else if(strstr(source, "<") && strstr(source, ">")) // example: <CAPSLOCK ON> { strcat(dest, "<sk>"); // special key HTML_encoder(source, temp); strcat(dest, temp); strcat(dest, "</sk>"); } else { HTML_encoder(source, dest); } } void HTML_build_head(BYTE *dest) { BYTE *code = "<html>\n" "<head>\n" "<title>N.A.K. Log File</title>\n" "<link href = style.css rel = stylesheet type = text/css>\n" "</head>\n\n" "<body>\n" "<code>\n"; strcpy(dest, code); free(code); } void HTML_encoder(BYTE *source, BYTE *dest) { // funziona strcpy ma non strcat a quanto sembra dest[0] = 0; // se il primo carattere della stringa è il carattere di fine stringa, allora la stringa è vuota strcat(dest, source); return; int i; for(i = 0; i < strlen(source); i++) { if(source[i] == '"') strcat(dest, """); else if(source[i] == '<') strcat(dest, "<"); else if(source[i] == '>') strcat(dest, ">"); else if(source[i] == '&') strcat(dest, "&"); else if(source[i] == '\n') strcat(dest, "<br>\n"); else { int last_char_pos = strlen(dest) - 1; dest[last_char_pos + 1] = source[i]; // aggiunge alla stringa il carattere sorgente senza modificarlo dest[last_char_pos + 2] = 0; // aggiunge il carattere di fine stringa } } }
aaa