New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tell miasm not to simplify a register #1419
Comments
Hi @acheron2302 |
@serpilliere sorry for a late respond, on the picture above is the sb.dump() after i run through a block. |
Ok @acheron2302 I think I have it but you might have misinterpreted the symbolic execution result:
After step 1, you have the following state result:
After step 2, you have:
But at this step, EAX is not egual to EBX. correct?
But you cannot conclude that ecx = @32[12] so EAX = @32[12] |
Yeah you get the right idea @serpilliere.
What i want is after i use symbolic execution the value of |
Hi @acheron2302 To do this, you can subclass the lifter and implement your class LifterDelModCallStack(machine.lifter_model_call):
def call_effects(self, addr, instr):
assignblks, extra = super(LifterDelModCallStack, self).call_effects(addr, instr)
if not args.calldontmodstack:
return assignblks, extra
out = []
for assignblk in assignblks:
dct = dict(assignblk)
dct = {
dst:src for (dst, src) in viewitems(dct) if dst != self.sp
}
out.append(AssignBlock(dct, assignblk.instr))
return out, extra Here, the code will consider that if
Does it resolves your problem? |
In the following image, notice ECX, ESP and @32[ESP]. The ECX is suppose to be @32[ESP] and miasm recognise that ESP has an expresion so it simplify to @32[], but what i want is the expression to become @32[ESP] = 0x3D716DE. How can i do that wihth miasm?
The text was updated successfully, but these errors were encountered: