add a little tool

This commit is contained in:
comex 2011-04-18 14:46:12 -04:00
parent 94e96392fe
commit 0e58e9e8c4
3 changed files with 19 additions and 2 deletions

View File

@ -1,7 +1,7 @@
DATA = $(word 1,$(wildcard ./data ../data))
include $(DATA)/Makefile.common
BINS := check_sanity make_kernel_patchfile apply_patchfile sandboxc.c
BINS := check_sanity make_kernel_patchfile apply_patchfile dump_range sandboxc.c
all: .settings .data $(BINS)
.data:
make -C $(DATA)
@ -18,6 +18,8 @@ apply_patchfile: apply_patchfile.o $(DATA)/libdata.a
$(GCC) -o $@ $^ $(DATA)/libdata.a
make_kernel_patchfile: make_kernel_patchfile.o sandboxc.o $(DATA)/libdata.a
$(GCC) -o $@ $^ $(DATA)/libdata.a
dump_range: dump_range.o $(DATA)/libdata.a
$(GCC) -o $@ $^ $(DATA)/libdata.a
clean:
rm -f $(BINS) *.o

View File

@ -52,7 +52,7 @@ int main(int argc, char **argv) {
goto retry;
}
} else {
printf("%s\n", name);
printf("%s (0x%x)\n", name, addr);
}
memcpy((char *) kernel.start + range_to_off_range((range_t) {&binary, addr, size}).start, stuff, size);

15
dump_range.c Normal file
View File

@ -0,0 +1,15 @@
#include <data/common.h>
#include <data/binary.h>
int main(int argc, char **argv) {
if(argc != 4) {
fprintf(stderr, "Usage: dump_range binary start len\n");
return 1;
}
struct binary binary;
b_init(&binary);
b_load_macho(&binary, argv[1], false);
prange_t pr = rangeconv((range_t) {&binary, parse_hex_uint32(argv[2]), parse_hex_uint32(argv[3])});
write(1, pr.start, pr.size);
return 0;
}