angr / tracer

Utilities for generating dynamic traces
BSD 2-Clause "Simplified" License
88 stars 28 forks source link

tracer.tracer.TracerMisfollowError: program did not behave correctly, expected only one path #38

Closed ghost closed 2 years ago

ghost commented 7 years ago

I wanna run rex to get exp, but when I run rex , it report this error, so I read tracer module's source code. I find that it first use qemu to trace program. get addrs array, like these: Trace 0x5555c65c5bb0 [08048d0a] Trace 0x5555c65c5ca0 [08049160] Trace 0x5555c65c5d70 [0804943d] Trace 0x5555c65c5db0 [08049189] when run tracer, it report TracerMisfollowError, so I follow the code ,found the reason is that the sm.step() always stayed on 0xa000008, it leads no active[] state when the program get into next_branch() function. I copied the code from tracer.py , and do almost the same thing, name simu.py, I find when I change one para of pg.factory.simgr() func, it can go further, the options is 'immutable=True'(line 1015 of tracer.py), I change it to 'False', actually I am not quit know the meaning of the options, but when I change it , it can go. it report another warning: ' tracer.Tracer | Unable to correct discrepancy between qemu and angr.' at last, it goes addr 0x0,while the trace addr should be 0x806f3d8, so it still report 'program did not behave correctly, expected only one path' error, should I revise that oprion? how to solve this warning?

github-actions[bot] commented 2 years ago

This issue has been marked as stale because it has no recent activity. Please comment or add the pinned tag to prevent this issue from being closed.

github-actions[bot] commented 2 years ago

This issue has been closed due to inactivity.