SymbolicVariable *AnalysisProcessor::convertRegToSymVar(uint64 regId, uint64 symVarSize, std::string symVarComment) { uint128 mask = 1; mask = (mask << symVarSize) - 1; uint128 regValue = this->getRegisterValue(regId) & mask; SymbolicVariable *symVar = this->symEngine.convertRegToSymVar(regId, symVarSize, symVarComment); symVar->setSymVarConcreteValue(regValue); return symVar; }
SymbolicVariable *AnalysisProcessor::convertMemToSymVar(MemoryOperand &mem, uint64 symVarSize, std::string symVarComment) { uint64 address = mem.getAddress(); SymbolicVariable *symVar = this->symEngine.convertMemToSymVar(address, symVarSize, symVarComment); symVar->setSymVarConcreteValue(this->getMemValue(address, symVarSize)); return symVar; }
SymbolicVariable *AnalysisProcessor::convertMemToSymVar(uint64 memAddr, uint64 symVarSize, std::string symVarComment) { SymbolicVariable *symVar = this->symEngine.convertMemToSymVar(memAddr, symVarSize, symVarComment); symVar->setSymVarConcreteValue(this->getMemValue(memAddr,symVarSize)); return symVar; }