示例#1
0
 void initModeNamespace(PyObject* modeDict) {
   PyDict_SetItemString(modeDict, "ALIGNED_MEMORY",         PyLong_FromUint32(triton::modes::ALIGNED_MEMORY));
   PyDict_SetItemString(modeDict, "AST_DICTIONARIES",       PyLong_FromUint32(triton::modes::AST_DICTIONARIES));
   PyDict_SetItemString(modeDict, "ONLY_ON_SYMBOLIZED",     PyLong_FromUint32(triton::modes::ONLY_ON_SYMBOLIZED));
   PyDict_SetItemString(modeDict, "ONLY_ON_TAINTED",        PyLong_FromUint32(triton::modes::ONLY_ON_TAINTED));
   PyDict_SetItemString(modeDict, "PC_TRACKING_SYMBOLIC",   PyLong_FromUint32(triton::modes::PC_TRACKING_SYMBOLIC));
 }
示例#2
0
 static PyObject* PeExportEntry_getOrdinal(PyObject* self, PyObject* noarg) {
   try {
     return PyLong_FromUint32(PyPeExportEntry_AsPeExportEntry(self)->ordinal);
   }
   catch (const triton::exceptions::Exception& e) {
     return PyErr_Format(PyExc_TypeError, "%s", e.what());
   }
 }
 static PyObject* SymbolicVariable_getBitSize(PyObject* self, PyObject* noarg) {
   try {
     return PyLong_FromUint32(PySymbolicVariable_AsSymbolicVariable(self)->getSize());
   }
   catch (const std::exception& e) {
     return PyErr_Format(PyExc_TypeError, "%s", e.what());
   }
 }
示例#4
0
 static PyObject* BitsVector_getLow(PyObject* self, PyObject* noarg) {
   try {
     return PyLong_FromUint32(PyBitsVector_AsBitsVector(self)->getLow());
   }
   catch (const triton::exceptions::Exception& e) {
     return PyErr_Format(PyExc_TypeError, "%s", e.what());
   }
 }
示例#5
0
 static PyObject* ElfProgramHeader_getType(PyObject* self, PyObject* noarg) {
   try {
     return PyLong_FromUint32(PyElfProgramHeader_AsElfProgramHeader(self)->getType());
   }
   catch (const std::exception& e) {
     return PyErr_Format(PyExc_TypeError, "%s", e.what());
   }
 }
示例#6
0
 static PyObject* ElfHeader_getVersion(PyObject* self, PyObject* noarg) {
   try {
     return PyLong_FromUint32(PyElfHeader_AsElfHeader(self)->getVersion());
   }
   catch (const triton::exceptions::Exception& e) {
     return PyErr_Format(PyExc_TypeError, "%s", e.what());
   }
 }
示例#7
0
 static PyObject* Bitvector_getLow(PyObject* self, PyObject* noarg) {
   try {
     return PyLong_FromUint32(PyBitvector_AsLow(self));
   }
   catch (const std::exception& e) {
     return PyErr_Format(PyExc_TypeError, "%s", e.what());
   }
 }
 static PyObject* SymbolicExpression_getKind(PyObject* self, PyObject* noarg) {
   try {
     return PyLong_FromUint32(PySymbolicExpression_AsSymbolicExpression(self)->getKind());
   }
   catch (const std::exception& e) {
     return PyErr_Format(PyExc_TypeError, "%s", e.what());
   }
 }
示例#9
0
 static PyObject* MemoryAccess_getType(PyObject* self, PyObject* noarg) {
   try {
     return PyLong_FromUint32(PyMemoryAccess_AsMemoryAccess(self)->getType());
   }
   catch (const triton::exceptions::Exception& e) {
     return PyErr_Format(PyExc_TypeError, "%s", e.what());
   }
 }
示例#10
0
 static PyObject* ElfSymbolTable_getShndx(PyObject* self, PyObject* noarg) {
   try {
     return PyLong_FromUint32(PyElfSymbolTable_AsElfSymbolTable(self)->getShndx());
   }
   catch (const triton::exceptions::Exception& e) {
     return PyErr_Format(PyExc_TypeError, "%s", e.what());
   }
 }
示例#11
0
 static PyObject* Immediate_getType(PyObject* self, PyObject* noarg) {
   try {
     return PyLong_FromUint32(PyImmediate_AsImmediate(self)->getType());
   }
   catch (const triton::exceptions::Exception& e) {
     return PyErr_Format(PyExc_TypeError, "%s", e.what());
   }
 }
示例#12
0
 static PyObject* Bitvector_getVectorSize(PyObject* self, PyObject* noarg) {
   try {
     triton::uint32 vectorSize = ((PyBitvector_AsHigh(self) - PyBitvector_AsLow(self)) + 1);
     return PyLong_FromUint32(vectorSize);
   }
   catch (const std::exception& e) {
     return PyErr_Format(PyExc_TypeError, "%s", e.what());
   }
 }
示例#13
0
 void initSymExprNamespace(PyObject* symExprDict) {
   xPyDict_SetItemString(symExprDict, "UNDEF",  PyLong_FromUint32(triton::engines::symbolic::UNDEF));
   xPyDict_SetItemString(symExprDict, "MEM",    PyLong_FromUint32(triton::engines::symbolic::MEM));
   xPyDict_SetItemString(symExprDict, "REG",    PyLong_FromUint32(triton::engines::symbolic::REG));
 }
示例#14
0
 void initArchNamespace(PyObject* archDict) {
   xPyDict_SetItemString(archDict, "X86",     PyLong_FromUint32(triton::arch::ARCH_X86));
   xPyDict_SetItemString(archDict, "X86_64",  PyLong_FromUint32(triton::arch::ARCH_X86_64));
 }
      void initSyscallNamespace(void) {
        if (!triton::bindings::python::initialized)
          return;

        PyDict_Clear(triton::bindings::python::syscallsDict);

        switch (api.getArchitecture()) {
          case triton::arch::ARCH_X86_64:
            for (triton::uint32 i = 0; i < triton::os::unix::NB_SYSCALL64; ++i)
              PyDict_SetItemString(triton::bindings::python::syscallsDict, triton::os::unix::syscallmap64[i], PyLong_FromUint32(i));
            break;

          #if defined(__unix__)
          case triton::arch::ARCH_X86:
            for (triton::uint32 i = 0; i < triton::os::unix::NB_SYSCALL32; ++i)
              PyDict_SetItemString(triton::bindings::python::syscallsDict, triton::os::unix::syscallmap32[i], PyLong_FromUint32(i));
            break;
          #endif
        } /* switch */
      }
示例#16
0
 void initSymExprNamespace(PyObject* symExprDict) {
   PyDict_SetItemString(symExprDict, "UNSET",  PyLong_FromUsize(static_cast<triton::usize>(-1)));
   PyDict_SetItemString(symExprDict, "UNDEF",  PyLong_FromUint32(triton::engines::symbolic::UNDEF));
   PyDict_SetItemString(symExprDict, "MEM",    PyLong_FromUint32(triton::engines::symbolic::MEM));
   PyDict_SetItemString(symExprDict, "REG",    PyLong_FromUint32(triton::engines::symbolic::REG));
 }
示例#17
0
 void initOperandNamespace(PyObject* operandDict) {
   PyDict_SetItemString(operandDict, "INVALID",  PyLong_FromUint32(triton::arch::OP_INVALID));
   PyDict_SetItemString(operandDict, "IMM",      PyLong_FromUint32(triton::arch::OP_IMM));
   PyDict_SetItemString(operandDict, "MEM",      PyLong_FromUint32(triton::arch::OP_MEM));
   PyDict_SetItemString(operandDict, "REG",      PyLong_FromUint32(triton::arch::OP_REG));
 }
 void initAstRepresentationNamespace(PyObject* astRepresentationDict) {
   PyDict_SetItemString(astRepresentationDict, "SMT",    PyLong_FromUint32(triton::ast::representations::SMT_REPRESENTATION));
   PyDict_SetItemString(astRepresentationDict, "PYTHON", PyLong_FromUint32(triton::ast::representations::PYTHON_REPRESENTATION));
 }
示例#19
0
void initCpuSizeNamespace(void) {
    if (!triton::bindings::python::initialized)
        return;

    PyDict_Clear(triton::bindings::python::cpuSizeDict);

    PyDict_SetItemString(triton::bindings::python::cpuSizeDict, "BYTE",        PyLong_FromUint32(BYTE_SIZE));
    PyDict_SetItemString(triton::bindings::python::cpuSizeDict, "BYTE_BIT",    PyLong_FromUint32(BYTE_SIZE_BIT));
    PyDict_SetItemString(triton::bindings::python::cpuSizeDict, "WORD",        PyLong_FromUint32(WORD_SIZE));
    PyDict_SetItemString(triton::bindings::python::cpuSizeDict, "WORD_BIT",    PyLong_FromUint32(WORD_SIZE_BIT));
    PyDict_SetItemString(triton::bindings::python::cpuSizeDict, "DWORD",       PyLong_FromUint32(DWORD_SIZE));
    PyDict_SetItemString(triton::bindings::python::cpuSizeDict, "DWORD_BIT",   PyLong_FromUint32(DWORD_SIZE_BIT));
    PyDict_SetItemString(triton::bindings::python::cpuSizeDict, "QWORD",       PyLong_FromUint32(QWORD_SIZE));
    PyDict_SetItemString(triton::bindings::python::cpuSizeDict, "QWORD_BIT",   PyLong_FromUint32(QWORD_SIZE_BIT));
    PyDict_SetItemString(triton::bindings::python::cpuSizeDict, "DQWORD",      PyLong_FromUint32(DQWORD_SIZE));
    PyDict_SetItemString(triton::bindings::python::cpuSizeDict, "DQWORD_BIT",  PyLong_FromUint32(DQWORD_SIZE_BIT));
    PyDict_SetItemString(triton::bindings::python::cpuSizeDict, "QQWORD",      PyLong_FromUint32(QQWORD_SIZE));
    PyDict_SetItemString(triton::bindings::python::cpuSizeDict, "QQWORD_BIT",  PyLong_FromUint32(QQWORD_SIZE_BIT));
    PyDict_SetItemString(triton::bindings::python::cpuSizeDict, "DQQWORD",     PyLong_FromUint32(DQQWORD_SIZE));
    PyDict_SetItemString(triton::bindings::python::cpuSizeDict, "DQQWORD_BIT", PyLong_FromUint32(DQQWORD_SIZE_BIT));
    PyDict_SetItemString(triton::bindings::python::cpuSizeDict, "REG",         PyLong_FromUint32(triton::api.cpuRegisterSize()));
    PyDict_SetItemString(triton::bindings::python::cpuSizeDict, "REG_BIT",     PyLong_FromUint32(triton::api.cpuRegisterBitSize()));
}