• 当前位置:首页>>编程开发A>>安全防御>>《再谈进程与端口的映射》之狗尾续貂篇
  • 《再谈进程与端口的映射》之狗尾续貂篇
  • 创建时间:2004-05-01
    文章属性:原创
    文章提交:hhhkkk (hac01_at_163.com)

    《再谈进程与端口的映射》之狗尾续貂篇

    日  期:2004-5-1
    作  者:hhhkkk  [hhkkk@126.com]

    拜读了ILSY 的大作《再谈进程与端口的映射》后,觉得很不错,用vc在电脑上调试,发现有些地方能取得信息 有些地方不能
    更加怪的是,我的win2k上本来可以取得的,后来居然不行了。
    而active ports却是那样稳定,有鬼不成 靠 ,偶不信
    搬出OllyDdg经过调试对照发现,程序不能正常显示就是函数的OpenPhysicalMemory导致不能取得信息
    下面是active ports的OpenPhysicalMemory反汇编部分
    0040FCF2    8B1D CC124000   MOV     EBX,DWORD PTR DS:[<&KERNEL32.MapViewOfFile>]           ; KERNEL32.MapViewOfFile
    0040FCF8    C745 F8 00000A0>MOV     DWORD PTR SS:[EBP-8],0A0000
    0040FCFF    BE 00100000     MOV     ESI,1000
    0040FD04    FF75 F8         PUSH    DWORD PTR SS:[EBP-8]
    0040FD07    8B45 08         MOV     EAX,DWORD PTR SS:[EBP+8]
    0040FD0A    57              PUSH    EDI
    0040FD0B    57              PUSH    EDI
    0040FD0C    6A 04           PUSH    4
    0040FD0E    FF30            PUSH    DWORD PTR DS:[EAX]
    0040FD10    FFD3            CALL    NEAR EBX                //// MapViewOfFile(*,4,0,0,0x0a0000); 1) map
    .........    ///如果没map 成功 再改参数 map 因为我看到的都是一次map就ok 就不看了
    0040FD2E    837D FC 00      CMP     DWORD PTR SS:[EBP-4],0
    0040FD32    76 17           JBE     SHORT aports.0040FD4B
    0040FD34    6A 67           PUSH    67
    0040FD36    8D88 000C0000   LEA     ECX,DWORD PTR DS:[EAX+C00]
    0040FD3C    5A              POP     EDX
    ///下面这段是关键部分了,也就是取得应该映射的起始位置处
    0040FD3D    3911            CMP     DWORD PTR DS:[ECX],EDX
    0040FD3F    74 0A           JE      SHORT aports.0040FD4B
    0040FD41    47              INC     EDI
    0040FD42    03CE            ADD     ECX,ESI
    0040FD44    03D6            ADD     EDX,ESI
    0040FD46    3B7D FC         CMP     EDI,DWORD PTR SS:[EBP-4]
    0040FD49    72 F2           JB      SHORT aports.0040FD3D

    0040FD4B    50              PUSH    EAX
    0040FD4C    FF15 D0124000   CALL    NEAR DWORD PTR DS:[<&KERNEL32.UnmapViewOfFile>]        ; KERNEL32.UnmapViewOfFile
    0040FD52    3B7D FC         CMP     EDI,DWORD PTR SS:[EBP-4]
    0040FD55    75 03           JNZ     SHORT aports.0040FD5A
    0040FD57    6A 39           PUSH    39
    0040FD59    5F              POP     EDI
    0040FD5A    8B45 08         MOV     EAX,DWORD PTR SS:[EBP+8]
    0040FD5D    56              PUSH    ESI
    0040FD5E    C1E7 0C         SHL     EDI,0C
    0040FD61    57              PUSH    EDI
    0040FD62    6A 00           PUSH    0
    0040FD64    6A 04           PUSH    4
    0040FD66    FF30            PUSH    DWORD PTR DS:[EAX]
    0040FD68    FFD3            CALL    NEAR EBX                //MapViewOfFile(*,4,0,edi,0x1000);
    0040FD6A    5F              POP     EDI
    0040FD6B    5E              POP     ESI
    0040FD6C    5B              POP     EBX
    0040FD6D    C9              LEAVE
    0040FD6E    C3    
  • 上一篇:Hook 系统服务隐藏端口
    下一篇:安全编程: 避免竞争条件