In a previous
post, I tried
different solutions for tunnelling DNS over
TLS. One of those solutions was
using a dedicated DNS-over-UDP fake
service replying to all
queries with the truncate flag set: this was causing the stub
resolvers to retry the query using a TCP-based virtual-circuit. This
solution is interesting because it is dead simple (it fits in a few
line of codes) but it is clearly a hack. Here, I am using a dedicated
DNS forwarder aggregating all
the incoming DNS-over-UDP requests over a single persistent TCP
virtual-circuit.
Debugging use-after-free with RR reverse execution
Published:
RR is a very useful tool for debugging. It
can record the execution of a program and then replay the exact same
execution at will inside a debugger. One very useful extra power
available since 4.0 is the support for efficient reverse
execution
which can be used to find the root cause of a bug in your program
by rewinding time. In this example, we reverse-execute a program from a
case of use-after-free in order to find where the block of memory was
freed.
If you try to use mutt, you will wonder how you are supposed to handle
multiple
accounts.
You will find suggestions to bind some keys to switch to different
accounts, use hooks.
In my previous SimGrid post, I
talked about different solutions for a better isolation between the
model-checked application and the model-checker. We chose to avoid
the (hackery) solution based multiple dynamic-linker namespaces in the
same process and use a more conventional process-based isolation.
Faster Than Light (FTL)
is a very nice (and quite difficult)
rogue-like-ish game with space battles, teleporters, management of the energy of
your ship, asteroid fields, alien species, droids (drones), etc.
It is quite cheap, DRM-free
and available natively on Intel-based GNU/Linux.
These are notes taken while trying to find out the format of the .dat files of
the game containing the game assets, ships statistics, events, etc.
when I had not access to the internet to find the solution.
There is a companion C program, ftldat,
for extracting the files within the archives and generating archives.
Unsurprisingly, similar tools
with the same name already exists. However, the description of the process
of reverse-engineering a (very simple) binary format might be interesting for
someone out there.
In Plasma 5, support for the XEmbed-based
“legacy” systray protocol
was removed:
only the new SNI protocol is handled.
However, a lot of applications still do not handle the new protocol:
Qt4 and Qt5 applications can be fixed
by installing the sni-qt (currently in experimental) and libdbusmenu-qt5 respectively
but other applications (such as GTK ones) must be patched/recompiled with SNI support.
Without this, windows disappear into oblivion 😿.
You can have a seamless systray-enabled Plasma panel
with a single (OK, two) line of shell 😼.
The Executable and Linkable Format (ELF) 🧝 is used for
compilation outputs (.o files), executables, shared libraries and core dumps.
The first cases are documented in the System V ABI
specification
and the Tools Interface Standard (TIS) ELF
specification but there does not
seem to be much documentation about the usage of the ELF format for core dumps.
Here are some notes on this.