-
Notifications
You must be signed in to change notification settings - Fork 69
Open
Description
C++ executables usually require libstdc++ shared object file.
Having version mismatch btw libc and libstdc++ will usually cause an error on startup:
$ LD_PRELOAD=./libc.so.6 ./ld-2.35.so ./exe
./libc.so.6: version `GLIBC_2.36' not found (required by /lib/x86_64-linux-gnu/libstdc++.so.6)
While libc usually is provided by chal's author, the libstdc++ usually is not. Using local in-system libstdc++ (in /usr/lib...) often causes version mismatch, which produces the error above. The task is to find the corresponding libstdc++ for given libc and download it.
Right now pwninit does not searches for libstdc++ when dealing with c++ chals. Gonna add this feature
- Add
-cppflag to mark chal as C++ and not C. Sopwninit -cppshould start C++ initialization - When
-cppdownload the corresponding libstdc++ based on detectedld.soorlibc.so.6version.
The example is roppenheimer chal from recent ductf-2023
Ordoviz and Exiled1
Metadata
Metadata
Assignees
Labels
No labels