cmd_simple.cpp
上传用户:jinandeyu
上传日期:2007-01-05
资源大小:620k
文件大小:4k
源码类别:

远程控制编程

开发平台:

WINDOWS

  1. /*  Back Orifice 2000 - Remote Administration Suite
  2.     Copyright (C) 1999, Cult Of The Dead Cow
  3.     This program is free software; you can redistribute it and/or modify
  4.     it under the terms of the GNU General Public License as published by
  5.     the Free Software Foundation; either version 2 of the License, or
  6.     (at your option) any later version.
  7.     This program is distributed in the hope that it will be useful,
  8.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  9.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  10.     GNU General Public License for more details.
  11.     You should have received a copy of the GNU General Public License
  12.     along with this program; if not, write to the Free Software
  13.     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  14. The author of this program may be contacted at dildog@l0pht.com. */
  15. #include<windows.h>
  16. #include<auth.h>
  17. #include<iohandler.h>
  18. #include<encryption.h>
  19. #include<commandloop.h>
  20. #include<bocomreg.h>
  21. #include<cmdcmd_simple.h>
  22. #include<dll_load.h>
  23. #include<winnt.h>
  24. #include<main.h>
  25. int CmdProc_Ping(CAuthSocket *cas_from, int comid, DWORD nArg1, char *svArg2, char *svArg3)
  26. {
  27. char svLine[512];
  28. wsprintf(svLine,"Ping reply from %.469s.n",svArg2);
  29. IssueAuthCommandReply(cas_from, comid, 0, svLine);
  30. return 0;
  31. }
  32. int CmdProc_Query(CAuthSocket *cas_from, int comid, DWORD nArg1, char *svArg2, char *svArg3)
  33. {
  34. int i;
  35. char svLine[512];
  36. // Version
  37. PIMAGE_OPTIONAL_HEADER poh;
  38.     poh=(PIMAGE_OPTIONAL_HEADER) OPTHDROFFSET(g_module);
  39. wsprintf(svLine,"--> Version: Back Orifice 2000 (BO2K) v%1.1u.%1.1unn",poh->MajorImageVersion,poh->MinorImageVersion);
  40. IssueAuthCommandReply(cas_from, comid, 1, svLine);
  41. // Extension Commands
  42. IssueAuthCommandReply(cas_from, comid, 1, "--> Extension Commands:n");
  43. for(i=0;i<MAX_BO_COMMANDS;i++) {
  44. if(command_handler_table[i]!=NULL) {
  45. if(command_description_table[i].bNativeComm==FALSE) {
  46. char *svA1, *svA2, *svA3;
  47. svA1=command_description_table[i].svArgDesc1;
  48. if(svA1==NULL) svA1="";
  49. svA2=command_description_table[i].svArgDesc2;
  50. if(svA2==NULL) svA2="";
  51. svA3=command_description_table[i].svArgDesc3;
  52. if(svA3==NULL) svA3="";
  53. wsprintf(svLine,"(%d) %.64s\%.64s|%.64s|%.64s|%.64sn", i,
  54. command_description_table[i].svFolderName,
  55. command_description_table[i].svCommName,
  56. svA1,
  57. svA2,
  58. svA3);
  59. IssueAuthCommandReply(cas_from, comid, 1,svLine);
  60. }
  61. }
  62. }
  63. IssueAuthCommandReply(cas_from, comid, 1, "--> End Extension Commandsnn");
  64. // IO Handlers
  65. IssueAuthCommandReply(cas_from, comid, 1, "--> IO Handlers:n");
  66. for(i=0;i<MAX_IO_HANDLERS;i++) {
  67. char *svQuery;
  68. if((svQuery=g_pIOHandler->Query(i))!=NULL) {
  69. wsprintf(svLine,"(%d) %.100sn",i,svQuery);
  70. IssueAuthCommandReply(cas_from, comid, 1, svLine);
  71. }
  72. }
  73. IssueAuthCommandReply(cas_from, comid, 1, "--> End IO Handlers:nn");
  74. // Encryption Modules
  75. IssueAuthCommandReply(cas_from, comid, 1, "--> Encryption Handlers:n");
  76. for(i=0;i<MAX_IO_HANDLERS;i++) {
  77. char *svQuery;
  78. if((svQuery=g_pEncryptionHandler->Query(i))!=NULL) {
  79. wsprintf(svLine,"(%d) %.100sn",i,svQuery);
  80. IssueAuthCommandReply(cas_from, comid, 1, svLine);
  81. }
  82. }
  83. IssueAuthCommandReply(cas_from, comid, 1, "--> End Encryption Handlersnn");
  84. // Auth Handlers
  85. IssueAuthCommandReply(cas_from, comid, 1, "--> Auth Handlers:n");
  86. for(i=0;i<MAX_AUTH_HANDLERS;i++) {
  87. char *svQuery;
  88. if((svQuery=g_pAuthHandler->Query(i))!=NULL) {
  89. wsprintf(svLine,"(%d) %.100sn",i,svQuery);
  90. IssueAuthCommandReply(cas_from, comid, 1, svLine);
  91. }
  92. }
  93. IssueAuthCommandReply(cas_from, comid, 1, "--> End Auth Handlers:nn");
  94. // End of query
  95. IssueAuthCommandReply(cas_from, comid, 0, "");
  96. return 0;
  97. }