VirusTotal / yara-python

The Python interface for YARA
http://virustotal.github.io/yara/
Apache License 2.0
646 stars 179 forks source link

PyExc_StopIteration #187

Closed kmescharikov closed 2 years ago

kmescharikov commented 2 years ago

Hello everyone! I made a c ++ library in which I use python api. I run it from another language, pass a string with a python script into it and get back some result of this script. Everything works fine until I try to import yara in a python script. When I do this I get the following error:

/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so: undefined symbol: PyExc_StopIteration

I've tried a bunch of variations of using different versions of the yara library, versions of python itself, but nothing helps. ldd -r returns to me next one:

ldd -r /usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so
        linux-vdso.so.1 (0x00007ffd0437e000)
        libcrypto.so.1.1 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 (0x00007f0341408000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f03413e6000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f0341221000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f034121b000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f0341760000)
undefined symbol: PyExc_StopIteration   (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyBool_Type   (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyExc_TypeError       (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyExc_Exception       (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyExc_RuntimeWarning  (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyFloat_Type  (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: _Py_FalseStruct       (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: _Py_TrueStruct        (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: _Py_NoneStruct        (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyObject_SelfIter     (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyModule_AddObject    (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyDict_SetItemString  (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyBytes_AsStringAndSize       (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyType_Ready  (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyModule_AddStringConstant    (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyGILState_Release    (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyBool_FromLong       (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyErr_NoMemory        (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyObject_CallFunctionObjArgs  (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyObject_IsTrue       (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyObject_AsFileDescriptor     (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: _PyObject_New (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyUnicode_FromFormat  (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyDict_Next   (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyLong_AsLong (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyModule_AddIntConstant       (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyErr_Format  (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyFloat_FromDouble    (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyErr_Occurred        (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyDict_Copy   (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyErr_SetObject       (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyEval_RestoreThread  (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyEval_SaveThread     (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: Py_AtExit     (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyErr_Restore (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyObject_GenericGetAttr       (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyObject_RichCompare  (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyList_Size   (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyType_IsSubtype      (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyBytes_FromString    (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyGILState_Ensure     (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyErr_WarnEx  (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: log2  (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyErr_Fetch   (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyFloat_AsDouble      (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyObject_Hash (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyObject_GetAttrString        (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyErr_NewException    (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyList_Append (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyErr_SetNone (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyBytes_FromStringAndSize     (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyDict_GetItemString  (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyLong_AsLongLong     (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyLong_FromLong       (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: _Py_Dealloc   (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyObject_Free (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyModule_Create2      (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyTuple_GetItem       (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyObject_RichCompareBool      (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyErr_SetString       (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyDescr_NewGetSet     (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: _PyArg_ParseTupleAndKeywords_SizeT    (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyObject_HasAttrString        (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyBuffer_Release      (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyUnicode_DecodeUTF8  (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyList_New    (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyErr_SetFromErrno    (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyCallable_Check      (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyUnicode_AsUTF8      (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: _PyObject_CallMethod_SizeT    (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyDict_SetItem        (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: _Py_BuildValue_SizeT  (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
undefined symbol: PyDict_New    (/usr/local/lib/python3.9/dist-packages/yara.cpython-39-x86_64-linux-gnu.so)
plusvic commented 2 years ago

This looks like yara.cpython is not being linked properly to the Python's core libraries. How did you build the YARA package?

kmescharikov commented 2 years ago

This looks like yara.cpython is not being linked properly to the Python's core libraries. How did you build the YARA package?

With the setup script from readme