# https://c9x.me/x86/html/file_module_x86_id_147.html def jmp(state, inst): parts = inst.split(' ') op = parts[0] dst = int(parts[1], 16) # Faking this since we don't really care for the examples we have state.eip == dst return state if __name__ == "__main__": s = Solver() state = Registers() state.eip = 0x1234 state = jmp(state, 'jmp 0x41414141') s.add(state.eip == 0x41414141) print('eip = 0x1234, jmp 0x41414141, eip == 0x41414141?') check = s.check() print(check) print("eip == {}".format(state.eip)) s = Solver() state = Registers() state.eip = 0x41414141 state = jmp(state, 'jmp 0x42424242') s.add(state.eip == 0x41414141) check = s.check() print('eip = 0x41414141, jmp 0x42424242, eip == 0x41414141?') print(check) if check == sat: