[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