Now Reading
A minimal, full and proper ELF file

A minimal, full and proper ELF file

2024-02-03 02:52:03



</p> <p> </head><br /> <body id="wp_automatic_ReadabilityBody"></p> <p>As a part of the <a rel="nofollow" href="https://github.com/avik-das/garlic">compiler for my homebrew language, Garlic</a>, I have been exploring what’s in an ELF file. That is so I can output a binary file, prepared for execution, as an alternative of relying on an exterior compiler like GCC to do this final step. As a primary step, I’ve hand-generated, byte-by-byte, a small ELF file that may be run on a 64-bit x86-64 Linux set up.</p> <p>There are some nice assets on the market (<a rel="nofollow" href="https://www.muppetlabs.com/~breadbox/software/tiny/teensy.html">truly minimal ELF files for 32-bit architectures</a>, <a rel="nofollow" href="https://github.com/tchajed/minimal-elf">a 64-bit tiny ELF file</a>, <a rel="nofollow" href="https://cirosantilli.com/elf-hello-world">a more comprehensive tutorial</a>), however I nonetheless struggled with this train. The rationale was that both the article tried to reduce the info within the file—omitting items which are going to exist in real-world ELF information a compiler would generate—or the article was too detailed. One other concern was that even when the high-level construction was clear, the person bytes weren’t mentioned. I needed to shuttle between these articles and the Linux ELF documentation (<code>man elf</code>).</p> <p>So right here is my try, with a further twist: every byte within the rationalization is clickable, with references to associated bytes elsewhere within the file.</p> <section id="overview"> <img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://blinkingrobots.com/wp-content/uploads/2024/02/A-minimal-complete-and-correct-ELF-file.svg.svg+xml" alt="Diagram of the different parts of the ELF file. The structure is as described in the following File Overview section." class="lazyload" width="500px"/></p> <div> <h2>File overview</h2> <p>On this minimal ELF file, I might be establishing a statically linked executable for an x86-64 Linux set up.</p> <p>First, an summary, which is one thing I discovered very laborious to grasp from any of the assets I checked out. The ELF file all the time begins with a fixed-size header, which states the areas of the opposite components of the file. The diagram reveals all these references:</p> <ol> <li> <p>The ELF header states the place the part and program header tables are, in addition to which entry within the part header desk is the part header string desk.</p> </li> <li> <p>Each the <code>.textual content</code> part header and the executable program section header state the place the <code>.textual content</code> part is.</p> </li> <li> <p>The <code>.shstrtab</code> part header states the place the part header string desk is.</p> </li> <li> <p>The assorted part headers index into the part header string desk for the names of the sections.</p> </li> </ol> <p>By altering the references, you’ll be able to place any of those sections wherever within the file! For instance, I may have prevented the crossing of the arrows on the precise if I put the <code>.shstrtab</code> part header earlier than the <code>.textual content</code> part header 🙂</p> <p>Technically, the part header desk and the part header string desk usually are not wanted, however having them units the stage for including extra sections sooner or later, particularly dynamic linking and debug image sections.</p> </p></div> </section> <div class="file-section" data-section-name="elf-header"> <h2>ELF header</h2> <p>As talked about within the overview, the ELF header is a fixed-size part of bytes that specifies how what this file is and the way the remainder of the file is laid out. As a result of the construction of the header is so inflexible, it may be learn with out considerations reminiscent of endianness or what different sections are current within the file.</p> <div class="section-block"> <div class="explanation-container"> <h3>Magic quantity</h3> <p><code>"ELF"</code> in ASCII. Identifies this file as an ELF file.</p> </p></div> <div class="explanation-container"> <h3>Kind (structure)</h3> <p>64-bit structure</p> </p></div> <div class="explanation-container"> <h3>Processor knowledge format</h3> <p>Two’s complement, little-endian</p> </p></div> <div class="explanation-container"> <h3>ELF model</h3> <p>Present ELF specfication model</p> </p></div> <div class="explanation-container"> <h3>OS ABI</h3> <p>“None”, evquivalent to UNIX – System-V, default model</p> </p></div> <div class="explanation-container"> <h3>Padding</h3> <p>Padding till 16 bytes, for future compatibility</p> </p></div> <div class="explanation-container"> <h3>Object file sort</h3> <p>Static executable, versus one thing like a shared object (<code>.so</code> file)</p> </p></div> <div class="explanation-container"> <h3>File model</h3> <p>“Present” model</p> </p></div> <div class="explanation-container"> <h3>Entry level</h3> <p>The place the system ought to switch management when beginning the method. Wanted for executables. Expressed as a digital reminiscence tackle; see each the executable section in this system headers desk and the <code>.textual content</code> part header within the part headers desk beneath for extra particulars.</p> </p></div> <div class="explanation-container"> <h3>Program header desk begin</h3> <p>The byte offset, on this file, of the beginning of this system header desk</p> </p></div> <div class="explanation-container"> <h3>Part header desk begin</h3> <p>The byte offset, on this file, of the beginning of the part header desk</p> </p></div> <div class="explanation-container"> <h3>Processor-specific flags</h3> <p>None outlined by the ELF specs at the moment</p> </p></div> <div class="explanation-container"> <h3>ELF header dimension</h3> <p>The scale of the ELF header in bytes</p> </p></div> <div class="explanation-container"> <h3>Program header entry dimension</h3> <p>The scale of every program header in this system header desk, in bytes. For 64-bit architectures, this dimension is 56 bytes.</p> </p></div> <div class="explanation-container"> <h3>Variety of program headers</h3> <p>The variety of program headers in this system header desk</p> </p></div> <div class="explanation-container"> <h3>Part header entry dimension</h3> <p>The scale of every part header within the part header desk, in bytes. For 64-bit architectures, this dimension is 64 bytes.</p> </p></div> <div class="explanation-container"> <h3>Variety of part headers</h3> <p>The variety of part headers within the part header desk</p> </p></div> <div class="explanation-container"> <h3>Part title string desk index</h3> <p>Which of the part headers factors to the part <em>title</em> string desk, listed from zero.</p> <p>The part title string desk is itself a piece, which implies a corresponding header reveals up within the part header desk. This index factors out <em>which</em> part header that header is, as a result of the part title string desk is a particular part.</p> </p></div></div></div> <div class="file-section" data-section-name="section-header-table"> <h2>Part header desk</h2> <p>An ELF file is damaged up into a number of <em>sections</em>, every with a special sort and subsequently a special construction. The part header desk lays out the completely different sections within the file, the place they’re and what sort they’re. The sections needn’t seem proper after the desk, nor do they should seem in the identical order as within the desk. The desk will reference the info for every part by offset into the file.</p> <p>Typical sections in an ELF file embody the <code>.textual content</code> part (containing the code that might be executed), debug symbols and relocation symbols (for dynamic linking). There’s a particular part sort, the part header title desk, that comprises strings with the names of the sections. Solely the <code>.textual content</code> and the part header title desk are included on this file.</p> <div class="section-block"> <div class="explanation-container"> <h3><code>.textual content</code> part: part title</h3> <p>The <code>.textual content</code> part is the part of the ELF file containing the executable code that might be loaded into the executable program section. This part is outlined by the next fields:</p> <table> <thead> <tr> <th>Discipline</th> <th>Worth</th> <th>Notes</th> </tr> </thead> <tbody> <tr class="highlighted-field"> <th align="center">Title</th> <td align="center"><code>1</code> (<code>".textual content"</code>)</td> <td>Outlined by an index into the part title string desk, pointing to a null-terminated ASCII string.</td> </tr> <tr> <th align="center">Kind</th> <td align="center"><code>PROGBITS</code></td> <td>The loaded program will decide what these bytes imply. The information is opaque to the ELF file.</td> </tr> <tr> <th align="center">Flags</th> <td align="center">Allocatable + executable</td> <td>Loaded into reminiscence throughout course of execution</td> </tr> <tr> <th align="center">Deal with</th> <td align="center"><code>0x4000F8</code></td> <td>The place the info from this part will find yourself in reminiscence as soon as it’s loaded. Discover this is identical because the tackle of the executable program section. That is outlined as a result of the section is allocatable.</td> </tr> <tr> <th align="center">Offset</th> <td align="center"><code>0xF8</code></td> <td>The place the info for this part resides inside this file</td> </tr> <tr> <th align="center">Dimension</th> <td align="center"><code>14</code></td> <td>What number of bytes the part takes up on this file</td> </tr> <tr> <th align="center">Hyperlink</th> <td align="center">N/A</td> <td>Hyperlinks to a different part header by index. The interpretation of this discipline is dependent upon the part sort. For this <code>.textual content</code> part, there is no such thing as a hyperlink as a result of this file represents a static binary.</td> </tr> <tr> <th align="center">Information</th> <td align="center">N/A</td> <td>Any additional data, topic to interpretation based mostly on the part sort. No additional data for this part.</td> </tr> <tr> <th align="center">Deal with alignment</th> <td align="center"><code>0x1000</code></td> <td>Any alignment constraint, in bytes, for the info on this part. The alignment right here is identical as that of the executable program section.</td> </tr> <tr> <th align="center">Entry dimension</th> <td align="center">N/A</td> <td>For sections that include a desk of fixed-size entries (reminiscent of an emblem desk), this discipline states the scale of these entries in bytes.</td> </tr> </tbody> </table></div> <div class="explanation-container"> <h3><code>.textual content</code> part: part sort</h3> <p>The <code>.textual content</code> part is the part of the ELF file containing the executable code that might be loaded into the executable program section. This part is outlined by the next fields:</p> <table> <thead> <tr> <th>Discipline</th> <th>Worth</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <th align="center">Title</th> <td align="center"><code>1</code> (<code>".textual content"</code>)</td> <td>Outlined by an index into the part title string desk, pointing to a null-terminated ASCII string.</td> </tr> <tr class="highlighted-field"> <th align="center">Kind</th> <td align="center"><code>PROGBITS</code></td> <td>The loaded program will decide what these bytes imply. The information is opaque to the ELF file.</td> </tr> <tr> <th align="center">Flags</th> <td align="center">Allocatable + executable</td> <td>Loaded into reminiscence throughout course of execution</td> </tr> <tr> <th align="center">Deal with</th> <td align="center"><code>0x4000F8</code></td> <td>The place the info from this part will find yourself in reminiscence as soon as it’s loaded. Discover this is identical because the tackle of the executable program section. That is outlined as a result of the section is allocatable.</td> </tr> <tr> <th align="center">Offset</th> <td align="center"><code>0xF8</code></td> <td>The place the info for this part resides inside this file</td> </tr> <tr> <th align="center">Dimension</th> <td align="center"><code>14</code></td> <td>What number of bytes the part takes up on this file</td> </tr> <tr> <th align="center">Hyperlink</th> <td align="center">N/A</td> <td>Hyperlinks to a different part header by index. The interpretation of this discipline is dependent upon the part sort. For this <code>.textual content</code> part, there is no such thing as a hyperlink as a result of this file represents a static binary.</td> </tr> <tr> <th align="center">Information</th> <td align="center">N/A</td> <td>Any additional data, topic to interpretation based mostly on the part sort. No additional data for this part.</td> </tr> <tr> <th align="center">Deal with alignment</th> <td align="center"><code>0x1000</code></td> <td>Any alignment constraint, in bytes, for the info on this part. The alignment right here is identical as that of the executable program section.</td> </tr> <tr> <th align="center">Entry dimension</th> <td align="center">N/A</td> <td>For sections that include a desk of fixed-size entries (reminiscent of an emblem desk), this discipline states the scale of these entries in bytes.</td> </tr> </tbody> </table></div> <div class="explanation-container"> <h3><code>.textual content</code> part: part flags</h3> <p>The <code>.textual content</code> part is the part of the ELF file containing the executable code that might be loaded into the executable program section. This part is outlined by the next fields:</p> <table> <thead> <tr> <th>Discipline</th> <th>Worth</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <th align="center">Title</th> <td align="center"><code>1</code> (<code>".textual content"</code>)</td> <td>Outlined by an index into the part title string desk, pointing to a null-terminated ASCII string.</td> </tr> <tr> <th align="center">Kind</th> <td align="center"><code>PROGBITS</code></td> <td>The loaded program will decide what these bytes imply. The information is opaque to the ELF file.</td> </tr> <tr class="highlighted-field"> <th align="center">Flags</th> <td align="center">Allocatable + executable</td> <td>Loaded into reminiscence throughout course of execution</td> </tr> <tr> <th align="center">Deal with</th> <td align="center"><code>0x4000F8</code></td> <td>The place the info from this part will find yourself in reminiscence as soon as it’s loaded. Discover this is identical because the tackle of the executable program section. That is outlined as a result of the section is allocatable.</td> </tr> <tr> <th align="center">Offset</th> <td align="center"><code>0xF8</code></td> <td>The place the info for this part resides inside this file</td> </tr> <tr> <th align="center">Dimension</th> <td align="center"><code>14</code></td> <td>What number of bytes the part takes up on this file</td> </tr> <tr> <th align="center">Hyperlink</th> <td align="center">N/A</td> <td>Hyperlinks to a different part header by index. The interpretation of this discipline is dependent upon the part sort. For this <code>.textual content</code> part, there is no such thing as a hyperlink as a result of this file represents a static binary.</td> </tr> <tr> <th align="center">Information</th> <td align="center">N/A</td> <td>Any additional data, topic to interpretation based mostly on the part sort. No additional data for this part.</td> </tr> <tr> <th align="center">Deal with alignment</th> <td align="center"><code>0x1000</code></td> <td>Any alignment constraint, in bytes, for the info on this part. The alignment right here is identical as that of the executable program section.</td> </tr> <tr> <th align="center">Entry dimension</th> <td align="center">N/A</td> <td>For sections that include a desk of fixed-size entries (reminiscent of an emblem desk), this discipline states the scale of these entries in bytes.</td> </tr> </tbody> </table></div> <div class="explanation-container"> <h3><code>.textual content</code> part: part tackle</h3> <p>The <code>.textual content</code> part is the part of the ELF file containing the executable code that might be loaded into the executable program section. This part is outlined by the next fields:</p> <table> <thead> <tr> <th>Discipline</th> <th>Worth</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <th align="center">Title</th> <td align="center"><code>1</code> (<code>".textual content"</code>)</td> <td>Outlined by an index into the part title string desk, pointing to a null-terminated ASCII string.</td> </tr> <tr> <th align="center">Kind</th> <td align="center"><code>PROGBITS</code></td> <td>The loaded program will decide what these bytes imply. The information is opaque to the ELF file.</td> </tr> <tr> <th align="center">Flags</th> <td align="center">Allocatable + executable</td> <td>Loaded into reminiscence throughout course of execution</td> </tr> <tr class="highlighted-field"> <th align="center">Deal with</th> <td align="center"><code>0x4000F8</code></td> <td>The place the info from this part will find yourself in reminiscence as soon as it’s loaded. Discover this is identical because the tackle of the executable program section. That is outlined as a result of the section is allocatable.</td> </tr> <tr> <th align="center">Offset</th> <td align="center"><code>0xF8</code></td> <td>The place the info for this part resides inside this file</td> </tr> <tr> <th align="center">Dimension</th> <td align="center"><code>14</code></td> <td>What number of bytes the part takes up on this file</td> </tr> <tr> <th align="center">Hyperlink</th> <td align="center">N/A</td> <td>Hyperlinks to a different part header by index. The interpretation of this discipline is dependent upon the part sort. For this <code>.textual content</code> part, there is no such thing as a hyperlink as a result of this file represents a static binary.</td> </tr> <tr> <th align="center">Information</th> <td align="center">N/A</td> <td>Any additional data, topic to interpretation based mostly on the part sort. No additional data for this part.</td> </tr> <tr> <th align="center">Deal with alignment</th> <td align="center"><code>0x1000</code></td> <td>Any alignment constraint, in bytes, for the info on this part. The alignment right here is identical as that of the executable program section.</td> </tr> <tr> <th align="center">Entry dimension</th> <td align="center">N/A</td> <td>For sections that include a desk of fixed-size entries (reminiscent of an emblem desk), this discipline states the scale of these entries in bytes.</td> </tr> </tbody> </table></div> <div class="explanation-container"> <h3><code>.textual content</code> part: part offset</h3> <p>The <code>.textual content</code> part is the part of the ELF file containing the executable code that might be loaded into the executable program section. This part is outlined by the next fields:</p> <table> <thead> <tr> <th>Discipline</th> <th>Worth</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <th align="center">Title</th> <td align="center"><code>1</code> (<code>".textual content"</code>)</td> <td>Outlined by an index into the part title string desk, pointing to a null-terminated ASCII string.</td> </tr> <tr> <th align="center">Kind</th> <td align="center"><code>PROGBITS</code></td> <td>The loaded program will decide what these bytes imply. The information is opaque to the ELF file.</td> </tr> <tr> <th align="center">Flags</th> <td align="center">Allocatable + executable</td> <td>Loaded into reminiscence throughout course of execution</td> </tr> <tr> <th align="center">Deal with</th> <td align="center"><code>0x4000F8</code></td> <td>The place the info from this part will find yourself in reminiscence as soon as it’s loaded. Discover this is identical because the tackle of the executable program section. That is outlined as a result of the section is allocatable.</td> </tr> <tr class="highlighted-field"> <th align="center">Offset</th> <td align="center"><code>0xF8</code></td> <td>The place the info for this part resides inside this file</td> </tr> <tr> <th align="center">Dimension</th> <td align="center"><code>14</code></td> <td>What number of bytes the part takes up on this file</td> </tr> <tr> <th align="center">Hyperlink</th> <td align="center">N/A</td> <td>Hyperlinks to a different part header by index. The interpretation of this discipline is dependent upon the part sort. For this <code>.textual content</code> part, there is no such thing as a hyperlink as a result of this file represents a static binary.</td> </tr> <tr> <th align="center">Information</th> <td align="center">N/A</td> <td>Any additional data, topic to interpretation based mostly on the part sort. No additional data for this part.</td> </tr> <tr> <th align="center">Deal with alignment</th> <td align="center"><code>0x1000</code></td> <td>Any alignment constraint, in bytes, for the info on this part. The alignment right here is identical as that of the executable program section.</td> </tr> <tr> <th align="center">Entry dimension</th> <td align="center">N/A</td> <td>For sections that include a desk of fixed-size entries (reminiscent of an emblem desk), this discipline states the scale of these entries in bytes.</td> </tr> </tbody> </table></div> <div class="explanation-container"> <h3><code>.textual content</code> part: part dimension</h3> <p>The <code>.textual content</code> part is the part of the ELF file containing the executable code that might be loaded into the executable program section. This part is outlined by the next fields:</p> <table> <thead> <tr> <th>Discipline</th> <th>Worth</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <th align="center">Title</th> <td align="center"><code>1</code> (<code>".textual content"</code>)</td> <td>Outlined by an index into the part title string desk, pointing to a null-terminated ASCII string.</td> </tr> <tr> <th align="center">Kind</th> <td align="center"><code>PROGBITS</code></td> <td>The loaded program will decide what these bytes imply. The information is opaque to the ELF file.</td> </tr> <tr> <th align="center">Flags</th> <td align="center">Allocatable + executable</td> <td>Loaded into reminiscence throughout course of execution</td> </tr> <tr> <th align="center">Deal with</th> <td align="center"><code>0x4000F8</code></td> <td>The place the info from this part will find yourself in reminiscence as soon as it’s loaded. Discover this is identical because the tackle of the executable program section. That is outlined as a result of the section is allocatable.</td> </tr> <tr> <th align="center">Offset</th> <td align="center"><code>0xF8</code></td> <td>The place the info for this part resides inside this file</td> </tr> <tr class="highlighted-field"> <th align="center">Dimension</th> <td align="center"><code>14</code></td> <td>What number of bytes the part takes up on this file</td> </tr> <tr> <th align="center">Hyperlink</th> <td align="center">N/A</td> <td>Hyperlinks to a different part header by index. The interpretation of this discipline is dependent upon the part sort. For this <code>.textual content</code> part, there is no such thing as a hyperlink as a result of this file represents a static binary.</td> </tr> <tr> <th align="center">Information</th> <td align="center">N/A</td> <td>Any additional data, topic to interpretation based mostly on the part sort. No additional data for this part.</td> </tr> <tr> <th align="center">Deal with alignment</th> <td align="center"><code>0x1000</code></td> <td>Any alignment constraint, in bytes, for the info on this part. The alignment right here is identical as that of the executable program section.</td> </tr> <tr> <th align="center">Entry dimension</th> <td align="center">N/A</td> <td>For sections that include a desk of fixed-size entries (reminiscent of an emblem desk), this discipline states the scale of these entries in bytes.</td> </tr> </tbody> </table></div> <div class="explanation-container"> <h3><code>.textual content</code> part: hyperlink</h3> <p>The <code>.textual content</code> part is the part of the ELF file containing the executable code that might be loaded into the executable program section. This part is outlined by the next fields:</p> <table> <thead> <tr> <th>Discipline</th> <th>Worth</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <th align="center">Title</th> <td align="center"><code>1</code> (<code>".textual content"</code>)</td> <td>Outlined by an index into the part title string desk, pointing to a null-terminated ASCII string.</td> </tr> <tr> <th align="center">Kind</th> <td align="center"><code>PROGBITS</code></td> <td>The loaded program will decide what these bytes imply. The information is opaque to the ELF file.</td> </tr> <tr> <th align="center">Flags</th> <td align="center">Allocatable + executable</td> <td>Loaded into reminiscence throughout course of execution</td> </tr> <tr> <th align="center">Deal with</th> <td align="center"><code>0x4000F8</code></td> <td>The place the info from this part will find yourself in reminiscence as soon as it’s loaded. Discover this is identical because the tackle of the executable program section. That is outlined as a result of the section is allocatable.</td> </tr> <tr> <th align="center">Offset</th> <td align="center"><code>0xF8</code></td> <td>The place the info for this part resides inside this file</td> </tr> <tr> <th align="center">Dimension</th> <td align="center"><code>14</code></td> <td>What number of bytes the part takes up on this file</td> </tr> <tr class="highlighted-field"> <th align="center">Hyperlink</th> <td align="center">N/A</td> <td>Hyperlinks to a different part header by index. The interpretation of this discipline is dependent upon the part sort. For this <code>.textual content</code> part, there is no such thing as a hyperlink as a result of this file represents a static binary.</td> </tr> <tr> <th align="center">Information</th> <td align="center">N/A</td> <td>Any additional data, topic to interpretation based mostly on the part sort. No additional data for this part.</td> </tr> <tr> <th align="center">Deal with alignment</th> <td align="center"><code>0x1000</code></td> <td>Any alignment constraint, in bytes, for the info on this part. The alignment right here is identical as that of the executable program section.</td> </tr> <tr> <th align="center">Entry dimension</th> <td align="center">N/A</td> <td>For sections that include a desk of fixed-size entries (reminiscent of an emblem desk), this discipline states the scale of these entries in bytes.</td> </tr> </tbody> </table></div> <div class="explanation-container"> <h3><code>.textual content</code> part: extra data</h3> <p>The <code>.textual content</code> part is the part of the ELF file containing the executable code that might be loaded into the executable program section. This part is outlined by the next fields:</p> <table> <thead> <tr> <th>Discipline</th> <th>Worth</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <th align="center">Title</th> <td align="center"><code>1</code> (<code>".textual content"</code>)</td> <td>Outlined by an index into the part title string desk, pointing to a null-terminated ASCII string.</td> </tr> <tr> <th align="center">Kind</th> <td align="center"><code>PROGBITS</code></td> <td>The loaded program will decide what these bytes imply. The information is opaque to the ELF file.</td> </tr> <tr> <th align="center">Flags</th> <td align="center">Allocatable + executable</td> <td>Loaded into reminiscence throughout course of execution</td> </tr> <tr> <th align="center">Deal with</th> <td align="center"><code>0x4000F8</code></td> <td>The place the info from this part will find yourself in reminiscence as soon as it’s loaded. Discover this is identical because the tackle of the executable program section. That is outlined as a result of the section is allocatable.</td> </tr> <tr> <th align="center">Offset</th> <td align="center"><code>0xF8</code></td> <td>The place the info for this part resides inside this file</td> </tr> <tr> <th align="center">Dimension</th> <td align="center"><code>14</code></td> <td>What number of bytes the part takes up on this file</td> </tr> <tr> <th align="center">Hyperlink</th> <td align="center">N/A</td> <td>Hyperlinks to a different part header by index. The interpretation of this discipline is dependent upon the part sort. For this <code>.textual content</code> part, there is no such thing as a hyperlink as a result of this file represents a static binary.</td> </tr> <tr class="highlighted-field"> <th align="center">Information</th> <td align="center">N/A</td> <td>Any additional data, topic to interpretation based mostly on the part sort. No additional data for this part.</td> </tr> <tr> <th align="center">Deal with alignment</th> <td align="center"><code>0x1000</code></td> <td>Any alignment constraint, in bytes, for the info on this part. The alignment right here is identical as that of the executable program section.</td> </tr> <tr> <th align="center">Entry dimension</th> <td align="center">N/A</td> <td>For sections that include a desk of fixed-size entries (reminiscent of an emblem desk), this discipline states the scale of these entries in bytes.</td> </tr> </tbody> </table></div> <div class="explanation-container"> <h3><code>.textual content</code> part: addresss alignment</h3> <p>The <code>.textual content</code> part is the part of the ELF file containing the executable code that might be loaded into the executable program section. This part is outlined by the next fields:</p> <table> <thead> <tr> <th>Discipline</th> <th>Worth</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <th align="center">Title</th> <td align="center"><code>1</code> (<code>".textual content"</code>)</td> <td>Outlined by an index into the part title string desk, pointing to a null-terminated ASCII string.</td> </tr> <tr> <th align="center">Kind</th> <td align="center"><code>PROGBITS</code></td> <td>The loaded program will decide what these bytes imply. The information is opaque to the ELF file.</td> </tr> <tr> <th align="center">Flags</th> <td align="center">Allocatable + executable</td> <td>Loaded into reminiscence throughout course of execution</td> </tr> <tr> <th align="center">Deal with</th> <td align="center"><code>0x4000F8</code></td> <td>The place the info from this part will find yourself in reminiscence as soon as it’s loaded. Discover this is identical because the tackle of the executable program section. That is outlined as a result of the section is allocatable.</td> </tr> <tr> <th align="center">Offset</th> <td align="center"><code>0xF8</code></td> <td>The place the info for this part resides inside this file</td> </tr> <tr> <th align="center">Dimension</th> <td align="center"><code>14</code></td> <td>What number of bytes the part takes up on this file</td> </tr> <tr> <th align="center">Hyperlink</th> <td align="center">N/A</td> <td>Hyperlinks to a different part header by index. The interpretation of this discipline is dependent upon the part sort. For this <code>.textual content</code> part, there is no such thing as a hyperlink as a result of this file represents a static binary.</td> </tr> <tr> <th align="center">Information</th> <td align="center">N/A</td> <td>Any additional data, topic to interpretation based mostly on the part sort. No additional data for this part.</td> </tr> <tr class="highlighted-field"> <th align="center">Deal with alignment</th> <td align="center"><code>0x1000</code></td> <td>Any alignment constraint, in bytes, for the info on this part. The alignment right here is identical as that of the executable program section.</td> </tr> <tr> <th align="center">Entry dimension</th> <td align="center">N/A</td> <td>For sections that include a desk of fixed-size entries (reminiscent of an emblem desk), this discipline states the scale of these entries in bytes.</td> </tr> </tbody> </table></div> <div class="explanation-container"> <h3><code>.textual content</code> part: part entry dimension</h3> <p>The <code>.textual content</code> part is the part of the ELF file containing the executable code that might be loaded into the executable program section. This part is outlined by the next fields:</p> <table> <thead> <tr> <th>Discipline</th> <th>Worth</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <th align="center">Title</th> <td align="center"><code>1</code> (<code>".textual content"</code>)</td> <td>Outlined by an index into the part title string desk, pointing to a null-terminated ASCII string.</td> </tr> <tr> <th align="center">Kind</th> <td align="center"><code>PROGBITS</code></td> <td>The loaded program will decide what these bytes imply. The information is opaque to the ELF file.</td> </tr> <tr> <th align="center">Flags</th> <td align="center">Allocatable + executable</td> <td>Loaded into reminiscence throughout course of execution</td> </tr> <tr> <th align="center">Deal with</th> <td align="center"><code>0x4000F8</code></td> <td>The place the info from this part will find yourself in reminiscence as soon as it’s loaded. Discover this is identical because the tackle of the executable program section. That is outlined as a result of the section is allocatable.</td> </tr> <tr> <th align="center">Offset</th> <td align="center"><code>0xF8</code></td> <td>The place the info for this part resides inside this file</td> </tr> <tr> <th align="center">Dimension</th> <td align="center"><code>14</code></td> <td>What number of bytes the part takes up on this file</td> </tr> <tr> <th align="center">Hyperlink</th> <td align="center">N/A</td> <td>Hyperlinks to a different part header by index. The interpretation of this discipline is dependent upon the part sort. For this <code>.textual content</code> part, there is no such thing as a hyperlink as a result of this file represents a static binary.</td> </tr> <tr> <th align="center">Information</th> <td align="center">N/A</td> <td>Any additional data, topic to interpretation based mostly on the part sort. No additional data for this part.</td> </tr> <tr> <th align="center">Deal with alignment</th> <td align="center"><code>0x1000</code></td> <td>Any alignment constraint, in bytes, for the info on this part. The alignment right here is identical as that of the executable program section.</td> </tr> <tr class="highlighted-field"> <th align="center">Entry dimension</th> <td align="center">N/A</td> <td>For sections that include a desk of fixed-size entries (reminiscent of an emblem desk), this discipline states the scale of these entries in bytes.</td> </tr> </tbody> </table></div> <div class="explanation-container"> <h3><code>.shstrtab</code> part: part title</h3> <p>The <code>.shstrtab</code> part is the part of the ELF file containing the names of the part headers, as null-terminated ASCII strings. This part is outlined by the next fields:</p> <table> <thead> <tr> <th>Discipline</th> <th>Worth</th> <th>Notes</th> </tr> </thead> <tbody> <tr class="highlighted-field"> <th align="center">Title</th> <td align="center"><code>1</code> (<code>".shstrtab"</code>)</td> <td>Outlined by an index into the part title string desk, pointing to a null-terminated ASCII string.</td> </tr> <tr> <th align="center">Kind</th> <td align="center"><code>STRTAB</code></td> <td>A string desk. There could be different string tables within the file as effectively, although this one (by advantage of being referenced within the ELF header) is particularly the one used when trying up part names.</td> </tr> <tr> <th align="center">Flags</th> <td align="center" rowspan="2">N/A</td> <td rowspan="2">None of those fields apply to a string desk part.</td> </tr> <tr> <th align="center">Deal with</th> </tr> <tr> <th align="center">Offset</th> <td align="center"><code>0x106</code></td> <td>The place the info for the string desk is within the file.</td> </tr> <tr> <th align="center">Dimension</th> <td align="center"><code>17</code></td> <td>The variety of bytes the string desk occupies within the file.</td> </tr> <tr> <th align="center">Hyperlink</th> <td align="center" rowspan="3">N/A</td> <td rowspan="3">None of those fields apply to a string desk part.</td> </tr> <tr> <th align="center">Information</th> </tr> <tr> <th align="center">Deal with alignment</th> </tr> <tr> <th align="center">Entry dimension</th> <td align="center">N/A</td> <td>Though this part is a desk, the entries usually are not fixed-width.</td> </tr> </tbody> </table></div> <div class="explanation-container"> <h3><code>.shstrtab</code> part: part sort</h3> <p>The <code>.shstrtab</code> part is the part of the ELF file containing the names of the part headers, as null-terminated ASCII strings. This part is outlined by the next fields:</p> <table> <thead> <tr> <th>Discipline</th> <th>Worth</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <th align="center">Title</th> <td align="center"><code>1</code> (<code>".shstrtab"</code>)</td> <td>Outlined by an index into the part title string desk, pointing to a null-terminated ASCII string.</td> </tr> <tr class="highlighted-field"> <th align="center">Kind</th> <td align="center"><code>STRTAB</code></td> <td>A string desk. There could be different string tables within the file as effectively, although this one (by advantage of being referenced within the ELF header) is particularly the one used when trying up part names.</td> </tr> <tr> <th align="center">Flags</th> <td align="center" rowspan="2">N/A</td> <td rowspan="2">None of those fields apply to a string desk part.</td> </tr> <tr> <th align="center">Deal with</th> </tr> <tr> <th align="center">Offset</th> <td align="center"><code>0x106</code></td> <td>The place the info for the string desk is within the file.</td> </tr> <tr> <th align="center">Dimension</th> <td align="center"><code>17</code></td> <td>The variety of bytes the string desk occupies within the file.</td> </tr> <tr> <th align="center">Hyperlink</th> <td align="center" rowspan="3">N/A</td> <td rowspan="3">None of those fields apply to a string desk part.</td> </tr> <tr> <th align="center">Information</th> </tr> <tr> <th align="center">Deal with alignment</th> </tr> <tr> <th align="center">Entry dimension</th> <td align="center">N/A</td> <td>Though this part is a desk, the entries usually are not fixed-width.</td> </tr> </tbody> </table></div> <div class="explanation-container"> <h3><code>.shstrtab</code> part: non-applicable fields</h3> <p>The <code>.shstrtab</code> part is the part of the ELF file containing the names of the part headers, as null-terminated ASCII strings. This part is outlined by the next fields:</p> <table> <thead> <tr> <th>Discipline</th> <th>Worth</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <th align="center">Title</th> <td align="center"><code>1</code> (<code>".shstrtab"</code>)</td> <td>Outlined by an index into the part title string desk, pointing to a null-terminated ASCII string.</td> </tr> <tr> <th align="center">Kind</th> <td align="center"><code>STRTAB</code></td> <td>A string desk. There could be different string tables within the file as effectively, although this one (by advantage of being referenced within the ELF header) is particularly the one used when trying up part names.</td> </tr> <tr class="highlighted-field"> <th align="center">Flags</th> <td align="center" rowspan="2">N/A</td> <td rowspan="2">None of those fields apply to a string desk part.</td> </tr> <tr class="highlighted-field"> <th align="center">Deal with</th> </tr> <tr> <th align="center">Offset</th> <td align="center"><code>0x106</code></td> <td>The place the info for the string desk is within the file.</td> </tr> <tr> <th align="center">Dimension</th> <td align="center"><code>17</code></td> <td>The variety of bytes the string desk occupies within the file.</td> </tr> <tr> <th align="center">Hyperlink</th> <td align="center" rowspan="3">N/A</td> <td rowspan="3">None of those fields apply to a string desk part.</td> </tr> <tr> <th align="center">Information</th> </tr> <tr> <th align="center">Deal with alignment</th> </tr> <tr> <th align="center">Entry dimension</th> <td align="center">N/A</td> <td>Though this part is a desk, the entries usually are not fixed-width.</td> </tr> </tbody> </table></div> <div class="explanation-container"> <h3><code>.shstrtab</code> part: part offset</h3> <p>The <code>.shstrtab</code> part is the part of the ELF file containing the names of the part headers, as null-terminated ASCII strings. This part is outlined by the next fields:</p> <table> <thead> <tr> <th>Discipline</th> <th>Worth</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <th align="center">Title</th> <td align="center"><code>1</code> (<code>".shstrtab"</code>)</td> <td>Outlined by an index into the part title string desk, pointing to a null-terminated ASCII string.</td> </tr> <tr> <th align="center">Kind</th> <td align="center"><code>STRTAB</code></td> <td>A string desk. There could be different string tables within the file as effectively, although this one (by advantage of being referenced within the ELF header) is particularly the one used when trying up part names.</td> </tr> <tr> <th align="center">Flags</th> <td align="center" rowspan="2">N/A</td> <td rowspan="2">None of those fields apply to a string desk part.</td> </tr> <tr> <th align="center">Deal with</th> </tr> <tr class="highlighted-field"> <th align="center">Offset</th> <td align="center"><code>0x106</code></td> <td>The place the info for the string desk is within the file.</td> </tr> <tr> <th align="center">Dimension</th> <td align="center"><code>17</code></td> <td>The variety of bytes the string desk occupies within the file.</td> </tr> <tr> <th align="center">Hyperlink</th> <td align="center" rowspan="3">N/A</td> <td rowspan="3">None of those fields apply to a string desk part.</td> </tr> <tr> <th align="center">Information</th> </tr> <tr> <th align="center">Deal with alignment</th> </tr> <tr> <th align="center">Entry dimension</th> <td align="center">N/A</td> <td>Though this part is a desk, the entries usually are not fixed-width.</td> </tr> </tbody> </table></div> <div class="explanation-container"> <h3><code>.shstrtab</code> part: part dimension</h3> <p>The <code>.shstrtab</code> part is the part of the ELF file containing the names of the part headers, as null-terminated ASCII strings. This part is outlined by the next fields:</p> <table> <thead> <tr> <th>Discipline</th> <th>Worth</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <th align="center">Title</th> <td align="center"><code>1</code> (<code>".shstrtab"</code>)</td> <td>Outlined by an index into the part title string desk, pointing to a null-terminated ASCII string.</td> </tr> <tr> <th align="center">Kind</th> <td align="center"><code>STRTAB</code></td> <td>A string desk. There could be different string tables within the file as effectively, although this one (by advantage of being referenced within the ELF header) is particularly the one used when trying up part names.</td> </tr> <tr> <th align="center">Flags</th> <td align="center" rowspan="2">N/A</td> <td rowspan="2">None of those fields apply to a string desk part.</td> </tr> <tr> <th align="center">Deal with</th> </tr> <tr> <th align="center">Offset</th> <td align="center"><code>0x106</code></td> <td>The place the info for the string desk is within the file.</td> </tr> <tr class="highlighted-field"> <th align="center">Dimension</th> <td align="center"><code>17</code></td> <td>The variety of bytes the string desk occupies within the file.</td> </tr> <tr> <th align="center">Hyperlink</th> <td align="center" rowspan="3">N/A</td> <td rowspan="3">None of those fields apply to a string desk part.</td> </tr> <tr> <th align="center">Information</th> </tr> <tr> <th align="center">Deal with alignment</th> </tr> <tr> <th align="center">Entry dimension</th> <td align="center">N/A</td> <td>Though this part is a desk, the entries usually are not fixed-width.</td> </tr> </tbody> </table></div> <div class="explanation-container"> <h3><code>.shstrtab</code> part: non-applicable fields</h3> <p>The <code>.shstrtab</code> part is the part of the ELF file containing the names of the part headers, as null-terminated ASCII strings. This part is outlined by the next fields:</p> <table> <thead> <tr> <th>Discipline</th> <th>Worth</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <th align="center">Title</th> <td align="center"><code>1</code> (<code>".shstrtab"</code>)</td> <td>Outlined by an index into the part title string desk, pointing to a null-terminated ASCII string.</td> </tr> <tr> <th align="center">Kind</th> <td align="center"><code>STRTAB</code></td> <td>A string desk. There could be different string tables within the file as effectively, although this one (by advantage of being referenced within the ELF header) is particularly the one used when trying up part names.</td> </tr> <tr> <th align="center">Flags</th> <td align="center" rowspan="2">N/A</td> <td rowspan="2">None of those fields apply to a string desk part.</td> </tr> <tr> <th align="center">Deal with</th> </tr> <tr> <th align="center">Offset</th> <td align="center"><code>0x106</code></td> <td>The place the info for the string desk is within the file.</td> </tr> <tr> <th align="center">Dimension</th> <td align="center"><code>17</code></td> <td>The variety of bytes the string desk occupies within the file.</td> </tr> <tr class="highlighted-field"> <th align="center">Hyperlink</th> <td align="center" rowspan="3">N/A</td> <td rowspan="3">None of those fields apply to a string desk part.</td> </tr> <tr class="highlighted-field"> <th align="center">Information</th> </tr> <tr class="highlighted-field"> <th align="center">Deal with alignment</th> </tr> <tr> <th align="center">Entry dimension</th> <td align="center">N/A</td> <td>Though this part is a desk, the entries usually are not fixed-width.</td> </tr> </tbody> </table></div> <div class="explanation-container"> <h3><code>.shstrtab</code> part: part entry dimension</h3> <p>The <code>.shstrtab</code> part is the part of the ELF file containing the names of the part headers, as null-terminated ASCII strings. This part is outlined by the next fields:</p> <table> <thead> <tr> <th>Discipline</th> <th>Worth</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <th align="center">Title</th> <td align="center"><code>1</code> (<code>".shstrtab"</code>)</td> <td>Outlined by an index into the part title string desk, pointing to a null-terminated ASCII string.</td> </tr> <tr> <th align="center">Kind</th> <td align="center"><code>STRTAB</code></td> <td>A string desk. There could be different string tables within the file as effectively, although this one (by advantage of being referenced within the ELF header) is particularly the one used when trying up part names.</td> </tr> <tr> <th align="center">Flags</th> <td align="center" rowspan="2">N/A</td> <td rowspan="2">None of those fields apply to a string desk part.</td> </tr> <tr> <th align="center">Deal with</th> </tr> <tr> <th align="center">Offset</th> <td align="center"><code>0x106</code></td> <td>The place the info for the string desk is within the file.</td> </tr> <tr> <th align="center">Dimension</th> <td align="center"><code>17</code></td> <td>The variety of bytes the string desk occupies within the file.</td> </tr> <tr> <th align="center">Hyperlink</th> <td align="center" rowspan="3">N/A</td> <td rowspan="3">None of those fields apply to a string desk part.</td> </tr> <tr> <th align="center">Information</th> </tr> <tr> <th align="center">Deal with alignment</th> </tr> <tr class="highlighted-field"> <th align="center">Entry dimension</th> <td align="center">N/A</td> <td>Though this part is a desk, the entries usually are not fixed-width.</td> </tr> </tbody> </table></div></div></div> <div class="file-section" data-section-name="program-header-table"> <h2>Program header desk</h2> <p>Every program header describes some piece of data that is wanted to organize this system for execution. Sometimes, this might be one thing like a “program section” that can go someplace contained in the digital reminiscence area. In contrast to the sections referenced by the part header, this system segments are extra about what’s within the course of after it has been loaded into reminiscence, not what’s within the ELF file. That mentioned, the info that goes into reminiscence is likely to be current on this file, however typically, the main target is on the runtime, not the compile and hyperlink time.</p> <p>Be aware: the order of the info in every program header is dependent upon whether or not the ELF file targets a 32-bit or a 64-bit structure. For instance, the section flags instantly follows the section sort for 64-bit architectures however comes later for 32-bit architectures. As a result of this file is configured to focus on a 64-bit structure, the bytes beneath will assume the corresponding format.</p> <div class="section-block"> <div class="explanation-container"> <h3>Phase sort</h3> <p>This section is a “loadable” section. This tells the system that N bytes from this file (at an outlined offset) might be loaded right into a reminiscence location (at one other outlined offset) occupying M bytes. If N is lower than M, then the remaining bytes in reminiscence might be initialized to zero.</p> <p>On this file, we have set it up in order that N and M are equal.</p> </p><div class="post thumbnail-seealso post-23425 type-post status-publish format-standard has-post-thumbnail hentry category-blinkingrobots thb-post-share-style3"> <span class="thb-seealso-text">See Also</span> <figure class="post-gallery"> <a href="https://blinkingrobots.com/bing-gained-less-than-1-market-share-since-adding-bing-chat/"><img loading="lazy" decoding="async" width="180" height="180" src="https://blinkingrobots.com/wp-content/uploads/2024/01/1705587819_Bing-Gained-Less-Than-1-Market-Share-Since-Adding-Bing-20x20.jpg" class="attachment-theissue-thumbnail-x2 size-theissue-thumbnail-x2 thb-lazyload lazyload wp-post-image" alt="" sizes="auto, (max-width: 180px) 100vw, 180px" data-src="https://blinkingrobots.com/wp-content/uploads/2024/01/1705587819_Bing-Gained-Less-Than-1-Market-Share-Since-Adding-Bing-180x180.jpg" data-sizes="auto" data-srcset="https://blinkingrobots.com/wp-content/uploads/2024/01/1705587819_Bing-Gained-Less-Than-1-Market-Share-Since-Adding-Bing-180x180.jpg 180w, https://blinkingrobots.com/wp-content/uploads/2024/01/1705587819_Bing-Gained-Less-Than-1-Market-Share-Since-Adding-Bing-150x150.jpg 150w, https://blinkingrobots.com/wp-content/uploads/2024/01/1705587819_Bing-Gained-Less-Than-1-Market-Share-Since-Adding-Bing-90x90.jpg 90w, https://blinkingrobots.com/wp-content/uploads/2024/01/1705587819_Bing-Gained-Less-Than-1-Market-Share-Since-Adding-Bing-20x19.jpg 20w" /></a> </figure> <div class="thumbnail-seealso-inner"> <aside class="post-category "> <a href="https://blinkingrobots.com/category/blinkingrobots/" rel="category tag">blinkingrobots</a> </aside> <div class="post-title"><h6><a href="https://blinkingrobots.com/bing-gained-less-than-1-market-share-since-adding-bing-chat/" title="Bing Gained Much less Than 1% Market Share Since Including Bing Chat"><span>Bing Gained Much less Than 1% Market Share Since Including Bing Chat</span></a></h6></div> </div> </div></p></div> <div class="explanation-container"> <h3>Phase flags</h3> <p>Readable and executable, which is the usual for executable segments. Avoiding writes permits a degree of safety, the place it`s assured the code being executed won’t out of the blue change throughout execution. (Permitting self-modifying code or JIT compilation requires some <a rel="nofollow" href="https://eli.thegreenplace.net/2013/11/05/how-to-jit-an-introduction">additional thought</a>.)</p> </p></div> <div class="explanation-container"> <h3>Offset in file</h3> <p>The offset, in bytes, the place the info for this section resides on this file. For this executable section, the info needs to be loaded from <code>0xF8</code>, which is the place the <code>.textual content</code> part is positioned.</p> </p></div> <div class="explanation-container"> <h3>Digital reminiscence tackle</h3> <p>The digital reminiscence tackle the place this section will reside as soon as it’s loaded. Discover that this is identical tackle because the “entry level” outlined within the ELF header, as this section is the place the executable code will reside for the executable to leap to as soon as the method is began.</p> </p></div> <div class="explanation-container"> <h3>Bodily reminiscence tackle</h3> <p>The bodily reminiscence tackle the place this section will reside as soon as it’s loaded. Solely related for programs the place bodily addressing is related, so for many usages, this worth is irrelevant.</p> </p></div> <div class="explanation-container"> <h3>Phase dimension in file</h3> <p>The variety of bytes the section knowledge takes up on this file.</p> </p></div> <div class="explanation-container"> <h3>Phase dimension in reminiscence</h3> <p>The variety of bytes the section knowledge takes up in reminiscence after the info has been loaded.</p> </p></div> <div class="explanation-container"> <h3>Phase aligmnent</h3> <p>The alignment of the section, in bytes, for <em>each</em> the info on this file and the section within the digital reminiscence area after it has been loaded. The truth that the alignment applies to each is necessary, as it’s required that the offset within the file is the same as the digital reminiscence tackle, modulo the alignment. That is certainly the case, as <code>0x4000F8 == 0xF8</code> (modulo <code>0x1000</code>).</p> </p></div></div></div> <div class="file-section" data-section-name="program-code"> <h2>Program code: <code>.textual content</code> part</h2> <p>The precise machine code that might be executed. Recall:</p> <ul> <li> <p>This code is referenced, as an offset into this file, as the info that might be loaded into the executable program section, as specified by the corresponding program header.</p> </li> <li> <p>The code will get loaded into a selected a part of the digital reminiscence area, once more as specified by the identical program header.</p> </li> <li> <p>Lastly, the ELF header tells the system to leap to that digital reminiscence tackle.</p> </li> </ul> <p>With the mix of those directives, the code on this part is precisely what will get executed when this program is run!</p> <p>See <a rel="nofollow" href="http://ref.x86asm.net/coder64.html">an x86-64 opcode reference guide</a> for extra data relating to how these opcodes correspond to particular directions.</p> <div class="section-block"> <div class="explanation-container"> <h3>Program code</h3> <p>This code makes the <code>exit</code> system name (quantity <code>60</code>) with an argument of <code>42</code>. Basically, this causes the method to return the standing code <code>42</code>.</p> <pre><code><strong>mov $60, %rax</strong> mov $42, %edi syscall</code></pre> </p></div> <div class="explanation-container"> <h3>Program code</h3> <p>This code makes the <code>exit</code> system name (quantity <code>60</code>) with an argument of <code>42</code>. Basically, this causes the method to return the standing code <code>42</code>.</p> <pre><code>mov $60, %rax <strong>mov $42, %edi</strong> syscall</code></pre> </p></div> <div class="explanation-container"> <h3>Program code</h3> <p>This code makes the <code>exit</code> system name (quantity <code>60</code>) with an argument of <code>42</code>. Basically, this causes the method to return the standing code <code>42</code>.</p> <pre><code>mov $60, %rax mov $42, %edi <strong>syscall</strong></code></pre> </p></div></div></div> <div class="file-section" data-section-name="section-name-string-table"> <h2>Part title string desk</h2> <p>This part is a string desk, of which there could also be others within the file. This specific string desk is what’s used to search for names of the sections, and subsequently, these strings are referenced by the part header desk. Every entry of this desk is an ASCII, null-terminated string, with the very first entry within the desk being simply the null-terminator.</p> <p>A reference into this desk is a zero-indexed byte offset into this part’s knowledge. For instance, to reference the primary non-empty string within the desk, the reference can be <code>1</code> for byte 1. By referencing into the center of one other string, it is potential to reuse widespread suffixes, as is finished with part names like <code>.textual content</code> and <code>.rel.textual content</code>. This optimization isn’t wanted for the minimal file, however is widespread in compiler-generated ELF information.</p> <div class="section-block"> <div class="explanation-container"> <h3>NULL</h3> <p>Simply the null terminator. That is required to be the zero byte by the ELF specification.</p> </p></div> <div class="explanation-container"> <h3><code>".textual content"</code></h3> <p>The title of the <code>.textual content</code> part.</p> </p></div> <div class="explanation-container"> <h3><code>".shstrtab"</code></h3> <p>The title of this part! Stands for <strong>s</strong>ection <strong>h</strong>eader <strong>str</strong>ing <strong>tab</strong>le.</p> </p></div></div></div> <p> </body> </div> <p><a href="https://scratchpad.avikdas.com/elf-explanation/elf-explanation.html">Source Link</a></p> </div> <aside class="thb-article-subscribe thb-newsletter-form"> <div class="thb-subscribe-icon-container"><svg version="1.1" class="thb-subscribe-icon" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 90 68" style="enable-background:new 0 0 90 68;" xml:space="preserve"> <path d="M89.9,7.9c0-4.3-3.6-7.9-7.9-7.9L7.8,0.1C3.5,0.1,0,3.8,0,8.1l0.1,52c0,4.3,3.6,7.9,7.9,7.9l74.2-0.1c4.3,0,7.8-3.6,7.8-8 L89.9,7.9z M7.8,4.4l74.2-0.1c0.4,0,0.8,0.1,1.2,0.2L48.9,39.4c-1,1.1-2.4,1.6-3.9,1.6c-1.5,0-2.8-0.5-3.9-1.6L6.7,4.6 C7,4.5,7.4,4.4,7.8,4.4z M82.2,63.6L7.9,63.8c-2,0-3.7-1.7-3.7-3.7l-0.1-52l34,34.4c1.8,1.8,4.3,2.9,6.8,2.9c2.5,0,5-1.1,6.8-2.9 L85.7,7.9l0.1,52C85.8,61.9,84.2,63.6,82.2,63.6z M80.5,55.7L62.9,40c-0.8-0.7-2.2-0.7-2.9,0.2c-0.7,0.8-0.7,2.2,0.2,3l17.6,15.7 c0.4,0.3,0.9,0.5,1.4,0.5c0.6,0,1.1-0.2,1.6-0.7C81.4,57.8,81.4,56.4,80.5,55.7z M26.9,40.3L9.5,55.8c-0.8,0.7-0.9,2.1-0.2,3 c0.5,0.5,1,0.7,1.7,0.7c0.5,0,0.9-0.2,1.4-0.5l17.3-15.5c0.8-0.7,0.9-2.1,0.2-3C29.1,39.6,27.8,39.5,26.9,40.3z"/> </svg> </div> <h4> Sign Up to Our Newsletter </h4> <p> Get notified about exclusive offers every week! </p> <form class="newsletter-form" action="#" method="post" data-security="7d1d4c180a"> <input placeholder="Your E-Mail" type="text" name="widget_subscribe" class="widget_subscribe large"> <button type="submit" name="submit" class="btn large">SIGN UP</button> <div class="thb-preloader"> <svg class="material-spinner" width="50px" height="50px" viewBox="0 0 66 66" xmlns="http://www.w3.org/2000/svg"> <circle class="material-path" fill="none" stroke-width="6" stroke-linecap="round" cx="33" cy="33" r="30"></circle> </svg> </div> </form> <div class="thb-custom-checkbox"> <input type="checkbox" id="thb-newsletter-privacy-618" name="thb-newsletter-privacy" class="thb-newsletter-privacy" checked='checked' > <label for="thb-newsletter-privacy-618"> I would like to receive news and special offers. </label> </div> </aside> <div class="thb-article-reactions" data-post-id="24956"> <h6>What's Your Reaction?</h6> <div class="row small-up-2 medium-up-5"> <div class="columns"> <div class="thb-reaction " data-slug="excited"> <div class="thb-reaction-image"> <span class="thb-reaction-name">Excited</span> </div> <span class="thb-reaction-count">0</span> </div> </div> <div class="columns"> <div class="thb-reaction " data-slug="happy"> <div class="thb-reaction-image"> <span class="thb-reaction-name">Happy</span> </div> <span class="thb-reaction-count">0</span> </div> </div> <div class="columns"> <div class="thb-reaction " data-slug="inlove"> <div class="thb-reaction-image"> <span class="thb-reaction-name">In Love</span> </div> <span class="thb-reaction-count">0</span> </div> </div> <div class="columns"> <div class="thb-reaction " data-slug="notsure"> <div class="thb-reaction-image"> <span class="thb-reaction-name">Not Sure</span> </div> <span class="thb-reaction-count">0</span> </div> </div> <div class="columns"> <div class="thb-reaction " data-slug="silly"> <div class="thb-reaction-image"> <span class="thb-reaction-name">Silly</span> </div> <span class="thb-reaction-count">0</span> </div> </div> </div> </div> <div class="thb-social-fixed sharing-counts-on"> <div class="social-button-holder social-comment-holder"> <svg xmlns="http://www.w3.org/2000/svg" version="1.1" x="0" y="0" width="14" height="14" viewBox="0 0 14 14" enable-background="new 0 0 14 14" xml:space="preserve"><path d="M3.6 14c0 0-0.1 0-0.1 0 -0.1-0.1-0.2-0.2-0.2-0.3v-2.7h-2.9C0.2 11 0 10.8 0 10.6V0.4C0 0.2 0.2 0 0.4 0h13.3C13.8 0 14 0.2 14 0.4v10.2c0 0.2-0.2 0.4-0.4 0.4H6.9L3.9 13.9C3.8 14 3.7 14 3.6 14zM0.7 10.2h2.9c0.2 0 0.4 0.2 0.4 0.4v2.2l2.5-2.4c0.1-0.1 0.2-0.1 0.2-0.1h6.6v-9.5H0.7V10.2z"/></svg><span>0 Comments</span> </div> <div class="social-button-holder"> <a href="https://www.facebook.com/sharer.php?u=https://blinkingrobots.com/a-minimal-complete-and-correct-elf-file/" class="social social-facebook" > <span class="thb-social-icon"> <i class="thb-icon-facebook"></i> </span> <span class="thb-social-count">0</span> </a> </div> <div class="social-button-holder"> <a href="https://pinterest.com/pin/create/bookmarklet/?url=https://blinkingrobots.com/a-minimal-complete-and-correct-elf-file/&media=https://blinkingrobots.com/wp-content/uploads/2024/02/A-minimal-complete-and-correct-ELF-file.svg_.svgxml.svg+xml" class="social social-pinterest" > <span class="thb-social-icon"> <i class="thb-icon-pinterest"></i> </span> <span class="thb-social-count">0</span> </a> </div> <div class="social-button-holder"> <a href="https://twitter.com/intent/tweet?text=A%20minimal,%20full%20and%20proper%20ELF%20file&via=blinkingrobots&url=https://blinkingrobots.com/a-minimal-complete-and-correct-elf-file/" class="social social-twitter" > <span class="thb-social-icon"> <i class="thb-icon-twitter"></i> </span> </a> </div> <div class="social-button-holder"> <a href="mailto:?subject=A%20minimal,%20full%20and%20proper%20ELF%20file&body=A%20minimal,%20full%20and%20proper%20ELF%20file%20https://blinkingrobots.com/a-minimal-complete-and-correct-elf-file/" class="social social-email" > <span class="thb-social-icon"> <i class="thb-icon-mail"></i> </span> </a> </div> </div> <aside class="post-bottom-meta hide"> <meta itemprop="mainEntityOfPage" content="https://blinkingrobots.com/a-minimal-complete-and-correct-elf-file/"> <span class="vcard author" itemprop="author" content="Phil Tadros"> <span class="fn">Phil Tadros</span> </span> <time class="time publised entry-date" datetime="2024-02-04T05:26:23-06:00" itemprop="datePublished" content="2024-02-04T05:26:23-06:00">February 4, 2024</time> <meta itemprop="dateModified" class="updated" content="2024-02-04T05:26:23-06:00"> <span itemprop="publisher" itemscope itemtype="https://schema.org/Organization"> <meta itemprop="name" content="Blinking Robots"> <span itemprop="logo" itemscope itemtype="https://schema.org/ImageObject"> <meta itemprop="url" content="https://blinkingrobots.wpengine.com/wp-content/uploads/2022/07/logo.png"> </span> </span> <span itemprop="image" itemscope itemtype="http://schema.org/ImageObject"> <meta itemprop="url" content="https://blinkingrobots.com/wp-content/uploads/2024/02/A-minimal-complete-and-correct-ELF-file.svg_.svgxml.svg+xml"> <meta itemprop="width" content="0" /> <meta itemprop="height" content="0" /> </span> </aside> <div class="thb-social-footer style2 sharing-counts-on"> <div class="thb-social-total"> <span class="thb-social-total-count">0</span> <span class="thb-social-total-text">Shares</span> </div> <div class="thb-social-footer-buttons"> <div class="social-button-holder"> <a href="https://www.facebook.com/sharer.php?u=https://blinkingrobots.com/a-minimal-complete-and-correct-elf-file/" class="social social-facebook" > <span class="thb-social-icon"> <i class="thb-icon-facebook"></i> <span class="thb-social-text">Share</span> </span> <span class="thb-social-count">0</span> </a> </div> <div class="social-button-holder"> <a href="https://twitter.com/intent/tweet?text=A%20minimal,%20full%20and%20proper%20ELF%20file&via=blinkingrobots&url=https://blinkingrobots.com/a-minimal-complete-and-correct-elf-file/" class="social social-twitter" > <span class="thb-social-icon"> <i class="thb-icon-twitter"></i> <span class="thb-social-text">Tweet</span> </span> </a> </div> <div class="social-button-holder"> <a href="https://pinterest.com/pin/create/bookmarklet/?url=https://blinkingrobots.com/a-minimal-complete-and-correct-elf-file/&media=https://blinkingrobots.com/wp-content/uploads/2024/02/A-minimal-complete-and-correct-ELF-file.svg_.svgxml.svg+xml" class="social social-pinterest" > <span class="thb-social-icon"> <i class="thb-icon-pinterest"></i> <span class="thb-social-text">Pin</span> </span> <span class="thb-social-count">0</span> </a> </div> <div class="social-button-holder"> <a href="mailto:?subject=A%20minimal,%20full%20and%20proper%20ELF%20file&body=A%20minimal,%20full%20and%20proper%20ELF%20file%20https://blinkingrobots.com/a-minimal-complete-and-correct-elf-file/" class="social social-email" > <span class="thb-social-icon"> <i class="thb-icon-mail"></i> <span class="thb-social-text">Share</span> </span> </a> </div> </div> </div> </div> </div> </article> </div> <aside class="sidebar"> <div id="media_image-1" class="widget style1 widget_media_image"><a href="#"><img width="600" height="1200" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="image wp-image-446 attachment-full size-full thb-lazyload lazyload" alt="" style="max-width: 100%; height: auto;" decoding="async" loading="lazy" data-src="https://blinkingrobots.com/wp-content/uploads/2019/01/s11.jpg" data-sizes="auto" /></a></div><hr class="thb-sticky-separator thb-fixed"><div id="thb_posts_widget-1" class="widget style1 thb_widget_posts"><div class="thb-widget-title"><span>Popular Posts</div></span><div class="post thumbnail-style4 post-29045 type-post status-publish format-standard hentry category-uncategorized thb-post-share-style3"> <figure class="post-gallery"> <a href="https://blinkingrobots.com/producthunts-ai-onslaught-a-need-for-balance/"> </a> </figure> <div class="thumbnail-style4-inner"> <div class="post-title"><h6><a href="https://blinkingrobots.com/producthunts-ai-onslaught-a-need-for-balance/" title="ProductHunt’s AI Onslaught: A Want for Stability"><span>ProductHunt’s AI Onslaught: A Want for Stability</span></a></h6></div> <aside class="thb-post-bottom"> <ul> <li class="post-date">January 4, 2025</li> <li class="post-read">2 mins Read</li> </ul> </aside> </div> </div> <div class="post thumbnail-style4 post-29043 type-post status-publish format-standard hentry category-uncategorized thb-post-share-style3"> <figure class="post-gallery"> <a href="https://blinkingrobots.com/exploring-web-designer-salaries-around-the-world/"> </a> </figure> <div class="thumbnail-style4-inner"> <div class="post-title"><h6><a href="https://blinkingrobots.com/exploring-web-designer-salaries-around-the-world/" title="Exploring Net Designer Salaries Across the World"><span>Exploring Net Designer Salaries Across the World</span></a></h6></div> <aside class="thb-post-bottom"> <ul> <li class="post-date">January 3, 2025</li> <li class="post-read">2 mins Read</li> </ul> </aside> </div> </div> <div class="post thumbnail-style4 post-29041 type-post status-publish format-standard hentry category-uncategorized thb-post-share-style3"> <figure class="post-gallery"> <a href="https://blinkingrobots.com/the-myth-of-incognito-mode-why-private-browsing-isnt-so-private/"> </a> </figure> <div class="thumbnail-style4-inner"> <div class="post-title"><h6><a href="https://blinkingrobots.com/the-myth-of-incognito-mode-why-private-browsing-isnt-so-private/" title="The Delusion of Incognito Mode: Why “Personal Searching” Isn’t So Personal"><span>The Delusion of Incognito Mode: Why “Personal Searching” Isn’t So Personal</span></a></h6></div> <aside class="thb-post-bottom"> <ul> <li class="post-date">January 2, 2025</li> <li class="post-read">1 min Read</li> </ul> </aside> </div> </div> </div> </aside> </div> <div class="row"> <div class="small-12 columns"> <section id="comments"> <a class="comment-button" id="comment-toggle"> View Comments (0) </a> <div class="row align-center"> <div class="small-12 medium-10 large-8 columns"> <!-- Start #comments --> <div class="comments-container"> <div id="respond" class="comment-respond"> <h4 id="reply-title" class="comment-reply-title">Leave a Reply</h4><form action="https://blinkingrobots.com/wp-comments-post.php" method="post" id="form-comment" class="comment-form"><p class="comment-notes">Your email address will not be published.</p><div class="row"><div class="small-12 columns"><textarea name="comment" id="comment" aria-required="true" data-required="true" rows="3" cols="58" class="full" placeholder="Your Comment"></textarea></div></div><div class="row"><div class="small-12 medium-6 large-4 columns"><label>Name<span class="required">*</span></label><input id="author" name="author" type="text" value="" size="30" aria-required="true" data-required="true" placeholder="Name" class="full"/></div> <div class="small-12 medium-6 large-4 columns"><label>E-mail<span class="required">*</span></label><input id="email" name="email" type="text" value="" size="30" aria-required="true" data-required="true" placeholder="E-mail" class="full" /></div> <div class="small-12 medium-12 large-4 columns"><label>Website</label><input name="url" size="30" id="url" value="" type="text" placeholder="Website" class="full"/></div></div> <p class="comment-form-cookies-consent"><input id="wp-comment-cookies-consent" name="wp-comment-cookies-consent" type="checkbox" value="yes" /> <label for="wp-comment-cookies-consent">Save my name, email, and website in this browser for the next time I comment.</label></p> <p class="form-submit"><input name="submit" type="submit" id="submit" class="submit btn full large" value="Submit Comment" /> <input type='hidden' name='comment_post_ID' value='24956' id='comment_post_ID' /> <input type='hidden' name='comment_parent' id='comment_parent' value='0' /> </p></form> </div><!-- #respond --> </div> <!-- .comments-container --> </div> </div> <!-- .row --> </section> </div> </div> <!-- .row --> </div> </div> <aside class="ad_container_bottom cf"><p><img class="aligncenter wp-image-114 size-full" src="https://theissue.fuelthemes.net/wp-content/uploads/sites/2/2019/01/t26-1.jpg" alt="" width="970" height="250" /></p></aside></div> </div> </div> <!-- End Main --> <!-- Start Footer --> <footer id="footer" class="footer light footer-full-width-off"> <div class="row wpb_row row-fluid row-o-content-middle row-flex"><div class="wpb_column columns medium-6 thb-dark-column small-12"><div class="vc_column-inner vc_custom_1548507701198"><div class="wpb_wrapper "> <div id="thb-slidetype-677ac4d1e6fe4" class="thb-slidetype " data-style="style1"> <h2><span class="thb-slidetype-entry"><span class="lines">Become a Member</span></span></h2> </div> <div class="vc_empty_space" id="thb-empty-space-677ac4d1e708b" style="height: 5px" ><span class="vc_empty_space_inner"></span></div> <div class="wpb_text_column wpb_content_element animation fade-in " > <div class="wpb_wrapper"> <p>Choose from our 6 and 12 month options and treat yourself or someone special. Subscribers enjoy free delivery.</p> </div> </div> <a id="thb-button-677ac4d1e722e" class="btn style2 large black no-radius animation fade-in " href="#" target="_self" role="button"> <span>Subscribe Now</span></a> </div></div></div><div class="wpb_column columns medium-6 thb-dark-column small-12"><div class="vc_column-inner "><div class="wpb_wrapper "> <div id="thb-image-677ac4d1e73c5" class="caption-style1 animation fade-in alignleft thb_image_link wp-caption"> <div class="thb-image-inner size_100"> <img loading="lazy" decoding="async" width="1000" height="692" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" class="thb_image retina_size attachment-full thb-lazyload lazyload" alt="" title="magazine_cover_1" data-src="https://blinkingrobots.com/wp-content/uploads/2019/01/magazine_cover_1.png" data-sizes="auto" /> </div> </div> </div></div></div></div><div class="row wpb_row row-fluid vc_custom_1548504948872"><div class="wpb_column columns medium-12 thb-dark-column small-12"><div class="vc_column-inner "><div class="wpb_wrapper "><div class="vc_separator wpb_content_element vc_separator_align_center vc_sep_width_100 vc_sep_pos_align_center vc_separator_no_text vc_sep_color_grey" ><span class="vc_sep_holder vc_sep_holder_l"><span class="vc_sep_line"></span></span><span class="vc_sep_holder vc_sep_holder_r"><span class="vc_sep_line"></span></span> </div></div></div></div></div> <style>.vc_custom_1548504948872{padding-bottom: 50px !important;}.vc_custom_1548507701198{padding-top: 5% !important;padding-bottom: 5% !important;}</style> <div class="row footer-row"> <div class="small-12 medium-6 large-4 columns"> <div id="thb_posts_widget-4" class="widget style1 thb_widget_posts"><div class="thb-widget-title"><span>Featured Posts</div></span><div class="post thumbnail-style4 post-29045 type-post status-publish format-standard hentry category-uncategorized thb-post-share-style3"> <figure class="post-gallery"> <a href="https://blinkingrobots.com/producthunts-ai-onslaught-a-need-for-balance/"> </a> </figure> <div class="thumbnail-style4-inner"> <div class="post-title"><h6><a href="https://blinkingrobots.com/producthunts-ai-onslaught-a-need-for-balance/" title="ProductHunt’s AI Onslaught: A Want for Stability"><span>ProductHunt’s AI Onslaught: A Want for Stability</span></a></h6></div> <aside class="thb-post-bottom"> <ul> <li class="post-date">January 4, 2025</li> <li class="post-read">2 mins Read</li> </ul> </aside> </div> </div> <div class="post thumbnail-style4 post-29043 type-post status-publish format-standard hentry category-uncategorized thb-post-share-style3"> <figure class="post-gallery"> <a href="https://blinkingrobots.com/exploring-web-designer-salaries-around-the-world/"> </a> </figure> <div class="thumbnail-style4-inner"> <div class="post-title"><h6><a href="https://blinkingrobots.com/exploring-web-designer-salaries-around-the-world/" title="Exploring Net Designer Salaries Across the World"><span>Exploring Net Designer Salaries Across the World</span></a></h6></div> <aside class="thb-post-bottom"> <ul> <li class="post-date">January 3, 2025</li> <li class="post-read">2 mins Read</li> </ul> </aside> </div> </div> <div class="post thumbnail-style4 post-29041 type-post status-publish format-standard hentry category-uncategorized thb-post-share-style3"> <figure class="post-gallery"> <a href="https://blinkingrobots.com/the-myth-of-incognito-mode-why-private-browsing-isnt-so-private/"> </a> </figure> <div class="thumbnail-style4-inner"> <div class="post-title"><h6><a href="https://blinkingrobots.com/the-myth-of-incognito-mode-why-private-browsing-isnt-so-private/" title="The Delusion of Incognito Mode: Why “Personal Searching” Isn’t So Personal"><span>The Delusion of Incognito Mode: Why “Personal Searching” Isn’t So Personal</span></a></h6></div> <aside class="thb-post-bottom"> <ul> <li class="post-date">January 2, 2025</li> <li class="post-read">1 min Read</li> </ul> </aside> </div> </div> </div> </div> <div class="small-12 medium-6 large-4 columns"> <div id="thb_posts_widget-11" class="widget style1 thb_widget_posts"><div class="thb-widget-title"><span>Trending Posts</div></span><div class="post thumbnail-style4 post-802 type-post status-publish format-standard has-post-thumbnail hentry category-blinkingrobots thb-post-share-style3"> <figure class="post-gallery"> <a href="https://blinkingrobots.com/overview-of-consistency-levels-in-database-systems/"> <img width="180" height="180" src="https://blinkingrobots.com/wp-content/uploads/2022/07/Overview-of-Consistency-Levels-in-Database-Systems-20x20.jpeg" class="attachment-theissue-thumbnail-x2 size-theissue-thumbnail-x2 thb-lazyload lazyload wp-post-image" alt="" decoding="async" loading="lazy" sizes="auto, (max-width: 180px) 100vw, 180px" data-src="https://blinkingrobots.com/wp-content/uploads/2022/07/Overview-of-Consistency-Levels-in-Database-Systems-180x180.jpeg" data-sizes="auto" data-srcset="https://blinkingrobots.com/wp-content/uploads/2022/07/Overview-of-Consistency-Levels-in-Database-Systems-180x180.jpeg 180w, https://blinkingrobots.com/wp-content/uploads/2022/07/Overview-of-Consistency-Levels-in-Database-Systems-150x150.jpeg 150w, https://blinkingrobots.com/wp-content/uploads/2022/07/Overview-of-Consistency-Levels-in-Database-Systems-90x90.jpeg 90w, https://blinkingrobots.com/wp-content/uploads/2022/07/Overview-of-Consistency-Levels-in-Database-Systems-20x19.jpeg 20w" /> </a> </figure> <div class="thumbnail-style4-inner"> <div class="post-title"><h6><a href="https://blinkingrobots.com/overview-of-consistency-levels-in-database-systems/" title="Overview of Consistency Ranges in Database Techniques"><span>Overview of Consistency Ranges in Database Techniques</span></a></h6></div> <aside class="thb-post-bottom"> <ul> <li class="post-date">July 29, 2022</li> <li class="post-read">7 mins Read</li> </ul> </aside> </div> </div> <div class="post thumbnail-style4 post-804 type-post status-publish format-standard has-post-thumbnail hentry category-blinkingrobots thb-post-share-style3"> <figure class="post-gallery"> <a href="https://blinkingrobots.com/do-data-driven-companies-actually-win/"> <img width="180" height="180" src="https://blinkingrobots.com/wp-content/uploads/2022/07/1659081972_Do-data-driven-companies-actually-win-20x20.png" class="attachment-theissue-thumbnail-x2 size-theissue-thumbnail-x2 thb-lazyload lazyload wp-post-image" alt="" decoding="async" loading="lazy" sizes="auto, (max-width: 180px) 100vw, 180px" data-src="https://blinkingrobots.com/wp-content/uploads/2022/07/1659081972_Do-data-driven-companies-actually-win-180x180.png" data-sizes="auto" data-srcset="https://blinkingrobots.com/wp-content/uploads/2022/07/1659081972_Do-data-driven-companies-actually-win-180x180.png 180w, https://blinkingrobots.com/wp-content/uploads/2022/07/1659081972_Do-data-driven-companies-actually-win-150x150.png 150w, https://blinkingrobots.com/wp-content/uploads/2022/07/1659081972_Do-data-driven-companies-actually-win-90x90.png 90w, https://blinkingrobots.com/wp-content/uploads/2022/07/1659081972_Do-data-driven-companies-actually-win-20x19.png 20w" /> </a> </figure> <div class="thumbnail-style4-inner"> <div class="post-title"><h6><a href="https://blinkingrobots.com/do-data-driven-companies-actually-win/" title="Do data-driven firms truly win?"><span>Do data-driven firms truly win?</span></a></h6></div> <aside class="thb-post-bottom"> <ul> <li class="post-date">July 29, 2022</li> <li class="post-read">7 mins Read</li> </ul> </aside> </div> </div> <div class="post thumbnail-style4 post-806 type-post status-publish format-standard has-post-thumbnail hentry category-blinkingrobots thb-post-share-style3"> <figure class="post-gallery"> <a href="https://blinkingrobots.com/superman-64-wikipedia/"> <img width="180" height="125" src="https://blinkingrobots.com/wp-content/uploads/2022/07/Superman-64-Wikipedia-20x20.jpg" class="attachment-theissue-thumbnail-x2 size-theissue-thumbnail-x2 thb-lazyload lazyload wp-post-image" alt="" decoding="async" loading="lazy" data-src="https://blinkingrobots.com/wp-content/uploads/2022/07/Superman-64-Wikipedia-180x125.jpg" data-sizes="auto" /> </a> </figure> <div class="thumbnail-style4-inner"> <div class="post-title"><h6><a href="https://blinkingrobots.com/superman-64-wikipedia/" title="Superman 64 – Wikipedia"><span>Superman 64 – Wikipedia</span></a></h6></div> <aside class="thb-post-bottom"> <ul> <li class="post-date">July 29, 2022</li> <li class="post-read">16 mins Read</li> </ul> </aside> </div> </div> </div> </div> <div class="small-12 large-4 columns"> <div id="thb_posts_widget-5" class="widget style1 thb_widget_posts"><div class="thb-widget-title"><span>Most Shared</div></span><div class="post thumbnail-style4 post-6689 type-post status-publish format-standard has-post-thumbnail hentry category-blinkingrobots thb-post-share-style3"> <figure class="post-gallery"> <a href="https://blinkingrobots.com/the-upper-atmosphere-is-cooling-prompting-new-climate-concerns/"> <img width="180" height="180" src="https://blinkingrobots.com/wp-content/uploads/2023/05/The-Upper-Atmosphere-Is-Cooling-Prompting-New-Climate-Concerns-20x20.jpeg" class="attachment-theissue-thumbnail-x2 size-theissue-thumbnail-x2 thb-lazyload lazyload wp-post-image" alt="" decoding="async" loading="lazy" sizes="auto, (max-width: 180px) 100vw, 180px" data-src="https://blinkingrobots.com/wp-content/uploads/2023/05/The-Upper-Atmosphere-Is-Cooling-Prompting-New-Climate-Concerns-180x180.jpeg" data-sizes="auto" data-srcset="https://blinkingrobots.com/wp-content/uploads/2023/05/The-Upper-Atmosphere-Is-Cooling-Prompting-New-Climate-Concerns-180x180.jpeg 180w, https://blinkingrobots.com/wp-content/uploads/2023/05/The-Upper-Atmosphere-Is-Cooling-Prompting-New-Climate-Concerns-150x150.jpeg 150w, https://blinkingrobots.com/wp-content/uploads/2023/05/The-Upper-Atmosphere-Is-Cooling-Prompting-New-Climate-Concerns-90x90.jpeg 90w, https://blinkingrobots.com/wp-content/uploads/2023/05/The-Upper-Atmosphere-Is-Cooling-Prompting-New-Climate-Concerns-20x19.jpeg 20w" /> </a> </figure> <div class="thumbnail-style4-inner"> <div class="post-title"><h6><a href="https://blinkingrobots.com/the-upper-atmosphere-is-cooling-prompting-new-climate-concerns/" title="The Higher Ambiance Is Cooling, Prompting New Local weather Considerations"><span>The Higher Ambiance Is Cooling, Prompting New Local weather Considerations</span></a></h6></div> <aside class="thb-post-bottom"> <ul> <li class="post-date">May 19, 2023</li> <li class="post-read">9 mins Read</li> </ul> </aside> </div> </div> <div class="post thumbnail-style4 post-19224 type-post status-publish format-standard has-post-thumbnail hentry category-blinkingrobots thb-post-share-style3"> <figure class="post-gallery"> <a href="https://blinkingrobots.com/not-everything-is-googles-fault-just-many-things/"> <img width="180" height="180" src="https://blinkingrobots.com/wp-content/uploads/2023/12/1701521232_Not-Everything-Is-Googles-Fault-Just-Many-Things-20x20.png" class="attachment-theissue-thumbnail-x2 size-theissue-thumbnail-x2 thb-lazyload lazyload wp-post-image" alt="" decoding="async" loading="lazy" sizes="auto, (max-width: 180px) 100vw, 180px" data-src="https://blinkingrobots.com/wp-content/uploads/2023/12/1701521232_Not-Everything-Is-Googles-Fault-Just-Many-Things-180x180.png" data-sizes="auto" data-srcset="https://blinkingrobots.com/wp-content/uploads/2023/12/1701521232_Not-Everything-Is-Googles-Fault-Just-Many-Things-180x180.png 180w, https://blinkingrobots.com/wp-content/uploads/2023/12/1701521232_Not-Everything-Is-Googles-Fault-Just-Many-Things-150x150.png 150w, https://blinkingrobots.com/wp-content/uploads/2023/12/1701521232_Not-Everything-Is-Googles-Fault-Just-Many-Things-90x90.png 90w, https://blinkingrobots.com/wp-content/uploads/2023/12/1701521232_Not-Everything-Is-Googles-Fault-Just-Many-Things-20x20.png 20w, https://blinkingrobots.com/wp-content/uploads/2023/12/1701521232_Not-Everything-Is-Googles-Fault-Just-Many-Things-48x48.png 48w" /> </a> </figure> <div class="thumbnail-style4-inner"> <div class="post-title"><h6><a href="https://blinkingrobots.com/not-everything-is-googles-fault-just-many-things/" title="Not The whole lot Is Google’s Fault (Simply Many Issues)"><span>Not The whole lot Is Google’s Fault (Simply Many Issues)</span></a></h6></div> <aside class="thb-post-bottom"> <ul> <li class="post-date">December 2, 2023</li> <li class="post-read">5 mins Read</li> </ul> </aside> </div> </div> <div class="post thumbnail-style4 post-1567 type-post status-publish format-standard has-post-thumbnail hentry category-blinkingrobots thb-post-share-style3"> <figure class="post-gallery"> <a href="https://blinkingrobots.com/legend-of-zelda-cartoon-an-oral-history-of-the-nintendo-tv-show/"> <img width="180" height="180" src="https://blinkingrobots.com/wp-content/uploads/2023/01/Legend-of-Zelda-cartoon-An-oral-history-of-the-Nintendo-20x20.jpg" class="attachment-theissue-thumbnail-x2 size-theissue-thumbnail-x2 thb-lazyload lazyload wp-post-image" alt="" decoding="async" loading="lazy" sizes="auto, (max-width: 180px) 100vw, 180px" data-src="https://blinkingrobots.com/wp-content/uploads/2023/01/Legend-of-Zelda-cartoon-An-oral-history-of-the-Nintendo-180x180.jpg" data-sizes="auto" data-srcset="https://blinkingrobots.com/wp-content/uploads/2023/01/Legend-of-Zelda-cartoon-An-oral-history-of-the-Nintendo-180x180.jpg 180w, https://blinkingrobots.com/wp-content/uploads/2023/01/Legend-of-Zelda-cartoon-An-oral-history-of-the-Nintendo-150x150.jpg 150w, https://blinkingrobots.com/wp-content/uploads/2023/01/Legend-of-Zelda-cartoon-An-oral-history-of-the-Nintendo-90x90.jpg 90w, https://blinkingrobots.com/wp-content/uploads/2023/01/Legend-of-Zelda-cartoon-An-oral-history-of-the-Nintendo-20x19.jpg 20w" /> </a> </figure> <div class="thumbnail-style4-inner"> <div class="post-title"><h6><a href="https://blinkingrobots.com/legend-of-zelda-cartoon-an-oral-history-of-the-nintendo-tv-show/" title="Legend of Zelda cartoon: An oral historical past of the Nintendo TV present"><span>Legend of Zelda cartoon: An oral historical past of the Nintendo TV present</span></a></h6></div> <aside class="thb-post-bottom"> <ul> <li class="post-date">January 14, 2023</li> <li class="post-read">16 mins Read</li> </ul> </aside> </div> </div> </div> </div> </div> </footer> <!-- End Footer --> <!-- Start subfooter --> <div class="subfooter style2 light subfooter-full-width-off"> <div class="row align-center subfooter-row"> <div class="small-12 medium-10 large-6 text-center"> <div class="footer-logo-holder"> <a href="https://blinkingrobots.com/" class="footer-logolink" title="Blinking Robots"> <img src="https://blinkingrobots.wpengine.com/wp-content/uploads/2022/07/logo.png" class="logoimg" loading="lazy" alt="Blinking Robots"/> </a> </div> <p><span style="font-size: 11px">2022 Blinking Robots. </span><br /><span style="font-size: 11px">WordPress by <a href="https://doejo.com/">Doejo</a></span></p> </div> </div> </div> <!-- End Subfooter --> <a id="scroll_to_top" class="style1"> <span>Scroll To Top</span> </a> <!-- Start Content Click Capture --> <div class="click-capture"></div> <!-- End Content Click Capture --> <!-- Start Mobile Menu --> <nav id="mobile-menu" class="style1 side-panel light dark-scroll" data-behaviour="thb-submenu"> <a class="thb-mobile-close"><div><span></span><span></span></div></a> <div class="logo-holder mobilemenu-logo-holder"> <a href="https://blinkingrobots.com/" class="logolink" title="Blinking Robots"> <img src="https://blinkingrobots.wpengine.com/wp-content/uploads/2022/07/logo.png" class="logoimg logo-dark" alt="Blinking Robots" data-logo-alt="https://blinkingrobots.wpengine.com/wp-content/uploads/2022/07/logo.png" /> </a> </div> <div class="custom_scroll side-panel-inner" id="menu-scroll"> <div class="mobile-menu-top"> </div> <div class="mobile-menu-bottom"> <div id="thb_posts_widget-3" class="widget style1 thb_widget_posts"><div class="thb-widget-title"><span>Trending Posts</div></span><div class="post thumbnail-style4 post-29045 type-post status-publish format-standard hentry category-uncategorized thb-post-share-style3"> <figure class="post-gallery"> <a href="https://blinkingrobots.com/producthunts-ai-onslaught-a-need-for-balance/"> </a> </figure> <div class="thumbnail-style4-inner"> <div class="post-title"><h6><a href="https://blinkingrobots.com/producthunts-ai-onslaught-a-need-for-balance/" title="ProductHunt’s AI Onslaught: A Want for Stability"><span>ProductHunt’s AI Onslaught: A Want for Stability</span></a></h6></div> <aside class="thb-post-bottom"> <ul> <li class="post-date">January 4, 2025</li> <li class="post-read">2 mins Read</li> </ul> </aside> </div> </div> <div class="post thumbnail-style4 post-29043 type-post status-publish format-standard hentry category-uncategorized thb-post-share-style3"> <figure class="post-gallery"> <a href="https://blinkingrobots.com/exploring-web-designer-salaries-around-the-world/"> </a> </figure> <div class="thumbnail-style4-inner"> <div class="post-title"><h6><a href="https://blinkingrobots.com/exploring-web-designer-salaries-around-the-world/" title="Exploring Net Designer Salaries Across the World"><span>Exploring Net Designer Salaries Across the World</span></a></h6></div> <aside class="thb-post-bottom"> <ul> <li class="post-date">January 3, 2025</li> <li class="post-read">2 mins Read</li> </ul> </aside> </div> </div> <div class="post thumbnail-style4 post-29041 type-post status-publish format-standard hentry category-uncategorized thb-post-share-style3"> <figure class="post-gallery"> <a href="https://blinkingrobots.com/the-myth-of-incognito-mode-why-private-browsing-isnt-so-private/"> </a> </figure> <div class="thumbnail-style4-inner"> <div class="post-title"><h6><a href="https://blinkingrobots.com/the-myth-of-incognito-mode-why-private-browsing-isnt-so-private/" title="The Delusion of Incognito Mode: Why “Personal Searching” Isn’t So Personal"><span>The Delusion of Incognito Mode: Why “Personal Searching” Isn’t So Personal</span></a></h6></div> <aside class="thb-post-bottom"> <ul> <li class="post-date">January 2, 2025</li> <li class="post-read">1 min Read</li> </ul> </aside> </div> </div> <div class="post thumbnail-style4 post-29039 type-post status-publish format-standard hentry category-uncategorized thb-post-share-style3"> <figure class="post-gallery"> <a href="https://blinkingrobots.com/welcoming-2023-with-excitement-and-optimism/"> </a> </figure> <div class="thumbnail-style4-inner"> <div class="post-title"><h6><a href="https://blinkingrobots.com/welcoming-2023-with-excitement-and-optimism/" title="Welcoming 2023 with Pleasure and Optimism!"><span>Welcoming 2023 with Pleasure and Optimism!</span></a></h6></div> <aside class="thb-post-bottom"> <ul> <li class="post-date">December 31, 2024</li> <li class="post-read">1 min Read</li> </ul> </aside> </div> </div> </div> <div class="thb-social-links-container thb-social-horizontal mono-icons"> <div class="thb-social-link-wrap"> <a href="https://twitter.com/blinkingrobots" target="_blank" class="thb-social-link social-link-twitter" rel="noreferrer"> <div class="thb-social-label-container"> <div class="thb-social-icon-container"><i class="thb-icon-twitter"></i></div> <div class="thb-social-label">Twitter</div> </div> </a> </div> </div> </div> </div> </nav> <!-- End Mobile Menu --> <script type="text/javascript"> function genesisBlocksShare( url, title, w, h ){ var left = ( window.innerWidth / 2 )-( w / 2 ); var top = ( window.innerHeight / 2 )-( h / 2 ); return window.open(url, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width=600, height=600, top='+top+', left='+left); } </script> <aside class="thb-cookie-bar"> <a class="thb-mobile-close"><div><span></span><span></span></div></a> <div class="thb-cookie-text"> <p>Our site uses cookies. Learn more about our use of cookies: <a href="#">cookie policy</a></p> </div> <a class="btn grey button-accept">I accept use of cookies</a> </aside> <script type="text/html" id="wpb-modifications"></script><link rel='stylesheet' id='js_composer_front-css' href='https://blinkingrobots.com/wp-content/plugins/js_composer/assets/css/js_composer.min.css?ver=6.9.0' type='text/css' media='all' /> <script type="text/javascript" src="https://blinkingrobots.com/wp-content/plugins/genesis-blocks/dist/assets/js/dismiss.js?ver=1735394964" id="genesis-blocks-dismiss-js-js"></script> <script type="text/javascript" src="https://blinkingrobots.com/wp-content/themes/theissue/assets/js/vendor.min.js?ver=1.6.9" id="thb-vendor-js"></script> <script type="text/javascript" src="https://cdn.plyr.io/3.6.2/plyr.polyfilled.js?ver=1.6.9" id="plyr-js"></script> <script type="text/javascript" src="https://blinkingrobots.com/wp-includes/js/underscore.min.js?ver=1.13.7" id="underscore-js"></script> <script type="text/javascript" id="thb-app-js-extra"> /* <![CDATA[ */ var themeajax = {"url":"https:\/\/blinkingrobots.com\/wp-admin\/admin-ajax.php","l10n":{"of":"%curr% of %total%","just_of":"of","loading":"Loading","lightbox_loading":"Loading...","nomore":"No More Posts","nomore_products":"All Products Loaded","loadmore":"Load More","added":"Added To Cart","no_results":"No Results Found","results_found":"Results Found","results_all":"View All Results","copied":"Copied","prev":"Prev","next":"Next","pinit":"PIN IT","adding_to_cart":"Adding to Cart"},"svg":{"prev_arrow":"<svg version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" x=\"0px\" y=\"0px\"\r\n\t width=\"30px\" height=\"30px\" viewBox=\"0 0 30 30\" enable-background=\"new 0 0 30 30\" xml:space=\"preserve\">\r\n<path class=\"thb-arrow-first\" d=\"M12.757,14.997l3.585,3.243c0.201,0.174,0.201,0.459,0,0.635c-0.203,0.175-0.532,0.175-0.734,0l-3.948-3.557\r\n\tc-0.203-0.175-0.203-0.459,0-0.635l3.948-3.557c0.202-0.175,0.531-0.175,0.734,0c0.201,0.175,0.201,0.459,0,0.635L12.757,14.997z\"\/>\r\n<path class=\"thb-arrow-second\" d=\"M12.757,14.997l3.585,3.243c0.201,0.174,0.201,0.459,0,0.635c-0.203,0.175-0.533,0.175-0.734,0l-3.948-3.557\r\n\tc-0.203-0.175-0.203-0.459,0-0.635l3.948-3.557c0.201-0.175,0.531-0.175,0.734,0c0.201,0.175,0.201,0.459,0,0.635L12.757,14.997z\"\/>\r\n<\/svg>\r\n","next_arrow":"<svg version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" x=\"0px\" y=\"0px\"\r\n\t width=\"30px\" height=\"30px\" viewBox=\"0 0 30 30\" enable-background=\"new 0 0 30 30\" xml:space=\"preserve\">\r\n<path class=\"thb-arrow-first\" d=\"M13.659,11.76c-0.201-0.175-0.201-0.459,0-0.635c0.203-0.175,0.532-0.175,0.734,0l3.947,3.557\r\n\tc0.203,0.176,0.203,0.46,0,0.635l-3.947,3.557c-0.202,0.175-0.531,0.175-0.734,0c-0.201-0.176-0.201-0.461,0-0.635l3.585-3.243\r\n\tL13.659,11.76z\"\/>\r\n<path class=\"thb-arrow-second\" d=\"M13.659,11.76c-0.201-0.175-0.201-0.459,0-0.635c0.203-0.175,0.533-0.175,0.734,0l3.948,3.557\r\n\tc0.203,0.176,0.203,0.46,0,0.635l-3.948,3.557c-0.201,0.175-0.531,0.175-0.734,0c-0.201-0.176-0.201-0.461,0-0.635l3.585-3.243\r\n\tL13.659,11.76z\"\/>\r\n<\/svg>\r\n","added_arrow":"","close_arrow":"<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 64 64\" enable-background=\"new 0 0 64 64\"><g fill=\"none\" stroke=\"#000\" stroke-width=\"2\" stroke-miterlimit=\"10\"><path d=\"m18.947 17.15l26.1 25.903\"\/><path d=\"m19.05 43.15l25.902-26.1\"\/><\/g><\/svg>","pagination":"<svg version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"thb-pagination-svg\" width=\"14px\" height=\"14px\" viewBox=\"0 0 16 16\" preserveAspectRatio=\"none\"><circle cx=\"8\" cy=\"8\" r=\"5.5\"><\/circle><\/svg>","preloader":"<svg class=\"material-spinner\" width=\"50px\" height=\"50px\" viewBox=\"0 0 66 66\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n <circle class=\"material-path\" fill=\"none\" stroke-width=\"6\" stroke-linecap=\"round\" cx=\"33\" cy=\"33\" r=\"30\"><\/circle>\n<\/svg>"},"settings":{"infinite_count":"","site_url":"https:\/\/blinkingrobots.com","current_url":"https:\/\/blinkingrobots.com\/a-minimal-complete-and-correct-elf-file\/","fixed_header_scroll":"off","fixed_header_padding":"","general_search_ajax":"on","newsletter":"off","newsletter_length":"1","newsletter_delay":"0","newsletter_mailchimp":false,"page_transition":"off","page_transition_style":"thb-fade","page_transition_in_speed":"1000","page_transition_out_speed":"500","shop_product_listing_pagination":"style1","right_click":"off","cart_url":false,"is_cart":false,"is_checkout":false,"touch_threshold":5,"mobile_menu_animation_speed":"0.3","thb_custom_video_player":"on","viai_publisher_id":""}}; /* ]]> */ </script> <script type="text/javascript" src="https://blinkingrobots.com/wp-content/themes/theissue/assets/js/app.min.js?ver=1.6.9" id="thb-app-js"></script> <script type="text/javascript" id="wpb_composer_front_js-js-extra"> /* <![CDATA[ */ var vcData = {"currentTheme":{"slug":"theissue"}}; /* ]]> */ </script> <script type="text/javascript" src="https://blinkingrobots.com/wp-content/plugins/js_composer/assets/js/dist/js_composer_front.min.js?ver=6.9.0" id="wpb_composer_front_js-js"></script> <aside class="thb-search-popup" data-security="a551c7d28a"> <a class="thb-mobile-close"><div><span></span><span></span></div></a> <div class="thb-close-text">PRESS ESC TO CLOSE</div> <div class="row align-center align-middle search-main-row"> <div class="small-12 medium-8 columns"> <form method="get" class="searchform" action="https://blinkingrobots.com/"> <input type="text" name="s" class="search-field" placeholder="Type Here to Search" /> </form> <div class="thb-autocomplete-wrapper"> <div class="thb-preloader"> <svg class="material-spinner" width="50px" height="50px" viewBox="0 0 66 66" xmlns="http://www.w3.org/2000/svg"> <circle class="material-path" fill="none" stroke-width="6" stroke-linecap="round" cx="33" cy="33" r="30"></circle> </svg> </div> </div> </div> </div> </aside> </div> <!-- End Wrapper --> </body> </html> <!-- Cache served by breeze CACHE - Last modified: Sun, 05 Jan 2025 17:43:45 GMT -->