Matheus-Garbelini / braktooth_esp32_bluetooth_classic_attacks

A Series of Baseband & LMP Exploits against Bluetooth Classic Controllers
https://braktooth.com
448 stars 85 forks source link

[Question} Shared Library Error #21

Open Soph-beep opened 1 year ago

Soph-beep commented 1 year ago

Hello, I went through the installation instructions by flashing the firmware on the ESP-WROVER-KIT and installing all the system requirements from the wdissector package. Afterwards I tried to test it out by running the BT fuzzer; however, I received the following error.

bin/bt_fuzzer: error while loading shared libraries: libgvc.so.6: cannot open shared object file: No such file or directory

Do you have any suggestions to fix this?

Matheus-Garbelini commented 1 year ago

Hi @Soph-beep try installing this requirement manually:

sudo apt install libgvc6 --reinstall

If it still does not work, let us know what's the output of the following command:

ldd bin/bt_fuzzer

For some reason this library is not found by the binary. Are you running Ubuntu 18.04 or a newer version of Ubuntu?

jsmif commented 1 year ago

I had the same error on Ubuntu 22.04 and sudo apt install libgvc6 --reinstall solved it. However, now I get

sudo bin/bt_fuzzer --help
bin/bt_fuzzer: error while loading shared libraries: libtbb.so.2: cannot open shared object file: No such file or directory

Trying the same approach of sudo apt install libtbb-dev --reinstall yielded a seeming reinstall of the package, however the libtbb.so.2 still couldn't be found. The following are the versions of files that seem to be installed

ls -la /lib/x86_64-linux-gnu/libtbb*
lrwxrwxrwx 1 root root     23 Mar  8  2022 /lib/x86_64-linux-gnu/libtbbmalloc_proxy.so -> libtbbmalloc_proxy.so.2
lrwxrwxrwx 1 root root     25 Mar  8  2022 /lib/x86_64-linux-gnu/libtbbmalloc_proxy.so.2 -> libtbbmalloc_proxy.so.2.5
-rw-r--r-- 1 root root  14584 Mar  8  2022 /lib/x86_64-linux-gnu/libtbbmalloc_proxy.so.2.5
lrwxrwxrwx 1 root root     17 Mar  8  2022 /lib/x86_64-linux-gnu/libtbbmalloc.so -> libtbbmalloc.so.2
lrwxrwxrwx 1 root root     19 Mar  8  2022 /lib/x86_64-linux-gnu/libtbbmalloc.so.2 -> libtbbmalloc.so.2.5
-rw-r--r-- 1 root root 124496 Mar  8  2022 /lib/x86_64-linux-gnu/libtbbmalloc.so.2.5
lrwxrwxrwx 1 root root     12 Mar  8  2022 /lib/x86_64-linux-gnu/libtbb.so -> libtbb.so.12
lrwxrwxrwx 1 root root     14 Mar  8  2022 /lib/x86_64-linux-gnu/libtbb.so.12 -> libtbb.so.12.5
-rw-r--r-- 1 root root 231768 Mar  8  2022 /lib/x86_64-linux-gnu/libtbb.so.12.5

The output of ldd bin/bt_fuzzer is below. It seems to indicate libtbb is the only remaining dependency that's unfulfilled on Ubuntu 22.04.

    linux-vdso.so.1 (0x00007ffd2bdb1000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f4c8e90a000)
    libwdissector.so => /home/user/Downloads/braktooth_esp32_bluetooth_classic_attacks/wdissector/bin/libwdissector.so (0x00007f4c8e600000)
    libpagmo.so.6 => /home/user/Downloads/braktooth_esp32_bluetooth_classic_attacks/wdissector/bin/libpagmo.so.6 (0x00007f4c8d200000)
    libgvc.so.6 => /lib/x86_64-linux-gnu/libgvc.so.6 (0x00007f4c8e86c000)
    libcgraph.so.6 => /lib/x86_64-linux-gnu/libcgraph.so.6 (0x00007f4c8e853000)
    libzmq.so.5 => /home/user/Downloads/braktooth_esp32_bluetooth_classic_attacks/wdissector/bin/libzmq.so.5 (0x00007f4c8ce00000)
    libtinyprocess.so => /home/user/Downloads/braktooth_esp32_bluetooth_classic_attacks/wdissector/bin/libtinyprocess.so (0x00007f4c8ca00000)
    libPcap++.so => /home/user/Downloads/braktooth_esp32_bluetooth_classic_attacks/wdissector/bin/libPcap++.so (0x00007f4c8c600000)
    libcefdll_wrapper.so => /home/user/Downloads/braktooth_esp32_bluetooth_classic_attacks/wdissector/bin/libcefdll_wrapper.so (0x00007f4c8c200000)
    libserial.so => /home/user/Downloads/braktooth_esp32_bluetooth_classic_attacks/wdissector/bin/libserial.so (0x00007f4c8be00000)
    librtaudio.so.6 => /home/user/Downloads/braktooth_esp32_bluetooth_classic_attacks/wdissector/bin/librtaudio.so.6 (0x00007f4c8ba00000)
    libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f4c8ccc6000)
    libwireshark.so.13 => /home/user/Downloads/braktooth_esp32_bluetooth_classic_attacks/wdissector/bin/libwireshark.so.13 (0x00007f4c85000000)
    libwiretap.so.10 => /home/user/Downloads/braktooth_esp32_bluetooth_classic_attacks/wdissector/bin/libwiretap.so.10 (0x00007f4c84c00000)
    libwsutil.so.11 => /home/user/Downloads/braktooth_esp32_bluetooth_classic_attacks/wdissector/bin/libwsutil.so.11 (0x00007f4c84800000)
    libgmodule-2.0.so.0 => /lib/x86_64-linux-gnu/libgmodule-2.0.so.0 (0x00007f4c8e848000)
    libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007f4c8c8c2000)
    libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007f4c8e5da000)
    libgnutls.so.30 => /lib/x86_64-linux-gnu/libgnutls.so.30 (0x00007f4c84615000)
    libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f4c8e82c000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f4c8d119000)
    libboost_serialization.so.1.65.1 => /home/user/Downloads/braktooth_esp32_bluetooth_classic_attacks/wdissector/bin/libboost_serialization.so.1.65.1 (0x00007f4c84200000)
    libGL.so.1 => /lib/x86_64-linux-gnu/libGL.so.1 (0x00007f4c8cc3f000)
    libglfw.so.3 => /home/user/Downloads/braktooth_esp32_bluetooth_classic_attacks/wdissector/bin/libglfw.so.3 (0x00007f4c83e00000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f4c8e5d3000)
    libfreetype.so.6 => /lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f4c8c138000)
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f4c8e5ce000)
    libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007f4c8e5c7000)
    libPacket++.so => /home/user/Downloads/braktooth_esp32_bluetooth_classic_attacks/wdissector/bin/libPacket++.so (0x00007f4c83a00000)
    libCommon++.so => /home/user/Downloads/braktooth_esp32_bluetooth_classic_attacks/wdissector/bin/libCommon++.so (0x00007f4c83600000)
    libpcap.so.1 => /home/user/Downloads/braktooth_esp32_bluetooth_classic_attacks/wdissector/bin/libpcap.so.1 (0x00007f4c83200000)
    libnl-3.so.200 => /lib/x86_64-linux-gnu/libnl-3.so.200 (0x00007f4c8d0f6000)
    libpython3.8.so.1.0 => modules/python/install/lib/libpython3.8.so.1.0 (0x00007f4c81e13000)
    libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007f4c8bcc0000)
    libcef.so => /home/user/Downloads/braktooth_esp32_bluetooth_classic_attacks/wdissector/bin/libcef.so (0x00007f4c791b9000)
    libasound.so.2 => /lib/x86_64-linux-gnu/libasound.so.2 (0x00007f4c8c035000)
    libpulse.so.0 => /lib/x86_64-linux-gnu/libpulse.so.0 (0x00007f4c8c86d000)
    libpulse-simple.so.0 => /lib/x86_64-linux-gnu/libpulse-simple.so.0 (0x00007f4c8e5be000)
    libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f4c78f8f000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f4c8cc1f000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f4c78d67000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f4c8e927000)
    libtbb.so.2 => not found
    libltdl.so.7 => /lib/x86_64-linux-gnu/libltdl.so.7 (0x00007f4c8d0eb000)
    libcdt.so.5 => /lib/x86_64-linux-gnu/libcdt.so.5 (0x00007f4c8d0e2000)
    libpathplan.so.4 => /lib/x86_64-linux-gnu/libpathplan.so.4 (0x00007f4c8cc15000)
    libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f4c8c83c000)
    libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f4c8bc4a000)
    libbrotlidec.so.1 => /lib/x86_64-linux-gnu/libbrotlidec.so.1 (0x00007f4c8c5f2000)
    libcares.so.2 => /lib/x86_64-linux-gnu/libcares.so.2 (0x00007f4c8c5db000)
    libkrb5.so.3 => /lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007f4c84f35000)
    libk5crypto.so.3 => /lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007f4c8c5ac000)
    liblz4.so.1 => /lib/x86_64-linux-gnu/liblz4.so.1 (0x00007f4c8bc2a000)
    libnghttp2.so.14 => /lib/x86_64-linux-gnu/libnghttp2.so.14 (0x00007f4c8b9d6000)
    libsmi.so.2 => /lib/x86_64-linux-gnu/libsmi.so.2 (0x00007f4c84ba4000)
    libsnappy.so.1 => /lib/x86_64-linux-gnu/libsnappy.so.1 (0x00007f4c8cc0b000)
    libxml2.so.2 => /lib/x86_64-linux-gnu/libxml2.so.2 (0x00007f4c8381e000)
    libp11-kit.so.0 => /lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007f4c84a69000)
    libidn2.so.0 => /lib/x86_64-linux-gnu/libidn2.so.0 (0x00007f4c8b9b5000)
    libunistring.so.2 => /lib/x86_64-linux-gnu/libunistring.so.2 (0x00007f4c8446b000)
    libtasn1.so.6 => /lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007f4c8c01d000)
    libnettle.so.8 => /lib/x86_64-linux-gnu/libnettle.so.8 (0x00007f4c84eef000)
    libhogweed.so.6 => /lib/x86_64-linux-gnu/libhogweed.so.6 (0x00007f4c841b8000)
    libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10 (0x00007f4c84136000)
    libGLdispatch.so.0 => /lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007f4c8407e000)
    libGLX.so.0 => /lib/x86_64-linux-gnu/libGLX.so.0 (0x00007f4c84a35000)
    libpng16.so.16 => /lib/x86_64-linux-gnu/libpng16.so.16 (0x00007f4c83dc5000)
    libnsl.so.1 => /lib/x86_64-linux-gnu/libnsl.so.1 (0x00007f4c8444f000)
    libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007f4c83d8b000)
    libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f4c83d61000)
    libgobject-2.0.so.0 => /lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007f4c83d01000)
    libnss3.so => /lib/x86_64-linux-gnu/libnss3.so (0x00007f4c834d3000)
    libnssutil3.so => /lib/x86_64-linux-gnu/libnssutil3.so (0x00007f4c83ccf000)
    libsmime3.so => /lib/x86_64-linux-gnu/libsmime3.so (0x00007f4c834a9000)
    libnspr4.so => /lib/x86_64-linux-gnu/libnspr4.so (0x00007f4c83469000)
    libfontconfig.so.1 => /lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007f4c78d1d000)
    libgio-2.0.so.0 => /lib/x86_64-linux-gnu/libgio-2.0.so.0 (0x00007f4c78b44000)
    libXext.so.6 => /lib/x86_64-linux-gnu/libXext.so.6 (0x00007f4c84069000)
    libXcomposite.so.1 => /lib/x86_64-linux-gnu/libXcomposite.so.1 (0x00007f4c8c5a7000)
    libXrender.so.1 => /lib/x86_64-linux-gnu/libXrender.so.1 (0x00007f4c8bc1d000)
    libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007f4c78af6000)
    libX11-xcb.so.1 => /lib/x86_64-linux-gnu/libX11-xcb.so.1 (0x00007f4c8c5a2000)
    libXcursor.so.1 => /lib/x86_64-linux-gnu/libXcursor.so.1 (0x00007f4c8b9a9000)
    libXdamage.so.1 => /lib/x86_64-linux-gnu/libXdamage.so.1 (0x00007f4c8c59d000)
    libXfixes.so.3 => /lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007f4c84a2d000)
    libXi.so.6 => /lib/x86_64-linux-gnu/libXi.so.6 (0x00007f4c78ae2000)
    libXtst.so.6 => /lib/x86_64-linux-gnu/libXtst.so.6 (0x00007f4c84a25000)
    libXss.so.1 => /lib/x86_64-linux-gnu/libXss.so.1 (0x00007f4c8c018000)
    libXrandr.so.2 => /lib/x86_64-linux-gnu/libXrandr.so.2 (0x00007f4c84442000)
    libatk-1.0.so.0 => /lib/x86_64-linux-gnu/libatk-1.0.so.0 (0x00007f4c78ab8000)
    libatk-bridge-2.0.so.0 => /lib/x86_64-linux-gnu/libatk-bridge-2.0.so.0 (0x00007f4c78a80000)
    libatspi.so.0 => /lib/x86_64-linux-gnu/libatspi.so.0 (0x00007f4c78a46000)
    libpulsecommon-15.99.so => /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-15.99.so (0x00007f4c789c1000)
    libbrotlicommon.so.1 => /lib/x86_64-linux-gnu/libbrotlicommon.so.1 (0x00007f4c7899e000)
    libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007f4c84ee9000)
    libkrb5support.so.0 => /lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007f4c83810000)
    libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007f4c83cc8000)
    libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f4c7898a000)
    libicuuc.so.70 => /lib/x86_64-linux-gnu/libicuuc.so.70 (0x00007f4c7878f000)
    liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f4c78764000)
    libffi.so.8 => /lib/x86_64-linux-gnu/libffi.so.8 (0x00007f4c8345c000)
    libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007f4c84063000)
    libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f4c7875c000)
    libplc4.so => /lib/x86_64-linux-gnu/libplc4.so (0x00007f4c78755000)
    libplds4.so => /lib/x86_64-linux-gnu/libplds4.so (0x00007f4c8380b000)
    libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f4c7874c000)
    libmount.so.1 => /lib/x86_64-linux-gnu/libmount.so.1 (0x00007f4c78708000)
    libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f4c786dc000)
    libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0 (0x00007f4c78615000)
    libsndfile.so.1 => /lib/x86_64-linux-gnu/libsndfile.so.1 (0x00007f4c78596000)
    libasyncns.so.0 => /lib/x86_64-linux-gnu/libasyncns.so.0 (0x00007f4c7858e000)
    libapparmor.so.1 => /lib/x86_64-linux-gnu/libapparmor.so.1 (0x00007f4c78579000)
    libicudata.so.70 => /lib/x86_64-linux-gnu/libicudata.so.70 (0x00007f4c7695b000)
    libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007f4c76943000)
    libblkid.so.1 => /lib/x86_64-linux-gnu/libblkid.so.1 (0x00007f4c7690c000)
    libpcre2-8.so.0 => /lib/x86_64-linux-gnu/libpcre2-8.so.0 (0x00007f4c76875000)
    libzstd.so.1 => /lib/x86_64-linux-gnu/libzstd.so.1 (0x00007f4c767a6000)
    libcap.so.2 => /lib/x86_64-linux-gnu/libcap.so.2 (0x00007f4c7679b000)
    libFLAC.so.8 => /lib/x86_64-linux-gnu/libFLAC.so.8 (0x00007f4c7675f000)
    libvorbis.so.0 => /lib/x86_64-linux-gnu/libvorbis.so.0 (0x00007f4c76732000)
    libvorbisenc.so.2 => /lib/x86_64-linux-gnu/libvorbisenc.so.2 (0x00007f4c76687000)
    libopus.so.0 => /lib/x86_64-linux-gnu/libopus.so.0 (0x00007f4c76629000)
    libogg.so.0 => /lib/x86_64-linux-gnu/libogg.so.0 (0x00007f4c7661e000)
    libmd.so.0 => /lib/x86_64-linux-gnu/libmd.so.0 (0x00007f4c76611000)

...Buuut... I then decided to make a symbolic link just to see what would happen:

sudo ln -s /lib/x86_64-linux-gnu/libtbb.so.12.5 /lib/x86_64-linux-gnu/libtbb.so.2

and I got a new error:

bin/bt_fuzzer: symbol lookup error: /home/user/Downloads/braktooth_esp32_bluetooth_classic_attacks/wdissector/bin/libpagmo.so.6: undefined symbol: _ZTIN3tbb4taskE

So maybe we need a version compiled for 22.04?