Problem dabei ist, du musst die DLL disassemblen um den Einsprungpunkt in die einzelnen Funktionen zu finden....
Die Info ist ja in der shared lib enthalten.
Wenn ich mir mit gcc eine shared lib (.so-Datei) erstelle, dann kann ich mir mit nm, readelf, oder objdump die offsets für die jeweiligen Funktionen auslesen lassen. Für mich wäre eher das Problem die Länge des Codeabschnittes zu ermitteln (einfach nur bis zum nächsten ret-opcode könnte sehr gefährlich werden...)
Edit: Auch der Umweg über Assembler führte leider nicht zum gewünschten Ergebnis (Binary ist am Ende wieder das was wir nicht haben wollen):