So vor kurzem süchtig ich PR_Write in Mozilla und war in der Lage, Ergebnisse (alle Verbindung buchstäblich) zu einer Protokolldatei zu protokollieren, gibt es jedoch ein Problem, ich war davon ausgegangen, dass nach PR_Write würde ich erfassen können HTTPS-Daten, aber wenn ich mich bei einem HTTPS-Server anmelde, erfasst es nicht die unverschlüsselten POST-Daten, ich habe versucht, localhost zu verwenden und einen gefälschten POST zu erstellen und erfasst den localhost-Post, wenn er nicht verschlüsselt ist. Ist PR_Write dafür gedacht, nicht alle Arten von Daten zu erfassen? PR_Write nach dem hooking
Dies ist der Prototyp des PR_Write, die ich verwende, und die Variable:
typedef int (*Custom_Write)(PVOID, LPVOID, INT);
Custom_Write c_write=NULL;
PR_Write definition by Mozilla
und in der Umweg Funktion, nenne ich die ursprüngliche PR_Write durch die Adresse bekommen, die gespeichert wird in c_write
mit GetProcAddress. Unten ist, wie es heißt:
// detour function
int detour_pr_write(int fd, LPVOID buf, int bytes)
{
// ... code for virtual protect
int retaddr=c_write(fd, buf, bytes);
// file functions
fwrite(buf, sizeof(char), strlen(buf), fileHandle);
// ... code for virtual protect
return retaddr; // go to original function
}
funktioniert Die Protokollierung und andere Sachen in Ordnung, aber wenn es um das Schreiben verschlüsselt POST-Daten kommt nach unten, es funktioniert nicht. Es endet damit, Kauderwelsch zu schreiben.
Sicher - es hat strlen() drin. Gebunden, um falsch zu liegen. –
Ich frage mich, warum der Hooked Call diesen 'Int Bytes' Parameter hat? Ich bin mir sicher, dass es aus irgendeinem Grund da sein muss ... –
Die Definition von PR_Write hat diese drei Parameter wie hier https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSPR/Referenz/PR_Write – demogorgon