I've been messing around a little with Radare2 trying to master binary exploitation and patching.
I added a couple of assembly instructions to an x86 elf binary in a non-executable section of the file, precisely the section LOAD1 I spotted after listing the available sections of the executable :
S=
00* 0x08048000 |#################################-----------------------------------------------| 0x0804868c 1.6K mr-x LOAD0
01 0x08049f0c |---------------------------------------------------------------------------#####| 0x0804a028 280 mrw- LOAD1
=> 0x080483d0 |--------------------------------------------------------------------------------| 0x080483cf
Then when I tried to execute the binary I got the following error :
Inconsistency detected by ld.so: dl-version.c: 205: _dl_check_map_versions: Assertion `needed != NULL' failed!
I think the instructions types I added are not relevant in this matter as the issue arises with mov instructions as well as with simple jmp.
From what I know, the linking step had been performed at the compilation/linking of the original source code, so how does it come that ld is involved here ?
What exactly causes the linker inconsistency triggering the above error ?
iSand notSorS=to list the sectionsiSlist much more sections thatSandS=commands do ?iS.Sis outdated and eventually will be replaced with iS