Exemple #1
0
static int __read(RIO *io, RIODesc *fd, ut8 *buf, int count) {
    if (!fd)
        return -1;

    if (wind_get_target(fd->data)) {
        uint64_t va;
        if (!wind_va_to_pa (fd->data, io->off, &va))
            return -1;
        return wind_read_at_phys(fd->data, buf, va, count);
    }

    return wind_read_at(fd->data, buf, io->off, count);
}
Exemple #2
0
ut64 wind_get_target_base (WindCtx *ctx) {
	ut64 ppeb;
	ut64 base = 0;

	if (!ctx || !ctx->io_ptr || !ctx->syncd || !ctx->target)
		return 0;

	if (!wind_va_to_pa(ctx, ctx->target->peb, &ppeb))
		return 0;

	if (!wind_read_at_phys (ctx, (uint8_t *)&base,
		ppeb + O_(P_ImageBaseAddress), 4 << ctx->is_x64))
		return 0;

	return base;
}