fix registers read bug and expose load_addr to Rust
This commit is contained in:
parent
cbbe73864b
commit
654aef1147
1
cpu.c
1
cpu.c
@ -83,6 +83,7 @@ int libafl_qemu_read_reg(int reg, uint8_t* val)
|
|||||||
|
|
||||||
CPUClass *cc = CPU_GET_CLASS(cpu);
|
CPUClass *cc = CPU_GET_CLASS(cpu);
|
||||||
if (reg < cc->gdb_num_core_regs) {
|
if (reg < cc->gdb_num_core_regs) {
|
||||||
|
g_byte_array_set_size(libafl_qemu_mem_buf, 0);
|
||||||
int len = cc->gdb_read_register(cpu, libafl_qemu_mem_buf, reg);
|
int len = cc->gdb_read_register(cpu, libafl_qemu_mem_buf, reg);
|
||||||
if (len > 0) {
|
if (len > 0) {
|
||||||
memcpy(val, libafl_qemu_mem_buf->data, len);
|
memcpy(val, libafl_qemu_mem_buf->data, len);
|
||||||
|
@ -627,11 +627,18 @@ static int parse_args(int argc, char **argv)
|
|||||||
|
|
||||||
//// --- Begin LibAFL code ---
|
//// --- Begin LibAFL code ---
|
||||||
|
|
||||||
|
uint64_t libafl_load_addr(void);
|
||||||
int libafl_qemu_main(void);
|
int libafl_qemu_main(void);
|
||||||
int libafl_qemu_run(void);
|
int libafl_qemu_run(void);
|
||||||
|
|
||||||
static CPUArchState *libafl_qemu_env;
|
static CPUArchState *libafl_qemu_env;
|
||||||
|
|
||||||
|
struct image_info libafl_image_info;
|
||||||
|
|
||||||
|
uint64_t libafl_load_addr(void) {
|
||||||
|
return libafl_image_info.load_addr;
|
||||||
|
}
|
||||||
|
|
||||||
__attribute__((weak)) int libafl_qemu_main(void)
|
__attribute__((weak)) int libafl_qemu_main(void)
|
||||||
{
|
{
|
||||||
libafl_qemu_run();
|
libafl_qemu_run();
|
||||||
@ -649,7 +656,8 @@ int libafl_qemu_run(void)
|
|||||||
int main(int argc, char **argv, char **envp)
|
int main(int argc, char **argv, char **envp)
|
||||||
{
|
{
|
||||||
struct target_pt_regs regs1, *regs = ®s1;
|
struct target_pt_regs regs1, *regs = ®s1;
|
||||||
struct image_info info1, *info = &info1;
|
//struct image_info info1, *info = &info1;
|
||||||
|
struct image_info *info = &libafl_image_info;
|
||||||
struct linux_binprm bprm;
|
struct linux_binprm bprm;
|
||||||
TaskState *ts;
|
TaskState *ts;
|
||||||
CPUArchState *env;
|
CPUArchState *env;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user