Sha256: 50ba970d79c856d25e1b13b6c43c4b57ea753c1fac41ac45f04b4685e14b9f82

Contents?: true

Size: 1.4 KB

Versions: 4

Compression:

Stored size: 1.4 KB

Contents

WindowsExports
==============

This class is defined in `metasm/os/windows_exports.rb`

It defines an `EXPORT` constant, a Hash, whose keys
are the standard win32 API symbol names, and values
are the library name where you can find this symbol.

The equivalent for GNU/Linux is <core/GNUExports.txt>

Usage
-----

The main usage of this class is the automatic generation
of the <core/PE.txt> import directories from the
external symbols referenced by a binary during compilation.

This is done in the `automagic_symbols` method.

Symbols
-------

The current version holds the symbols available in the
Windows XP SP2 32-bit standard libraries:

* `ntdll`
* `kernel32`
* `user32`
* `gdi32`
* `advapi32`
* `ws2_32`
* `msvcrt`
* `comdlg32`
* `psapi`


Ruby symbols are also defined, from `msvcrt-ruby18`.


Ruby library name
-----------------

On creation, the current ruby library name is inferred
from the `RUBY_PLATFORM` constant, in an effort to
try to use the available ruby library filename.

The only transformation supported now is to rewrite
the ruby version number appearing in the filename for
msvcrt-compiled binaries, so that you get the correct
`msvcrt-ruby192` name for exemple under ruby1.9.

This is implemented in the `patch_rubylib_to_current_interpreter`
method (which is aptly named).

Warning
#######

Note that binaries compiled this way will not work on
other machines where the exact same library is unavailable.

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
metasm-1.0.5 doc/core/WindowsExports.txt
metasm-1.0.4 doc/core/WindowsExports.txt
metasm-1.0.3 doc/core/WindowsExports.txt
metasm-1.0.2 doc/core/WindowsExports.txt