statifier logo
 
ELF STATIFIER
 
About
 Main Page

Get It
 Via the Web
 Via Anonymous SVN
 Precompiled Packages

Documentation
 README
 News
 ChangeLog
 Installation
 THANKS
 TODO
 FAQ

 STATIFIER.1

Development
documentation
 Background
 More Details
 More Problems
 Implementation
 Statified Layout
 Data Flow
 Porting

Resources
 WEB SVN
 SourceForge Page
 Mailing List
 Forums
 Related Projects

My Other SF projects
 kbde
 ksm
 nfstimesync
 noexec
 pkgrebuild
 rpmrebuild (with Eric Gerbier)
 rrp_statify

SourceForge.net Logo

 
STATIFIER'S DATA FLOW
Simplified data flow in statifing process.

dl var tls    regs                                                   Executable
module module module                                                 ----------
====== ====== ======                                                     |
 |      |      |                                                         |
 |      |      |                                                         |
 |      |      |                            +----------------------------*---+
 |      |      |                            |                            |   |
 |      |      |                            V                            |   |
 |      |      |                        +--------+                       |   |
 |      |      |                        | Script |                       |   |
 |      |      |                        +--------+                       |   |
 |      |      |                            |                            |   |
 |      |      |                            | Interpreter                |   |
 |      |      |                            |                            |   |
 |      |      |               +------------/                            |   |
 |      |      |               |                                         |   |
 |      |      |               V                                         |   |
 |      |      |    +---------------------+                              |   |
 |      |      |    |        Script       |                              |   |
 |      |      |    +---------------------+                              |   |
 |      |      |     |           |                                       |   |
 |      |      |     | _dl_vars  | _dl_start_user                        |   |
 |      |      |     |           |                                       |   |
 |      |      |     |           V                                       V   |
 |      |      |     |          +-----------------------------------------+  |
 |      |      |     |          |                  my_gdb                 |  |
 |      |      |     |          +-----------------------------------------+  |
 |      |      |     |             | tls_data   | registers  | loaded        |
 |      |      |     |             |            |            | segments      |
 |      |      |     V             V            V            |               V
 |      |      |    +---------+   +---------+  +---------+   |   +------------+
 |      |      |    | strtoul |   | strtoul |  | strtoul |   |   |non_pt_load |
 |      |      |    +---------+   +---------+  +---------+   |   +------------+
 |      |      |     | dl_vars     | tls data   | registers  |   non-pt-load |
 |      |      |     | binary      | binary     | binary     |   part of the |
 |      |      |     |             |            |            |   executable  |
 V      V      V     V             V            V            V               V
+-------------------------------------------------+         +-----------------+
|                create starter                   |         |       cat       |
+-------------------------------------------------+         +-----------------+
                                |                    statified       |
                                | starter            executable      |
                                V                    without starter V
+-----------------------------------------------------------------------------+
|                        inject_starter                                       |
+-----------------------------------------------------------------------------+
                                |
                                V
                       --------------------
                       Statified executable

Notes.

Script               - some program (now really script) which from shown input
                       generate shown output

strtoul              - program which convert string to the internal
                       'unsigned long' representation.
                       This program is part of statifier package.
                       
create starter       - concatenate all needed modules and their data. 

inject_starter       - inject starter to the executable
                       ELF file.
                       This program is part of statifier package.