Some days ago in the 0x00sec discord channel, somebody asked how to
remove a library from memory. That person was trying to inject some code
in a program using LD_PRELOAD to get some code executed
automatically, however, after doing its stuff the library stayed in
memory even after deleting the file in the disk. In other words, it was
still visible in /proc/PID/maps.
select to implement selectors and therefore I feel like I have to add this extra post for completeness GNU/EDMA is library that implements several object oriented features in plain C. Its last version was 0.18.6 and there is a new 0.19.1 which fixes some bugs and is more functional. Version 0.18.6 added some functions that have not been documented elsewhere so I have decided to write a tutorial in case someone wants to use the system
I'm very happy to announce that I have finally updated GNU/EDMA to support 64 bits platforms. Unfortunately I signed off as maintainer earlier this year so I still do not know how to release the update. In any case I will explain in this post what was the problem and how I solved it.
So far we have been using text strings as the basis for our protocols, but sometimes you may be interested in using binary protocols. Overall, a binary protocol is more efficient and depending on your application may be the right choice. However, binary protocols are not that straightforward and have their own peculiarities.
Single client servers work fine for simple applications but in more complex cases when multiple connections need to be managed at the same time, you will end writing a multi-thread application that takes up much more resources than needed. Let's see how to write this kind of applications in an efficient way.
In the previous instalment of this series we built a TCP echo server using standard Java sockets and also the direct operating system syscalls in a C version. Both programs looked very similar. In this instalment we are going to explore the Java NIO package which offers some advantages.
In my current journey to master Java again I decided to explore network programming as a way to practice. I'm used to code network application in plain old C, so in these posts I will be comparing Java and C so you can have some starting points for your transition in either direction.
