Esempio n. 1
0
void TritonToZ3Ast::operator()(triton::ast::BvNode& e) {
    Z3Result value        = this->eval(*e.getChilds()[0]);
    Z3Result size         = this->eval(*e.getChilds()[1]);
    triton::uint32 bvsize = static_cast<triton::uint32>(size.getUintValue());

    z3::expr newexpr = this->result.getContext().bv_val(value.getStringValue().c_str(), bvsize);

    this->result.setExpr(newexpr);
}
Esempio n. 2
0
uint512 AnalysisProcessor::evaluateAST(smt2lib::smtAstAbstractNode *node) {
  Z3ast z3ast{};
  Z3Result result = z3ast.eval(*node);
  uint512 nbResult{result.getStringValue()};
  return nbResult;
}