-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtester.c
More file actions
41 lines (31 loc) · 759 Bytes
/
tester.c
File metadata and controls
41 lines (31 loc) · 759 Bytes
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
33
34
35
36
37
38
39
40
41
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "include/test.h"
typedef unsigned long long u64;
void* prepare_memory(u64 mem_size) {
u64 size;
if (mem_size < 30000) {
size = 30000;
} else {
size = mem_size;
}
void* mem = malloc(size);
memset(mem, 0, size);
return mem;
}
int main() {
u64 pmem_size = 30000;
void* pmem = prepare_memory(pmem_size);
void* dp = test(pmem);
printf(" | memory base = %p\n", pmem);
printf(" | data pointer = %p\n", dp);
if (pmem > dp || dp > pmem + pmem_size) {
printf(
" | Brainfuck code has errors! Data pointer went out of bounds!\n");
} else {
printf(" | data pointer offset = 0x%x\n", dp - pmem);
}
asm("int $3"); // trigger breakpoint
free(pmem);
}