zoukankan      html  css  js  c++  java
  • zzeus学习


    VMP壳   脱壳后 自动生成文件

    修复OEP

    输入表 UIF 去弄

    Importrec   去修复   要看准


    右键-》高级-》选择区段 -》FULL DUMP -》修改这个生成的文件就行了

    查看按钮事件   按钮事件入口被VMP掉了

    进去看到   jmp  xxxxx    就是VMP入口

    右键  ZEUS   分析  

    看LOG窗口

    寻找   Cpuid antidumo 的重要handler  VM_Cpuid

    复制一行···········································

    跳过去下断   

    F9  F8```````````````````````````````````````

    看到Cpuid 记录下脱壳机器的cpuid信息,也就是寄存器eax,ebx,ecx,edx的值

    记录 下 cpuid 下面几行  和  寄存器值

    重来 !!!!!!!!!!!!!!!!!!!!!!!!!

    HOOK 它到 OEP附近

    将刚才的值赋值到······寄存器  跳回原来的地址

    多点几次会崩溃···································

    VMP的随机检验······························

    同样的方法   跑到按钮事件入口

    断下   分析···································

    找到   VM_Rdtsc  随机检测············

    断下·········

    记录检测的  eax edx  和  跳过去的 几行代码(rdtsc)

    将 rdtsc 下面的call 下  跳入 空白指令处

    PATCH  eax,edx ·

    ·····································

    之后就正常运行了···················································

    优化VMP CFF软件区优化

    修改区段为 va 为1000    RA为 1000

    对齐    重建····························


    指令过程···········································································································································
    脱壳后:
    00403285    E8 511B0000     call UnPackMe.00404DDB
    0040328A  ^ E9 19FFFFFF     jmp UnPackMe.004031A8
    0040328F    8BFF            mov edi,edi                  ; this is OEP or Near OEP!
    00403291    55              push ebp
    00403292    8BEC            mov ebp,esp
    00403294    83EC 10         sub esp,10
    00403297    A1 84904000     mov eax,dword ptr ds:[409084]


    生成的文件:
    0058D530 >  E8 CBFBFFFF     call De_UnPac.0058D100
    0058D535    B8 8F324000     mov eax,De_UnPac.0040328F
    0058D53A    FFD0            call eax                 //跳转到源文件脱壳后到达的地址
    0058D53C    C3              retn
    0058D53D    CC              int3
    0058D53E    CC              int3
    0058D53F    CC              int3
    0058D540    0000            add byte ptr ds:[eax],al
    0058D542    0000            add byte ptr ds:[eax],al
    0058D544    0000            add byte ptr ds:[eax],al

    修改为:
    0058D530 >  E8 CBFBFFFF     call De_UnPac.0058D100
    0058D535    B8 40D55800     mov eax,De_UnPac.0058D540 //修改为到下面执行
    0058D53A    FFD0            call eax
    0058D53C    C3              retn
    0058D53D    CC              int3
    0058D53E    CC              int3
    0058D53F    CC              int3
    0058D540    68 5DCE4A00     push De_UnPac.004ACE5D    //这个是源文件脱壳后的一个压入堆栈的值
    0058D545  - E9 455DE7FF     jmp De_UnPac.0040328F     //跳
    0058D54A    0000            add byte ptr ds:[eax],al
    0058D54C    0000            add byte ptr ds:[eax],al


    Log data, item 212
     Address=0040B01C
     Message=2B: 522840C6 ---> 0040B01C[VM_Cpuid         


    0040B5BB    0FA2            cpuid
    0040B5BD    68 0D7D05AF     push AF057D0D
    0040B5C2    60              pushad
    0040B5C3    83ED 0C         sub ebp,0C
    0040B5C6    66:0FBAE4 01    bt sp,1
    0040B5CB    837D 0C 01      cmp dword ptr ss:[ebp+C],1


    HOOK  掉EAX,ECX,EDX,EBX
    EAX 000206A7
    ECX 02982203
    EDX 0FEBFBFF
    EBX 00010800 UNICODE " FilesMicrosoft Visual StudioVC98lib"
    ESP 0012FA34
    EBP 0012FB04


    rdtsc:


    0040C415    9C              pushfd
    0040C416    83ED 08         sub ebp,8
    0040C419    885C24 04       mov byte ptr ss:[esp+4],bl
    0040C41D    52              push edx
    0040C41E    882C24          mov byte ptr ss:[esp],ch
    0040C421    FF7424 04       push dword ptr ss:[esp+4]

    HOOK掉  EAX,EDX
    EAX D37FA7AB
    ECX 0040BF5F offset <3.VM_Rdtsc>
    EDX 00002180
    EBX BA9EA8A0














  • 相关阅读:
    总结oninput、onchange与onpropertychange事件的用法和区别,onchange
    即时反应的input和propertychange方法
    响应式网页
    angularJS问题集结
    网页边框样式与style样式部分总结
    软件工程问题及回答
    第13章到第17章问题
    《构建之法》第10、11、12章
    《构建之法》第8,9,10章
    [css]等高列的简单实现
  • 原文地址:https://www.cnblogs.com/zcc1414/p/3982490.html
Copyright © 2011-2022 走看看