コード例 #1
0
ファイル: bin_avr.c プロジェクト: montekki/radare2
static void addptr(RList *ret, const char *name, ut64 addr, const ut8 *b, int len) {
	if (b && rjmp (b)) {
		addsym (ret, sdb_fmt ("vector.%s", name), addr);
		ut64 ptr_addr = rjmp_dest (addr, b + addr);
		addsym (ret, sdb_fmt ("syscall.%s", name), ptr_addr);
	}
}
コード例 #2
0
ファイル: bin_avr.c プロジェクト: montekki/radare2
static bool check_bytes_rjmp(const ut8 *b, ut64 length) {
	CHECK3INSTR (b, rjmp, 4);
	ut64 dst = rjmp_dest (0, b);
	if (dst < 1 || dst > length) {
		return false;
	}
	tmp_entry = dst;
	return true;
}
コード例 #3
0
ファイル: bin_avr.c プロジェクト: AmesianX/radare2
static int check_bytes(const ut8 *b, ut64 length) {
	if (length < 32) {
		return false;
	}
	if (!rjmp (b)) return false;
	if (!rjmp (b + 2)) return false;
	if (!rjmp (b + 4)) return false;
	if (!rjmp (b + 8)) return false;
	ut64 dst = rjmp_dest (0, b);
	if (dst < 1 || dst > length) {
		return false;
	}
	if (!rjmp (b + dst - 2)) {
		return false;
	}
	tmp_entry = dst;
	return true;
}