
                     
                    (孮 ⥪㥬 )

        ᨫ   ࠢ     ,  ⮡    ஢
 ᯮ塞  ணࠬ ( ଠ PE) ⠪, ⮡  ᥭ 
  ᨬ ६.
       䨪樥      ணࠬ । ,
 ᪠,  ᮬ.  祢,  ᠬ ⥫    ஢.
   ஢騪 㤥 ⥣஢   ணࠬ.
     室   ⮣,  ࠧ  3 ,    
 : ?, ?  ?.
      -   樨, 묨 㤥  㥬 PE
 䠩.    ⮬,       樨, ᪠   
 ⠬䨧    .
       -    ⮬,    ணࠬ ⠢ 樨
 ஢騪,      ।  .  ਭ樯,  ⭮⥫쭮
 ;  ⮣,  ࠧ     짮⥫ .
       ⮩      㤥  ,       ந묨
 ﬨ ணࠬ ⠢ 樨 ஢騪,  , 㣨
 ᫮,  ࠧ,    ᮡ  ணࠬ.

                                   

     襩  祩    ⠢    ﬨ  PE 䠩 ᢮
 ᮡ⢥.    -  ⮣,            䠩    
 -类  易      㣮,         ᮡ
     痢.  ,     痢   ᮡ
   㣨,    ⠪  ,    稬    䠩   㤥
 .
     ਬ:  ⠢  । 䠩 ,   ᬥ饭 
 ⮪,   ᫥ ⮩ 樨.   ᬥ饭 ன ⪨ 
 ,  室 ࠢ   室   . ᫥ ⠪
 ࠢ,  ,  㢥     ᫮ 室,
     ᮡ  ᬥ饭 ⮪,  ᫥  ,
  ⠪ .
     裡    ⠬ 䠩 뢠  ⮫쪮 ᮫ (ᬥ饭),
     ⭮⥫  ( 室),   室   .
   ᮫  裡    ।⢮   PE 䠩,
          ⠡  䨪ᠯ  (५権).    宦
 ⭮⥫  ᬥ饭  ॡ  ࠧ    ,  騩 
 ணࠬ,  ⤥ 樨.
     室  ᪠, 室 ࠧ  䠩   
 塞 魮,  ,  ᮡ 䠩 .
     ஬  ᥣ  祣,          ଫ    
 㭨ᠫ쭮 .
       ,    ,    ।    ।⢮,  饥 
 ஢      PE   䠩,     祬    ࠧ  ⮤
 䨪樨  ⮩    㤥 ਤ㬠, ⥬ . - ᪨
 ਯ    ᥬ  䠩,  -  ⥣  樨 ਯ 
 ﬨ 䠩,  ..
     ⠪,    ࠧ  5 ⠯:
     1.  㦠 PE 䠩    㠫 ᠬ; ᮧ ⠡
 䫠    ⠢塞   , 㪠뢠騥,   ᮮ⢥騥
   㪠⥫ﬨ/,    .   ஢ 砫 
  䠩.
     2.  ᥬ㥬  䠩  (室    ࠧ    樨),
 ⭮    ⠡  䫠   ଠ樥  㪠⥫. 
   ⠪  ,   ᥬ஢  訡, ९⠢
     .    訡  ⠫쭠,  ⮬  ⢥  樨
 室  ᪫. ᫨  ᭨ ⭮襭 ண ⪠ 䠩
      , 䠩 ࠡ뢠  ᫥.
     3.  ।⠢塞  䠩      ᯨ᪠ : 権, ᪮ ,
 ⮪    㪠⥫.        ୮  室   
 室.      ᯨ᮪   ᮧ   ᪫⥫쭮   -   
 㫨஢  ⠬.
     4.  뢠 ᪨  (譨  ⭮襭  ), 
 頥  ᯨ᮪,  ਬ  ᮢ뢠 ᪨ ᣥ७ ਯ 
 ﬨ 䠩.
     5.  ࠥ  䠩    ᯨ᪠;    ਬ ⠡ 䨪ᠯ; 
 㢥祭  ᫮ 室 뢠  ᬥ饭  䠩.

                         

       ᠬ  ,  筮,    ⮨  㦥 祬 : ஬
 ᠭ    蠣     祩,     
 ࠡᯮᮡ   ணࠬ.      ᭮   㤭,   ⢥,
 砥    ᥬ஢.         ﬨ,
 ਬ,  --    ࠭祭 ⪠ .
       ஡  ᥬ஢      祬:      , 
    ⭮,      䨪ᠯ.    ⠪    뢠 
 ணࠬ,    - .       뢠 .
 :    㧭, 室   ⮩ ⪥  (- 楤),
   ?
     訡      ᮡ ᫥饥: , ਭ  ,  㤥
 䨪ᥭ,  ⠪     ࠢ, 猪 ந .
     ⮬      ⠪ ,  jxx, call  .. ᫨ ,
 ,     ਭ  ,      㤥
 䨪ᥭ,   ⮦ ॢ .
     ⮬  室    訡筮  ⫨    .
     楤  뫮    ᨣࠬ,  
     ⠪  ᮢ.   뫮  ᬠਢ jmptable',  
   筮.
       뫮  ࠡ ⮫쪮  䠩 । ,  ,
 ⠪,       ᥪ樨 室 ⮫쪮   祣 .
       ࠧ  ,  祣    ⥫  .   , ⮡
 ⨢ ஢﫨  䠩  -.    ⠪ 䠩.
       ,    訡    ४樨  䠩    -
 ࠢ쭮   ᥬ஢,      --  -  ᠭ  
 ஡.  室  :  ࠭  ⢮ ࠡ뢠 䠩, 
 ᪮쪮    ᥬ    㤠.

                                  

        ਢ   ⪮   ᠭ      蠣,  室  
 ४樨 䠩.

 - ஢塞 PE 䠩   (稥 ⠡ 䨪ᠯ  ..)
 - 뤥塞   㠫 ࠧ 䠩   
    䫠    ࠧ 䠩
 - 㦠  㠫 ᠬ:
   1. ᮢ   PE  䠩
   2. ᥪ樨 䠩
 - ࠧࠥ PE , 㥬   㪠⥫  ,
   砥 砫   ᥪ権  ⪨  ..
 - ࠧࠥ 
 - ࠧࠥ ᯮ
 - ࠧࠥ 䨪ᠯ
 - ࠧࠥ 
 - 饬  䠩 砫 楤  ᨣࠬ (⨯ push ebp/mov ebp,esp)
    砥  -᫥饣-
 - 砥  室
 - ᥬ㥬 䠩,  ᠭ   " 樨";
   ,   ⫨稩:    祭--
   -᫥饣- ⪨,  饬 ⪨---뫠-㪠⥫,
    ஢塞,     . (. )
 - ᮧ ᯨ᮪  , ⮪, 㪠⥫  ..
   ⨬,   ⮬ ᯨ᪥ 㦥  ꥪ 㫥  (⪨),
     ந室 室   ᮪ ஢ ࠪ樨;
      ᯨ᮪ -- ᢮ࠧ ।⠢ 室.
   ᫥ 室   ᨢ  ᯨ, ᨢ   㦭.
 - 塞 ᯨ᮪;
    ६ ⫠  ⠢ NOP'  ᥬ ﬨ 䠩
 - 塞  㠫    ᥩ ᯨ᪠
 - 뢠 ⠡ 䨪ᠯ
 - 뢠 祭 㪠⥫
   (.. rva, 䨪ᠯ  ⭮⥫ ᬥ饭 ᫮ 室);
   ᫨  ᫮ 室 諮 㢥,
    塞    㠫 ᮢ
 - ᥬ㥬 ᯨ᮪ (ᮡࠥ     ᨢ)
 - 뢠 䠩  
 - 뢠   䠩 ૥, ᫨  

       ࠧ ⨯ "ࠧࠥ PE " / "ࠧࠥ "
 ?    ,      뤥塞  ।    ⪨,  㪠⥫  㣨
 ᯥ樠  ꥪ   ⠢塞    䫠 ᮮ⢥騥 .
 ਬ,      pe_header+28h (28h=EntryPointRva)  䫠
 ⨯  FLAG_DWORD   FLAG_RVA,   ,    뢠, 㤥
 祭  FLAG_LABEL  FLAG_CREF.

  ᯥ樠 ꥪ  ⢮  ᯨ᪥?

 1. ⪨,   ,   뫠 RVA  FIXUP'.
 2. RVA,   ,  㪠뢠  .
 3. FIXUP,   , ⠪   RVA,  + IMAGEBASE,
    ⮬    ᥭ  ⠡ 䨪ᠯ.
 4. ⠪ 뢠 DELTA,   ࠧ  ᠬ  ⮪.
 5. 
 6.  

         ⮬,      ⫨砥      .  ,   
 ᬠਢ       뫪 ⮫쪮 १ 㪠⥫ (rva 
 fixup'),      뫮  १  call/jmp.  ⠪,  ६  ।
 楤    ࠧࠥ        樨.    樨
 ஢塞,         筮, ⨯ 00 00, FF FF, F4 (hlt), CD
 (int),    ..,    ⠪ ,   楤 PE 䠩 
 砥.  ᫨ -  ⮢ । 樨 ᮤন
 䫠  ⨯  "⪠"    "",     楤. ᫨ 
    ⭮⥫      (jmp,call,jxx,jecxz,...),       
 뢠    -  ਫ筮,             
 । 㣮 樨.   ⠪ ஢ન   , 
  㤥  RET  JMP.

     ,   ⠪ 樨,  ⫨    筮
 ᫮.  ਬ,  ⠪  ꥪ,    ⪠  (label), த   
 ⢮  । 樨, ᣥ७ hll ஬.  
 - ७ . 祭  . ᬮਬ ⨯ 砩.

    avpbase.dll:
    100050D3  83E904            sub     ecx, 4
    100050D6  720C              jb      100050E4
    100050D8  83E003            and     eax, 3
    100050DB  03C8              add     ecx,eax
    100050DD  FF2485F0500010    jmp     dword ptr [100050F0+eax*4]      (1)
    100050E4  FF248DE8510010    jmp     dword ptr [100051E8+ecx*4]
    100050EB  90                nop
    100050EC  FF248D6C510010    jmp     dword ptr [1000516C+ecx*4]      (2)
    100050F3  90                nop
    100050F4  00510010          dd      10005100
    100050F8  2C510010          dd      1000512C

       ,  100050F0 室  । 樨 (2),   
    ६   ᯮ      樨  (1).  祬  ⠪  ந室,
   ᫮.    १,    樨  (2)    
 㢥७  ᪠,            묨.    ,
 ⮬᪨        ।, 뫮   室 ᠭ
 100050F4 - 4  100050EC + 4.

     ,       ᥬ 祬, 뢠   㥢 誠. 
 ᪨   16-⭮       32-  ਫ,  ⨯  ⨢ᮢ 
 ଠ஢.  ᥬ ந⥪騬  .

                                   

     ᬮ      ,  祬- ࠡ⠥. 뢠 
 ,  ⠪ ᪠  द ⨭, "䠫 室 ஬".
    㤥 ⢫.  ᠭ  ଠ C++, ࠢ  ᮢ
     . ᭮ 㭪 engine()  㥢 祩 ࠬ஢, ,
     ᫥,  ᠬ  ࢮ,  ᫥    ᪮쪮 ७
 ணࠬ.      뢠 kernel, (   ) 
 室    䠩  engine.cpp & .hpp; ᮮ⢥⢥   ⠭. 
 ୥  뢠  ⠪ 뢠 譨 ᪨  (mutate.cpp),
         ஢ 짮⥫. ,  ,
 ᮡ⢥  䥪,    ᪫⥫쭮    ᯨ᪮   ,
   㤥 뢠 㩭ﬨ (hooy),   㦥 ⪠뢠.  㩭
    ⪨, ,  , ᫮  ,  祬 ਫ 
 砫.    ,  孮 ᠭ  筮 ⠪ ,  
   RPME,  ⮫쪮  RPME   祭  ,  䠫 ।祭 
 ࠡ  PE 䠩.

      १, ⥩訩 ⮤ ࠦ 䠩 ⠪:

 1.     騥 樨; ᫥ ࢮ 樨
    ⠢ JMP  ,  ᫥ JMP' - ஢ ⥫ .
 2. 筮  ਯ.
 3. 筮   맮 ਯ.

     祬,    ⮫쪮     ਠ⮢.  ਠ⮢   
 祭  (롨 㤥 ࠭).

                              

     ०  ᥣ,      ,  祭  . 
 ⮬,          ਢ 䠩;    ଠ쭮 ⮦.
   ,        RPME, ।⠢  짮⥫.
 ⥣    樨   쬠   ᯥ᪠:      㤥   ⮫쪮
 訢  ,     -- ⤠. ⮬ । 맮 
 뤥      ,      32.  쭮    ᯮ
 (17*SizeOfImage)      ६  ᨢ,    40 
  / ᯨ᪠.
         㥬,      ᮣ   㦥 ᠭ묨 
 - ⥪ "ॡﬨ  ".
       ࠡ  ring-0.  - 讣 ⢠ ॡ㥬
   直 .
      ࠡ ,   ६ 室  ᥬ஢,
 ।᪠    ६  ᫮.  室    ⮣,    饥 ६ 
 ࠡ  䠩   ⠬,  ॠ⠩.
     ᭮,    ⠪        ⥬ ᮡ,
 ⨯  openfile,  ⠪        ᫥ 뢠   ⥩襣
   ।  ।祩  ࠢ  . । 䠩  
 ⢫ ⮫쪮  ⤥쭮   .
