示例#1
0
int
main()
{
    INIT();

#ifdef UNIX
    intercept_signal(SIGSEGV, (handler_3_t)signal_handler, false);
#else
    SetUnhandledExceptionFilter((LPTOP_LEVEL_EXCEPTION_FILTER)custom_top_handler);
#endif

    print("starting good function\n");
    twofoo();
    print("starting bad function\n");

    invalid_ret(1);          /* zero page */
    invalid_ret(0);          /* NULL */
    invalid_ret(0x00badbad); /* user mode */
    invalid_ret(0x7fffffff); /* user mode */
    invalid_ret(0x80000000); /* kernel addr */
    invalid_ret(0xbadbad00); /* kernel addr */
    invalid_ret(0xfffffffe); /* just bad */
    invalid_ret(0xffffffff); /* just bad */

    print("all done [not seen]\n");
}
示例#2
0
int
main()
{
    INIT();

    print("starting good function\n");
    twofoo();
    print("starting bad function\n");
#ifdef X64
# ifdef WINDOWS
    ring(1, 2, 3, 4, 5);
# else
    ring(1, 2, 3, 4, 5, 6, 7);
# endif
#else
    ring(1);
#endif
    print("all done [not seen]\n");
}