• <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>

            無(wú)我

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

            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 閱讀(418) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 逆向工程

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

            導(dǎo)航

            統(tǒng)計(jì)

            公告

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

            留言簿(9)

            隨筆分類(173)

            IT

            Life

            搜索

            積分與排名

            最新隨筆

            最新評(píng)論

            閱讀排行榜

            精品久久久久久国产三级| 99久久精品国产高清一区二区| 国产精品久久久久AV福利动漫| 99久久99久久久精品齐齐| 激情综合色综合久久综合| 久久99热这里只有精品国产| 香蕉久久夜色精品升级完成| 亚洲国产成人久久综合一 | 一本大道加勒比久久综合| 欧美亚洲日本久久精品| 久久ZYZ资源站无码中文动漫| 久久香蕉国产线看观看99| 亚洲国产成人精品无码久久久久久综合| 无码精品久久一区二区三区 | 亚洲另类欧美综合久久图片区| 亚洲国产另类久久久精品小说| 99久久伊人精品综合观看| 久久久久久久97| 国产免费久久精品99re丫y| 91亚洲国产成人久久精品网址| 久久久亚洲裙底偷窥综合| 久久久99精品一区二区| 国内精品久久久久影院一蜜桃| 亚洲欧美一区二区三区久久| 国内精品伊人久久久久影院对白| 伊人久久久AV老熟妇色| 开心久久婷婷综合中文字幕| 日本精品久久久久中文字幕8| 精品国际久久久久999波多野 | 久久国产热这里只有精品| 久久精品夜夜夜夜夜久久| 亚洲精品乱码久久久久66| 伊人久久大香线蕉综合热线| 久久久久亚洲爆乳少妇无| 久久久91人妻无码精品蜜桃HD| 成人国内精品久久久久影院| 国产精品99精品久久免费| 亚洲精品tv久久久久久久久 | 国产精品久久久久久久午夜片| avtt天堂网久久精品| 狠狠色丁香婷婷久久综合不卡|