当前位置: 首页>>代码示例>>Python>>正文


Python TritonContext.setConcreteSymbolicVariableValue方法代码示例

本文整理汇总了Python中triton.TritonContext.setConcreteSymbolicVariableValue方法的典型用法代码示例。如果您正苦于以下问题:Python TritonContext.setConcreteSymbolicVariableValue方法的具体用法?Python TritonContext.setConcreteSymbolicVariableValue怎么用?Python TritonContext.setConcreteSymbolicVariableValue使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在triton.TritonContext的用法示例。


在下文中一共展示了TritonContext.setConcreteSymbolicVariableValue方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: TestAstConversion

# 需要导入模块: from triton import TritonContext [as 别名]
# 或者: from triton.TritonContext import setConcreteSymbolicVariableValue [as 别名]
class TestAstConversion(unittest.TestCase):

    """Testing the AST conversion Triton <-> z3."""

    def setUp(self):
        """Define the arch."""
        self.Triton = TritonContext()
        self.Triton.setArchitecture(ARCH.X86_64)

        self.astCtxt = self.Triton.getAstContext()

        self.sv1   = self.Triton.newSymbolicVariable(8)
        self.sv2   = self.Triton.newSymbolicVariable(8)

        self.v1   = self.astCtxt.variable(self.sv1)
        self.v2   = self.astCtxt.variable(self.sv2)

        self.Triton.setConcreteSymbolicVariableValue(self.sv1, 0xaa)
        self.Triton.setConcreteSymbolicVariableValue(self.sv2, 0x55)

        self.node = [
            # Overloaded operators
            (self.v1 & self.v2),
            (self.v1 + self.v2),
            (self.v1 - self.v2),
            (self.v1 ^ self.v2),
            (self.v1 | self.v2),
            (self.v1 * self.v2),
            (self.v1 << self.v2),
            (self.v1 >> self.v2),
            (~self.v1),
            (-self.v1),
            (self.v1 == self.v2),
            (self.v1 != self.v2),
            (self.v1 <= self.v2),
            (self.v1 >= self.v2),
            (self.v1 < self.v2),
            (self.v1 > self.v2),
            # AST API
            self.astCtxt.bvashr(self.v1, self.v2),
            self.astCtxt.bvnand(self.v1, self.v2),
            self.astCtxt.bvnor(self.v1, self.v2),
            self.astCtxt.bvrol(3, self.v1),
            self.astCtxt.bvror(2, self.v2),
            self.astCtxt.distinct(self.v1, self.v2),
            self.astCtxt.equal(self.v1, self.v2),
            self.astCtxt.sx(8, self.v1),
            self.astCtxt.zx(8, self.v1),
            # recent z3 version
            #bvsdiv(self.v1, self.v2),
            #bvsmod(self.v1, self.v2),
            #bvsrem(self.v1, self.v2),
            #bvudiv(self.v1, self.v2),
            #bvurem(self.v1, self.v2),
        ]

    def test_conversion(self):
        # No simplification available
        # This only going to test Triton <-> z3 AST conversions.
        for n in self.node:
            self.assertEqual(n.evaluate(), self.Triton.simplify(n, True).evaluate())
开发者ID:AmesianX,项目名称:Triton,代码行数:63,代码来源:test_ast_conversion.py


注:本文中的triton.TritonContext.setConcreteSymbolicVariableValue方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。