• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            無我

            讓內(nèi)心永遠燃燒著偉大的光明的精神之火!
            靈活的思考,嚴謹?shù)膶崿F(xiàn)
            豪邁的氣魄、頑強的意志和周全的思考

            format of object files[from internet]

            Here     is   the   format   of   object   files   generated   by   the     macro     assembler  
              and   Microsoft   C   Compiler.  
               
              +---------------------------------------+  
              |   BYTE Record   type |  
              | 80 Module   name |  
              | 82 |  
              | 84 |  
              | 86 |  
              | 88 |  
              | 8A End   of   module |  
              | 8C External   symbols |  
              | 8E |  
              | 90 Public   symbols |  
              | 92 |  
              | 94 Line   number   info |  
              | 96 Segment/Group   symbols |  
              | 98 Info   for   specific   seg |  
              | 9A Info   for   specific   group |  
              | 9C Relocation   list |  
              | 9E |  
              | A0 Segment   data |  
              | A2 Duplicated   Segment   Data |  
              +---------------------------------------+  
              |   WORD Count   of   bytes   in   record,   inc- |  
              | luding   the   record   checksum,   but |  
              | not   including   record   type   or   |  
              | byte   count |  
              +---------------------------------------+  
              |   .... Record     Data     .... |  
              | See   specific   record   for   details   |  
              +---------------------------------------+  
              |   BYTE Checksum   of   all   characters   in       |  
              | record,   including   record   type |  
              +---------------------------------------+  
               
               
              Now   for   each   one   of   the   record   types.     In   the   following     descriptions,  
              certain     terminology   will   be   used.     Many   of   these   record   use   a     number  
              which     relates   some   particular   field   to   a   value.     These   numbers     range  
              from     1-255.     In   some   cases,   this   number   will   relate   an     instantiation  
              of     a   symbol   to   the   name   of   the   symbol.     In   other   cases,     this     number  
              will     relate   the   segment   or   group   instance   with   the   actual   segment     or  
              group   of   the   instantiation.  
               
              Module   Name   record   (80)   This   record   specifies   the   name   of   the     module.  
              The   record   data   field   will   be   filled   in   as   follows:  
              +---------------------------------------+  
              |   BYTE Length   of   Module   name |  
              +---------------------------------------+  
              |   (Length)   BYTES       Module   Name |  
              +---------------------------------------+  
               
              End   of   Module   record   (8A)  
              This   record   specifies   the   end   of   the   module.     The   record     data     field  
              will   be   filled   with   a   zero   byte  
              +---------------------------------------+  
              |   BYTE Zero |  
              +---------------------------------------+  
               
               
              External     Symbols   Record   (8C)  
              This     record   specifies   the   names   of   the   external   symbols.     The     record  
              data     field   is   filled   in   as   follows,   and   record   data     fields     defining  
              the   symbols   may   appear   more   than   once.  
              +---------------------------------------+  
              |   BYTE Length     of   external   symbol |  
              +---------------------------------------+  
              |   (Length)   BYTES         External   symbol   name|  
              +---------------------------------------+  
              |   BYTE Zero |  
              +---------------------------------------+  
               
              Public   Symbols   Record   (90)  
              This   record   defines   the   symbols   declared   as   public   symbols.     Only     one  
              symbol     will   appear   per   record   data   field.     The   record   data     field     is  
              defined   as   follows:  
              +---------------------------------------+  
              |   BYTE Zero |  
              +---------------------------------------+  
              |   BYTE Segment   number   in   which   symbol |  
              | is   defined |  
              +---------------------------------------+  
              |   BYTE Length   of   symbol |  
              +---------------------------------------+  
              |   (Length)   BYTES         Public   Symbol   Name |  
              +---------------------------------------+  
              |   WORD Offset   where   symbol   defined |  
              +---------------------------------------+  
              |   BYTE Zero |  
              +---------------------------------------+  
               
               
              Line   Number   Information   Record   (94)  
              This     record     defines       line       number       debugging     information.       This  
              information   is   in   the   form   of   the   line   number   of   the   source   file,     and  
              the     address     at     which   the   code   corresponding     to     that     line     number  
              starts.     The   record   data   field   will   be   filled   in   as   follows:  
              +---------------------------------------+  
              |   BYTE Zero |  
              +---------------------------------------+  
              |   BYTE Segment   number |  
              +---------------------------------------+  
              |   WORD Line   number   in   source   file |  
              +---------------------------------------+  
              |   WORD Offset   of   start   of   line |  
              +---------------------------------------+  
               
              For     this     record,   the   last   two   field   may   be   repeated     any     number     of  
              times.  
               
               
              Segment/Group   Symbols   Record     (96)  
              This   record   defines   the   names   of   the   symbols   used   in   the   module     name,  
              segment   names,   and   group   names.     The   segment   symbol   numbers   the   relate  
              the     segment     numbers     to   this   name.     The   record   data     field     will     be  
              filled   in   as   follows:  
              +---------------------------------------+  
              |   BYTE Zero |  
              +---------------------------------------+  
              |   BYTE Length   of   symbol   name |  
              +---------------------------------------+  
              |   (Length)   BYTES     Symbol   Name |  
              +---------------------------------------+  
               
              The   last   two   field   may   be   repeated   any   number   of   times.  
               
               
              Segment   Specific   Information   Record     (98)  
              This     record   defines   the   combine   and   alignment   classes   of     a     specific  
              segment.       Segment     numbers   are   assigned   in   the   order   in     which     these  
              records     may   appear.     The   first   occurrence   of   this   record   defines     the  
              first   memory   segment,   and   so   on.     The   record   data   field   will   be   filled  
              in   as   follows:  
              +---------------------------------------+  
              |   BYTE Combine/Alignment   Class: |  
              | is   defined   as   0AAXPS00 |  
              | where   AA   is   the   alignment   class |  
              | 00=AT   (Specific   segment   |  
              |       alignment) |  
              | 01=BYTE   boundary |  
              | 10=WORD   boundary |  
              | 11=PARAGRAPH   boundary |  
              |             X   is   unknown:   used   in   stk |  
              |             P   is   a   public   segment |  
              |             S   is   a   stack   segment |  
              +---------------------------------------+  
              |   WORD Segment   size   in   bytes |  
              +---------------------------------------+  
              |   BYTE Segment/Group   Symbol   Number |  
              +---------------------------------------+  
              |   BYTE Not   sure   just   yet. |  
              +---------------------------------------+  
              |   BYTE Not   sure   just   yet:   usually   1 |  
              +---------------------------------------+  
               
               
              Group   Specific   Information   Record     (9A)  
              This     record   defines   the   memory   segments   which   will   be   contained   in     a  
              group.     The   format   of   the   record   data   field   is   defines   as   follows:  
              +---------------------------------------+  
              |   BYTE Segment/Group   Symbol   Number |  
              +---------------------------------------+  
              |   BYTE FF |  
              +---------------------------------------+  
              |   BYTE Segment   number |  
              +---------------------------------------+  
               
              The   last   two   field   will   be   repeated   for   every   segment   in   a   group.  
               
               
              Relocation   List   Record     (9C)  
              This   record   defines   the   offsets   in   the   just   previously   defined     memory  
              segment     which   need   fixing   up.     Multiple   fixups   may   occur   in   the     data  
              record   field,   and   is   defined   as   follows:  
              +---------------------------------------+  
              |   BYTE Attributes   needed/Relocation |  
              | offset   MSB   and   is   defined   as: |  
              | 1A00SOFFF     where |  
              | A   means   absolute   address   needed |  
              | S   means   segment   number   needed |  
              | O   means   offset   needed |  
              | FFF   is   the   3   Least   Significant     |  
              |         bits   of   the   MSB   of   fixup |  
              |         offset |  
              +---------------------------------------+  
              |   BYTE LSB   of   fixup   offset |  
              +---------------------------------------+  
              |   BYTE Relocation   type and   is   defined |  
              | as   00LG0AE0   where |  
              | L   means   length   of   symbol   needed |  
              | G   means   group   override |  
              | A   means   the   address   is   needed |  
              | E   means   the   symbol   is   external |  
              +---------------------------------------+  
              |   BYTE Group/Segment   number.     If   Bit   4 |  
              | of   the   previous   byte   was   set,   |  
              | this   will   be   a   group   number, |  
              | otherwise   it   is   segment   number |  
              +---------------------------------------+  
              |   BYTE Destination   Segment   Number |  
              +---------------------------------------+  
              |   BYTE Source   Symbol/Segment   Number |  
              +---------------------------------------+  
              |   WORD Destination   offset   if   Relocation|  
              | type   byte   is   zero,   otherwise |  
              | nonexistant. |  
              +---------------------------------------+  
               
               
              Memory   Segment   Information   Record     (A0)  
              This     record     defines     the   contents   of   a   memory     segment.       One   record  
              for     each   segment   will   appear   for   each   segment   which   has   locations     to  
              be     defined.       For   program   code,   this   will   be   the     actual     code.       For  
              data,     this   will   be   the   initial   contents   of   the     data.           No       memory  
              segment   record   will   exceed   1024   bytes,   because   of   the   relocation     list  
              which     may   follow.     The   format   of   the   data   record   field   is   defined     as  
              follows:  
              +---------------------------------------+  
              |   BYTE Memory   segment   number |  
              +---------------------------------------+  
              |   WORD Origin   in   segment |  
              +---------------------------------------+  
              |   .....     Data   for   Segment     ..... |  
              +---------------------------------------+  
               
               
              Duplicate   Memory   Segment   Information   Record     (A2)  
              This   record   defines   the   contents   of   duplicated   memory   segment,   such   as  
              when     the   assembler   encounters   a   DUP   in   DB   directive.     The     format     of  
              the   data   record   field   is   defines   as   follows:  
              +---------------------------------------+  
              |   BYTE Memory   Segment   Number |  
              +---------------------------------------+  
              |   WORD Origin   in   Segment |  
              +---------------------------------------+  
              |   WORD Number   of   Duplication   times |  
              +---------------------------------------+  
              |   WORD 1 |  
              +---------------------------------------+  
              |   WORD 1 |  
              +---------------------------------------+  
              |   WORD 0 |  
              +---------------------------------------+  
              |   BYTE Length   of   DUP   item |  
              +---------------------------------------+  
              |   (Length)   BYTES       DUP   data |  
              +---------------------------------------+  
              ±S

            posted on 2010-02-05 09:35 Tim 閱讀(419) 評論(0)  編輯 收藏 引用 所屬分類: 逆向工程

            <2010年2月>
            31123456
            78910111213
            14151617181920
            21222324252627
            28123456
            78910111213

            導航

            統(tǒng)計

            公告

            本博客原創(chuàng)文章,歡迎轉(zhuǎn)載和交流。不過請注明以下信息:
            作者:TimWu
            郵箱:timfly@yeah.net
            來源:www.shnenglu.com/Tim
            感謝您對我的支持!

            留言簿(9)

            隨筆分類(173)

            IT

            Life

            搜索

            積分與排名

            最新隨筆

            最新評論

            閱讀排行榜

            精品久久久久久无码专区| 久久久久亚洲AV无码观看| 亚洲AV无码成人网站久久精品大| 久久人妻AV中文字幕| 东方aⅴ免费观看久久av | 久久成人永久免费播放| 精品久久人人爽天天玩人人妻| 伊人色综合久久天天人守人婷| 午夜精品久久久久久久久| 99久久国产综合精品五月天喷水| 亚洲国产精品一区二区三区久久 | 99久久免费国产精品热| 91性高湖久久久久| 伊色综合久久之综合久久| 久久久久高潮毛片免费全部播放| 国产成人精品久久亚洲高清不卡 | 欧美精品福利视频一区二区三区久久久精品| 久久亚洲sm情趣捆绑调教| 久久综合久久综合久久| 久久亚洲日韩看片无码| 国产激情久久久久影院小草 | 久久99精品久久久久婷婷| 久久国产美女免费观看精品| 精品免费久久久久久久| 色99久久久久高潮综合影院| 久久99精品国产一区二区三区| 亚洲色欲久久久综合网| 欧美亚洲日本久久精品| 99热精品久久只有精品| 国产V综合V亚洲欧美久久| 青草国产精品久久久久久| 久久中文字幕人妻熟av女| 一本大道久久香蕉成人网| 国内精品久久久久久麻豆| 国产精品一区二区久久| 97久久精品午夜一区二区| 久久精品亚洲精品国产色婷| 人妻精品久久久久中文字幕69| 中文国产成人精品久久不卡| 久久久无码精品亚洲日韩京东传媒| 亚洲乱码日产精品a级毛片久久|