本文整理汇总了Python中triton.TritonContext.buildSymbolicRegister方法的典型用法代码示例。如果您正苦于以下问题:Python TritonContext.buildSymbolicRegister方法的具体用法?Python TritonContext.buildSymbolicRegister怎么用?Python TritonContext.buildSymbolicRegister使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类triton.TritonContext
的用法示例。
在下文中一共展示了TritonContext.buildSymbolicRegister方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: TestSymbolicBuilding
# 需要导入模块: from triton import TritonContext [as 别名]
# 或者: from triton.TritonContext import buildSymbolicRegister [as 别名]
class TestSymbolicBuilding(unittest.TestCase):
"""Testing symbolic building."""
def setUp(self):
"""Define the arch."""
self.Triton = TritonContext()
self.Triton.setArchitecture(ARCH.X86_64)
self.astCtxt = self.Triton.getAstContext()
def test_build_immediate(self):
"""Check symbolic immediate has correct size and evaluation."""
node = self.Triton.buildSymbolicImmediate(Immediate(0x10, CPUSIZE.BYTE))
self.assertEqual(node.evaluate(), 0x10)
self.assertEqual(node.getBitvectorSize(), CPUSIZE.BYTE_BIT)
def test_build_register(self):
"""Check symbolic register has correct size and location."""
expr1 = self.Triton.newSymbolicExpression(self.astCtxt.bv(0x1122334455667788, CPUSIZE.QWORD_BIT))
self.Triton.assignSymbolicExpressionToRegister(expr1, self.Triton.registers.rax)
node = self.Triton.buildSymbolicRegister(self.Triton.registers.rax)
self.assertEqual(node.evaluate(), 0x1122334455667788)
self.assertEqual(node.getBitvectorSize(), CPUSIZE.QWORD_BIT)
node = self.Triton.buildSymbolicRegister(self.Triton.registers.eax)
self.assertEqual(node.evaluate(), 0x55667788)
self.assertEqual(node.getBitvectorSize(), CPUSIZE.DWORD_BIT)
node = self.Triton.buildSymbolicRegister(self.Triton.registers.ax)
self.assertEqual(node.evaluate(), 0x7788)
self.assertEqual(node.getBitvectorSize(), CPUSIZE.WORD_BIT)
node = self.Triton.buildSymbolicRegister(self.Triton.registers.ah)
self.assertEqual(node.evaluate(), 0x77)
self.assertEqual(node.getBitvectorSize(), CPUSIZE.BYTE_BIT)
node = self.Triton.buildSymbolicRegister(self.Triton.registers.al)
self.assertEqual(node.evaluate(), 0x88)
self.assertEqual(node.getBitvectorSize(), CPUSIZE.BYTE_BIT)
示例2: hex
# 需要导入模块: from triton import TritonContext [as 别名]
# 或者: from triton.TritonContext import buildSymbolicRegister [as 别名]
print 'Content :', hex(Triton.getConcreteMemoryValue(MemoryAccess(write+4, CPUSIZE.DWORD)))
print 'RAX value :', hex(Triton.getConcreteRegisterValue(Triton.registers.rax))
print 'RSI value :', hex(Triton.getConcreteRegisterValue(Triton.registers.rsi))
print 'RDI value :', hex(Triton.getConcreteRegisterValue(Triton.registers.rdi))
print
print 'Symbolic registers information'
print '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
for k, v in Triton.getSymbolicRegisters().items():
print Triton.getRegister(k), v
print
print 'Symbolic memory information'
print '~~~~~~~~~~~~~~~~~~~~~~~~~~~'
for k, v in Triton.getSymbolicMemory().items():
print hex(k), v
print
print 'Craft symbolic stuffs'
print '~~~~~~~~~~~~~~~~~~~~~'
ah = Triton.buildSymbolicRegister(Triton.registers.ah)
mem = Triton.buildSymbolicMemory(MemoryAccess(0x11248, 4))
print 'Memory at 0x11248 :', mem
print 'Compute memory :', hex(mem.evaluate())
print 'Register AH :', ah
print 'Compute AH :', hex(ah.evaluate())
sys.exit(0)
示例3: Instruction
# 需要导入模块: from triton import TritonContext [as 别名]
# 或者: from triton.TritonContext import buildSymbolicRegister [as 别名]
# point rdi on our buffer
Triton.setConcreteRegisterValue(Triton.registers.rdi, 0x1000)
# Setup stack
Triton.setConcreteRegisterValue(Triton.registers.rsp, 0x7fffffff)
Triton.setConcreteRegisterValue(Triton.registers.rbp, 0x7fffffff)
while pc in function:
# Build an instruction
inst = Instruction()
# Setup opcode
inst.setOpcode(function[pc])
# Setup Address
inst.setAddress(pc)
# Process everything
Triton.processing(inst)
# Display instruction
print inst
# Next instruction
pc = Triton.buildSymbolicRegister(Triton.registers.rip).evaluate()
sys.exit(0)