blob: 0d98c76e2cb9d8014528e2c8163c5a87f6b6226f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
#include <stdio.h>
#define __USE_GNU
#include <dlfcn.h>
static size_t memcpy_size = 0;
static size_t last_checkpoint = 0;
void *memcpy (void *dest, const void *src, size_t n)
{
static void * (*real_memcpy) (void *, const void *, size_t) = 0;
if (!real_memcpy) {
real_memcpy = dlsym (RTLD_NEXT, "memcpy");
}
memcpy_size += n;
if (memcpy_size - last_checkpoint > (1024*1024)) {
fprintf (stderr, "memcpy total: %d\n", memcpy_size);
//asm("int3");
last_checkpoint = memcpy_size;
}
return real_memcpy (dest, src, n);
/*
unsigned char *d = dest;
unsigned char *s = src;
while (n--) *d++ = *s++;
return dest;
*/
}
|