• 常见程序入口点(OEP)特征


    delphi:

      55            PUSH EBP
      8BEC          MOV EBP,ESP
      83C4 F0       ADD ESP,-10
      B8 A86F4B00   MOV EAX,PE.004B6FA8


    vc++
       55            PUSH EBP
       8BEC          MOV EBP,ESP
       83EC 44       SUB ESP,44
       56            PUSH ESI

    vc6.0
      55                 push ebp
      8BEC               mov ebp,esp
      6A FF              push -1

    vc7.0

      6A 70              push 70
      68 50110001        push hh.01001150
      E8 1D020000        call hh.010017B0
      33DB               xor ebx,ebx

    vb:


    00401166  - FF25 6C104000   JMP DWORD PTR DS:[<&MSVBVM60.#100>]      ; MSVBVM60.ThunRTMain
    0040116C >  68 147C4000     PUSH PACKME.00407C14
    00401171    E8 F0FFFFFF     CALL <JMP.&MSVBVM60.#100>
    00401176    0000            ADD BYTE PTR DS:[EAX],AL
    00401178    0000            ADD BYTE PTR DS:[EAX],AL
    0040117A    0000            ADD BYTE PTR DS:[EAX],AL
    0040117C    3000            XOR BYTE PTR DS:[EAX],AL


    bc++
    0040163C > $ /EB 10         JMP SHORT BCLOCK.0040164E
    0040163E     |66            DB 66                                    ;  CHAR 'f'
    0040163F     |62            DB 62                                    ;  CHAR 'b'
    00401640     |3A            DB 3A                                    ;  CHAR ':'
    00401641     |43            DB 43                                    ;  CHAR 'C'
    00401642     |2B            DB 2B                                    ;  CHAR '+'
    00401643     |2B            DB 2B                                    ;  CHAR '+'
    00401644     |48            DB 48                                    ;  CHAR 'H'


    00401645     |4F            DB 4F                                    ;  CHAR 'O'
    00401646     |4F            DB 4F                                    ;  CHAR 'O'
    00401647     |4B            DB 4B                                    ;  CHAR 'K'
    00401648     |90            NOP
    00401649     |E9            DB E9
    0040164A   . |98E04E00      DD OFFSET BCLOCK.___CPPdebugHook
    0040164E   > A1 8BE04E00   MOV EAX,DWORD PTR DS:[4EE08B]
    00401653   .  C1E0 02       SHL EAX,2
    00401656   .  A3 8FE04E00   MOV DWORD PTR DS:[4EE08F],EAX
    0040165B   .  52            PUSH EDX
    0040165C   .  6A 00         PUSH 0                                   ; /pModule = NULL
    0040165E   .  E8 DFBC0E00   CALL <JMP.&KERNEL32.GetModuleHandleA>    ; GetModuleHandleA
    00401663   .  8BD0          MOV EDX,EAX

    dasm:

    00401000 >/$  6A 00         PUSH 0                                   ; /pModule = NULL
    00401002  |.  E8 C50A0000   CALL <JMP.&KERNEL32.GetModuleHandleA>    ; GetModuleHandleA
    00401007  |.  A3 0C354000   MOV DWORD PTR DS:[40350C],EAX
    0040100C  |.  E8 B50A0000   CALL <JMP.&KERNEL32.GetCommandLineA>     ; [GetCommandLineA
    00401011  |.  A3 10354000   MOV DWORD PTR DS:[403510],EAX
    00401016  |.  6A 0A         PUSH 0A                                  ; /Arg4 = 0000000A
    00401018  |.  FF35 10354000 PUSH DWORD PTR DS:[403510]               ; |Arg3 = 00000000
    0040101E  |.  6A 00         PUSH 0                                   ; |Arg2 = 00000000
    00401020  |.  FF35 0C354000 PUSH DWORD PTR DS:[40350C]               ; |Arg1 = 00000000
    ++++++++++++++++++++++++++++++++
    看到这里,你应该会问:那么要如何为装?下面我们简单的介绍一下:

    1、用ToPo增加大约128字节的空间[注:个人爱好而定],
    2、进入LordPE的PE Editor,打开Target.exe,
    把.topo0段名改为.text,装的更像一点[注:也可以个性一点改成自己的大名,不影响结果]

        记下VOffset:13000,把入口点改为这个值.OllyDbg载入Target.exe,轰~我们来到了一个异常,

    向上拉动滚动条,来到413000处改写代码:
    ++++++++++++++++++++++++++++++++
    伪造VC++入口代码特征
    ++++++++++++++++++++++++++++++++

    push ebp
    mov ebp,esp
    push -1
    push 666666


    push 888888
    mov eax,fs:[0]
    push eax
    mov fs:[0],esp
    +++++++++++++++下边再恢复 +++++++++++++++
    pop eax
    mov fs:[0],eax
    pop eax
    pop eax
    pop eax
    pop eax
    mov ebp,eax

       别忘了jmp 405000,也就是壳的入口点.选中修改过的代码按右键,把它保存为newTarget.exe.

    PEiD侦测一下:Microsoft Visual C++,并且运行正常,任务完成

  • 相关阅读:
    Asp.net并发请求导致的数据重复插入问题
    记一次完整的asp.net-mvc页面优化过程
    设计完美的策略模式,消除If-else
    EF|CodeFirst数据并发管理
    mongo upsert
    js回调函数传参
    使用poi时,两个环境下,一个错误一直正常
    jna笔记1
    springboot集成rabbitmq测试
    一个方法让你了解js中的细节
  • 原文地址:https://www.cnblogs.com/Fightingbirds/p/3172907.html
Copyright © 2020-2023  润新知