I have an executable file and I would like to figure out which programming language was the source code written in. The first step would be to use a disassembler. What should be done after that ?Also, I read that determining which libraries are used during runtime would be a good indicator of the programming language being used. How should I determine which libraries are used ?
How should I go about trying to figure out the programming language that was used?
linux;executable
Actually I would suggest that you view the executeable with a hex viewer/editor. That way you can see straight away if the compiler embedded any strings as hints. You should also consider that some languages use C as an intermediate language. An example of that would be f2c a Fortran 77 to C compliler. It appears that f2c also links a support library so you would look for that.As far as determinining which libraries are used on linux you can use the ldd command for dynamic binaries and nm for static ones to dump the symbols. Also there is a related question on SO.Here is an intersting blog from a fellow RE member about how the binary you have might not even come from a compiler and how to recognise that. 