I was going through a project which has program files but their definitions are defined elsewhere,so how to open .so file in linux to check if c++ source files/objects files for the program are present in .so file
            Asked
            
        
        
            Active
            
        
            Viewed 507 times
        
    -1
            
            
        - 
                    @drescherjn it shows how to list all the .so files but I need to open the files that is made into shared library file – PRASH May 15 '20 at 17:29
- 
                    You cannot recover the original source code from compiled files. The compilation process is a *one way* transformation. – Jesper Juhl May 15 '20 at 17:47
- 
                    Will decompiler help in any case? – PRASH May 17 '20 at 17:09
- 
                    Not in reconstructing the original source. That's *impossible*. A decompiler *may* get you some version of a C++ source that can *maybe* get re-compiled to generate something close to what it decompiled, but it'll never look even close to the original. – Jesper Juhl May 17 '20 at 17:17
2 Answers
2
            
            
        .so files are shared library files. You can use nm to inspect which symbols are defined in the file.
 
    
    
        zman200
        
- 21
- 2
0
            
            
        The readelf can help you. The website is http://man7.org/linux/man-pages/man1/readelf.1.html.
You can use readelf -s ./your-file.so to see it.
 
    
    
        tyChen
        
- 1,404
- 8
- 27
