braktooth_esp32_bluetooth_classic_attacks icon indicating copy to clipboard operation
braktooth_esp32_bluetooth_classic_attacks copied to clipboard

Making the code work on aarch64 Ubuntu 24.04

Open XenoKovah opened this issue 6 months ago • 7 comments

I know that currently only Ubuntu 22.04 is supported, but that's 3+ years old and I'd like to use Braktooth on an Ubuntu 24.04 ARM (AARCH64) VM on a Mac, and so far I had to do the following:

Find and replace in ./requirements.sh: libtbb2 -> libtbbmalloc2 libasound2 -> libasound2t64 Then add libgflags-dev and libgoogle-glog-dev to the list.

However I'm still encountering the following issue:

$ sudo ./bin/bt_exploiter 
./bin/bt_exploiter: error while loading shared libraries: libglog.so.0: cannot open shared object file: No such file or directory

It seems that libgoogle-glog-dev doesn't provide libglog.so.0? I haven't been able to find the correct replacement for this yet. Any ideas? (Do you need to compile a binary specifically for U24.04 to deal with its changed libraries? Or can this requirement be removed? Google says here that the library is deprecated and will be archived in a month!)

XenoKovah avatar May 25 '25 17:05 XenoKovah

Additional datapoint: I started from scratch on an AARCH64 Linux VM on Mac with a fresh ESP-ETHERNET-KIT (mentioned in ticket #23), and it cannot be installed due to no aarch64 support in the prerequisite ESP32 xtensa32 toolchain as shown below (ttyUSB2 was my 2nd serial port on the board.)

user@BTVM:~/Downloads/release$ python3 firmware.py flash /dev/ttyUSB2
<snip>
Tool Manager: Installing platformio/toolchain-xtensa32 @ 2.80400.210211
UnknownPackageError: Could not find the package with 'platformio/toolchain-xtensa32 @ 2.80400.210211' requirements for your system 'linux_aarch64'

XenoKovah avatar Jun 24 '25 18:06 XenoKovah

I got the same issue with the first question.

shipcod3 avatar Jul 18 '25 19:07 shipcod3

The glog issue can be overcome with:

sudo cp /usr/lib/x86_64-linux-gnu/libglog.so /usr/lib/x86_64-linux-gnu/libglog.so.0

But there are other libraries, at least on Debian, which are outdated and replaced. Even if you install the newer versions and try the hacky approach of copying the libs to the expected names; you will run into issues.

I requested source code access and hope I get it in order to contribute.

mrheinen avatar Aug 07 '25 15:08 mrheinen

@Matheus-Garbelini , @mrheinen is in my current BT class, where we can't use Braktooth directly because of this issue. I think it'd be great if you gave him access since it sounds like he's volunteering to help fix it up.

XenoKovah avatar Aug 07 '25 16:08 XenoKovah

Hi @mrheinen and @XenoKovah. I've sent a gitlab invite to your emails. Thanks a lot for the interest, I wish these days I could get back on this :X

So there is some interest in the group to also eventually use miniconda environment to build and run this project in any OS without messing around with system packages. Here's the tentative environment which could at least execute braktooth binary by using LD_LIBRARY_PATH pointing to conda lib folder. Hopefully such thing can be updated into 5Ghoul's repository also.

Currently it does not build yet since wireshark require some patches to work with asciidoctor inside conda environemnt

name: sni5Gect
channels:
  - conda-forge
  - default
dependencies:
  # Dev Tools
  - sysroot_linux-64=2.34
  - binutils=2.39
  - zlib=1.3.1
  - autoconf=2.72
  - libtool=2.5.4
  - automake=1.17
  - pkg-config=0.29.2
  - cmake==3.24.3
  - ninja==1.10.1
  - gcc=10.4.0
  - gxx=10.4.0
  - libgcc-devel_linux-64=10.4.0
  - clang=18.1.8
  - clangxx=18.1.8
  - lld=18.1.8
  - lldb=18.1.8
  - libcxx=18.1.8
  # SDRs Libraries
  - uhd=4.8.0.0
  - libbladerf=2024.05
  - soapysdr=0.8.1
  # Core Libraries
  - glib=2.84.2
  - libglib=2.84.2
  - libdwarf=0.12.0
  - libdwarf-dev=0.12.0
  - pcsclite=2.0.0
  - libboost=1.86
  - libboost-devel=1.86
  - libboost-headers=1.86
  - libboost-python=1.86
  - libboost-python-devel=1.86
  - mbedtls=3.6.3.1
  - libconfig=1.7.3
  - fftw=3.3.10
  - fftw-static=3.3.10
  - liquid-dsp=1.6.0
  - zeromq=4.3.5
  - czmq=4.2.1
  # WDissector Dev Libraries
  - python=3.11.13
  - sshpass
  - swig=3.0.12
  - freetype=2.13.3
  - tbb=2022.1.0
  - tbb-devel=2022.1.0
  - pagmo-devel=2.19.1
  - alsa-lib
  - folly=2024.12.02.00
  - jack
  - gnutls
  - gflags
  - glog=0.7.1
  - libevent
  - libgcrypt
  - libgcrypt-lib
  - bison
  - flex
  - asciidoctor=2.0.22
  - pcre2
  - lz4
  - libssh
  - libsystemd
  - libnl
  - c-ares=1.34.5
  - qt-main=5.15.15
  - mesalib=25.0.5
  - glfw=3.4
  - libgl-devel=1.7.0
  - libgl=1.7.0
  - libgles-devel
  - xorg-libxcursor
  - xorg-libx11
  - xorg-inputproto
  - xorg-libxi
  - xorg-libxinerama
  - xorg-libxcb
  - xorg-libxscrnsaver
  - nss=3.112
  - libcap=2.71
  - libxslt
  - doxygen
  - lua=5.3.5
  - ruby=3.1.2
  - libpcap=1.10.4
  - libpcapplusplus=22.11
  - graphviz=13.0.1
  - libxcrypt=4.4.36
wget https://github.com/conda-forge/miniforge/releases/download/25.3.0-3/Miniforge3-25.3.0-3-Linux-x86_64.sh
chmod +x Miniforge3-25.3.0-3-Linux-x86_64.sh
./Miniforge3-25.3.0-3-Linux-x86_64.sh -b -p ./venv
source venv/bin/activate
conda env create -f environment.yml
conda activate sni5Gect

# Build wdissector here

Matheus-Garbelini avatar Aug 08 '25 07:08 Matheus-Garbelini

Awesome. I'll have a look starting next week!

mrheinen avatar Aug 09 '25 16:08 mrheinen

Is there any update on this?

@Matheus-Garbelini Could you also sent me an invite to the gitlab?

fklement avatar Nov 12 '25 19:11 fklement