I'm trying understand how some parts of a closed source program distributed as a stripped binary implemented. When I run
ldd on the program, it prints only 4-5 most basic C libraries as dynamic dependencies. (e.g.
gobject etc.) However, when I run it in gdb or attach gdb to it and run
info sharedlibrary, it prints a huge list of libraries. Indeed, that program clearly uses GTK for GUI, for example, but gtk libraries are missing in
ldd output and shown in
info sharedlibrary output.
I was wondering does it work and how did they achieve this. Any ideas?