本文整理汇总了Python中triton.TritonContext.convertRegisterToSymbolicVariable方法的典型用法代码示例。如果您正苦于以下问题:Python TritonContext.convertRegisterToSymbolicVariable方法的具体用法?Python TritonContext.convertRegisterToSymbolicVariable怎么用?Python TritonContext.convertRegisterToSymbolicVariable使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类triton.TritonContext
的用法示例。
在下文中一共展示了TritonContext.convertRegisterToSymbolicVariable方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: TestPathConstraint
# 需要导入模块: from triton import TritonContext [as 别名]
# 或者: from triton.TritonContext import convertRegisterToSymbolicVariable [as 别名]
class TestPathConstraint(unittest.TestCase):
"""Testing path constraint."""
def setUp(self):
"""Define the arch."""
self.ctx = TritonContext()
self.ctx.setArchitecture(ARCH.X86)
trace = [
"\x25\xff\xff\xff\x3f", # and eax, 0x3fffffff
"\x81\xe3\xff\xff\xff\x3f", # and ebx, 0x3fffffff
"\x31\xd1", # xor ecx, edx
"\x31\xfa", # xor edx, edi
"\x31\xD8", # xor eax, ebx
"\x0F\x84\x55\x00\x00\x00", # je 0x55
]
self.ctx.convertRegisterToSymbolicVariable(self.ctx.registers.eax)
self.ctx.convertRegisterToSymbolicVariable(self.ctx.registers.ebx)
for opcodes in trace:
self.ctx.processing(Instruction(opcodes))
def test_getPathConstraintsAst(self):
"""Test getPathConstraintsAst"""
astCtx = self.ctx.getAstContext()
crst = self.ctx.getPathConstraintsAst()
self.assertNotEqual(len(self.ctx.getModel(crst)), 0)
self.assertNotEqual(len(self.ctx.getModel(astCtx.lnot(crst))), 0)
def test_getPathConstraints(self):
"""Test getPathConstraints"""
pco = self.ctx.getPathConstraints()
self.assertEqual(len(pco), 1)
def test_isMultipleBranches(self):
pc = self.ctx.getPathConstraints()[0]
self.assertTrue(pc.isMultipleBranches())
def test_getTakenPathConstraintAst(self):
pc = self.ctx.getPathConstraints()[0]
self.assertEqual(pc.getTakenPathConstraintAst().evaluate(), 1)
def test_getTakenAddress(self):
pc = self.ctx.getPathConstraints()[0]
self.assertEqual(pc.getTakenAddress(), 91)
def test_getBranchConstraints(self):
pc = self.ctx.getPathConstraints()[0].getBranchConstraints()
self.assertTrue(pc[0]['isTaken'])
self.assertFalse(pc[1]['isTaken'])
self.assertEqual(pc[0]['srcAddr'], pc[1]['srcAddr'])
self.assertEqual(pc[0]['dstAddr'], 91)
self.assertEqual(pc[1]['dstAddr'], 23)
示例2: test_4
# 需要导入模块: from triton import TritonContext [as 别名]
# 或者: from triton.TritonContext import convertRegisterToSymbolicVariable [as 别名]
def test_4(self):
ctx = TritonContext()
ctx.setArchitecture(ARCH.X86_64)
ctx.enableMode(MODE.ONLY_ON_SYMBOLIZED, True)
ctx.convertRegisterToSymbolicVariable(ctx.registers.rax)
inst = Instruction("\x48\x8b\x18") # mov rbx, qword ptr [rax]
self.assertTrue(ctx.processing(inst))
self.assertTrue(checkAstIntegrity(inst))
self.assertEqual(len(inst.getReadRegisters()), 1)
self.assertEqual(len(inst.getWrittenRegisters()), 0)
self.assertEqual(len(inst.getLoadAccess()), 0)
self.assertEqual(len(inst.getStoreAccess()), 0)
示例3: test_8
# 需要导入模块: from triton import TritonContext [as 别名]
# 或者: from triton.TritonContext import convertRegisterToSymbolicVariable [as 别名]
def test_8(self):
ctx = TritonContext()
ctx.setArchitecture(ARCH.X86_64)
ctx.enableMode(MODE.ONLY_ON_SYMBOLIZED, True)
ctx.setConcreteRegisterValue(ctx.registers.rax, 0x1337)
ctx.convertRegisterToSymbolicVariable(ctx.registers.rax)
ctx.convertMemoryToSymbolicVariable(MemoryAccess(0, CPUSIZE.QWORD))
inst = Instruction("\x48\x8b\x18") # mov rbx, qword ptr [rax]
self.assertTrue(ctx.processing(inst))
self.assertTrue(checkAstIntegrity(inst))
self.assertEqual(inst.getOperands()[1].getAddress(), 0x1337)
self.assertIsNotNone(inst.getOperands()[1].getLeaAst())
示例4: test5
# 需要导入模块: from triton import TritonContext [as 别名]
# 或者: from triton.TritonContext import convertRegisterToSymbolicVariable [as 别名]
def test5():
Triton = TritonContext()
Triton.setArchitecture(ARCH.X86)
astCtxt = Triton.getAstContext()
# rax is now symbolic
Triton.convertRegisterToSymbolicVariable(Triton.registers.eax)
# process instruction
Triton.processing(Instruction("\x83\xc0\x07")) # add eax, 0x7
# get rax ast
eaxAst = Triton.getAstFromId(Triton.getSymbolicRegisterId(Triton.registers.eax))
# constraint
c = eaxAst ^ 0x11223344 == 0xdeadbeaf
print 'Test 5:', Triton.getModel(c)[0]
return