[BangPypers] How to get class names from DLL file

vikas ruhil vikasruhil06 at gmail.com
Tue Feb 1 08:20:14 CET 2011


I first used Python for TCP/IP programming for the sendall () function.
Troubleshooting Cisco and Juniper routers, switches   in Network program
debugging using s.getsockname() &  with  Dealing with Asynchronous Inputs
with threaded approach way to use to use non-blocking sockets.but now
getting problem in traffic cating of sockets can anybody help me?



On Tue, Feb 1, 2011 at 12:44 PM, Anand Balachandran Pillai <
abpillai at gmail.com> wrote:

> On Tue, Feb 1, 2011 at 10:51 AM, Noufal Ibrahim <noufal at gmail.com> wrote:
>
> > On Tue, Feb 01 2011, Sibtey Mehdi wrote:
> >
> > > Hi,
> > >
> > > I am trying to get the class names from the DLL files in unix
> plateform.
> > Any
> > > can please help me out to solve this problem.
> >
> > The format of Microsoft DLL files is detailed over here
> >
> >
> http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/pecoff_v8.docx
> >
> > I think it should be possible to parse the file and find out the entry
> > points. I've never done it but it's the first thing that occurs to me.
> >
> > Apparently, they also release a tool called Dependency Walker
> > http://en.wikipedia.org/wiki/Dependency_Walker which allows you to list
> > functions exported by an executable which might work for you as well.
> >
>
>  I think he said "unix" :)
>
>  "DLL files" on Unix are called shared libraries ending with a ".so"
> extension.
>  If the library is not stripped you can view the symbols exported by it,
> including
>  class names.
>
>  E.g:
>
>  $ nm /usr/lib64/python2.4/lib-dynload/regex.so
>
>  However on production unix or any *nixes, the libraries are typically
> stripped
>  of such additional data. In that case you can use "readelf" command (works
>  only if your system supports ELF executables).
>
> $ readelf -s zlibmodule.so
>
> Symbol table '.dynsym' contains 45 entries:
>   Num:    Value          Size Type    Bind   Vis      Ndx Name
>     0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT  UND
>     1: 0000000000000ff8     0 SECTION LOCAL  DEFAULT    8
>     2: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND
> PyModule_AddObject
>     3: 0000000000000000    78 FUNC    GLOBAL DEFAULT  UND inflateEnd
>     4: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND PyExc_ValueError
> ...
>
> "objdump -T" also works similarly.
>
> $ objdump -T zlibmodule.so
>
> zlibmodule.so:     file format elf64-x86-64
>
> DYNAMIC SYMBOL TABLE:
> 0000000000000ff8 l    d  .init  0000000000000000              .init
> 0000000000000000      D  *UND*  0000000000000000
> PyModule_AddObject
> 0000000000000000      DF *UND*  000000000000004e              inflateEnd
> 0000000000000000      D  *UND*  0000000000000000
> PyExc_ValueError
> 0000000000000000      D  *UND*  0000000000000000
> PyModule_AddStringConstant
> 0000000000000000  w   D  *UND*  0000000000000000
>  __gmon_start__
> 0000000000000000  w   D  *UND*  0000000000000000
> _Jv_RegisterClasses
> 0000000000000000      DF *UND*  0000000000000a24              deflate
>
> Play with these and figure out which one does the trick for you.
>
> --Anand
>
>
>
>
> > [...]
> >
> >
> > --
> > _______________________________________________
> > BangPypers mailing list
> > BangPypers at python.org
> > http://mail.python.org/mailman/listinfo/bangpypers
> >
>
>
>
> --
> --Anand
> _______________________________________________
> BangPypers mailing list
> BangPypers at python.org
> http://mail.python.org/mailman/listinfo/bangpypers
>


More information about the BangPypers mailing list