In unix the libraries have contents lists that are listable by "nm" and other tools - do .dlls have the equivalent, so i can find out what is in them ?
Announcement
Collapse
No announcement yet.
Quick question - Contents lists .dlls
Collapse
X
-
Originally posted by FunkyChickenIn unix the libraries have contents lists that are listable by "nm" and other tools - do .dlls have the equivalent, so i can find out what is in them ?
Depending on who the vendor is (if the source is closed) you can generally get a reference for the API that will tell you what interfaces are exposed and what arguments they accept and what values they return. Getting this info from a compiled library for which you do not have the sources requires tools (disassembler/debugger) that are publicly available. If you can attach the symbols for the library being analyzed, you'll obviously be able to gather more information about what it's doing and how.
Knowing the published interfaces for a library is only part of the battle. There are libraries that will expose interfaces unintentionally, there are interfaces that are not published, there are cases where arguments can be provided that were not intended or handled by the author or result in conditions that the architect did not anticipate. These are called bugs or vulnerabilities. Uncovering these conditions and using them to gain unauthorized access or escalation of privilage is called an exploit.
Doing this without the express written permission of the owner of the code/computer/network/system is, I believe, a felony.
Keeping this and the fact that I'm mostly just talking out my ass in the middle of the night, go read "man gcc" and about what the linker and compiler are doing when they create an executable. You can then extend your investigation to other platforms/compilers and libraries of functions. Eventually, you will develop spiffy skills and I'll have to buy you a drink.That's my story and I'm sticking to it.
Comment