zoukankan      html  css  js  c++  java
  • winpwn笔记

    1.seh相关数据结构

    传送门

    #define EXCEPTION_CHAIN_END ((struct _EXCEPTION_REGISTRATION_RECORD * POINTER_32)-1)
    
        typedef enum _EXCEPTION_DISPOSITION {
            ExceptionContinueExecution,  
            ExceptionContinueSearch,
            ExceptionNestedException,
            ExceptionCollidedUnwind
        } EXCEPTION_DISPOSITION;
    
        typedef struct _EXCEPTION_RECORD {
            DWORD ExceptionCode;
            DWORD ExceptionFlags;
            struct _EXCEPTION_RECORD *ExceptionRecord; 
            PVOID ExceptionAddress;
            DWORD NumberParameters;
            ULONG_PTR ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
        } EXCEPTION_RECORD;
    
        typedef EXCEPTION_RECORD *PEXCEPTION_RECORD;
    
        typedef
        EXCEPTION_DISPOSITION
        (*PEXCEPTION_ROUTINE) (
            IN struct _EXCEPTION_RECORD *ExceptionRecord,
            IN PVOID EstablisherFrame,
            IN OUT struct _CONTEXT *ContextRecord,
            IN OUT PVOID DispatcherContext
            );
    
        typedef struct _EXCEPTION_REGISTRATION_RECORD {
            //指向下一个 EXCEPTION_REGISTRATION_RECORD,由此构成一个异常注册信息链表。
            //链表中的最后一个结点会将 Next 置为 EXCEPTION_CHAIN_END,表示链表到此结束。
            struct _EXCEPTION_REGISTRATION_RECORD *Next;
            PEXCEPTION_ROUTINE Handler;  //指向异常处理函数
        } EXCEPTION_REGISTRATION_RECORD;
    
        typedef EXCEPTION_REGISTRATION_RECORD *PEXCEPTION_REGISTRATION_RECORD;
    typedef struct _EXCEPTION_REGISTRATION PEXCEPTION_REGISTRATION;
        struct _EXCEPTION_REGISTRATION{
            PEXCEPTION_POINTERS xpointers;
            struct _EXCEPTION_REGISTRATION *prev;
            void (*handler)(PEXCEPTION_RECORD, PEXCEPTION_REGISTRATION, PCONTEXT, PEXCEPTION_RECORD);
            struct scopetable_entry *scopetable;    //类型为 scopetable_entry 的数组
            int trylevel;          //数组下标,用来索引 scopetable 中的数组成员。
            int _ebp;    //包含该 _EXCEPTION_REGISTRATION 结构体的函数的栈帧指针。
                         //对于没有 FPO 优化过的函数,一开头通常有个 push ebp 的操作,_ebp 的值就是被压入的 ebp 的值
        };

     2.windows用户态堆

    windows各个版本堆保护措施的变化

    HeapCreate返回的handle是_heap结构体

     3.windbg的坑

    !heap 
    Invalid type information

    解决

    .symfix
    .reload /f
  • 相关阅读:
    释放jQuery 的$ 的使用权
    jQuery 入口函数主要有4种写法
    jQuery的 ready() 和原生 Js onload() 的主要区别:
    简单的单击图片循环播放
    Jsの练习-数组其他常用方法 -map() ,filter() ,every() ,some()
    Jsの练习-数组常用方法 -forEach()
    stylelint和eslint的VS插件配置
    工作中遇到的bug
    VUE关于data对象中数组修改和对象添加属性的响应式问题
    VUE的watch监听对象
  • 原文地址:https://www.cnblogs.com/snip3r/p/11820158.html
Copyright © 2011-2022 走看看