| 首页 | 新闻 | 网页 | 设计 | 色彩 | 原创 | 视觉 | 素材 | 动漫 | 酷站 | 策划 | 文案 | 访谈 | 运营 | 编程 | 数据库 | 服务器 | 下载 | 图库 | 
您的位置: 幽幽天空 > 网页 > 编程开发 > Visual C++教程 > 文章正文 用户登录
网站管理:别拿自
创业公司团队:别
网络公司批评员工
如何建立自己的博
如何推广自己的博
教你如何防止自己
李想:演算自己的
提高自己blog访问
创业者圣经:借别
如何創建屬於自己

自己动手做QQ木马,文件绑定篇           

自己动手做QQ木马,文件绑定篇

作者:佚名 来源:CSDN 作者: fengzi_zhu 更新:2006-8-25 21:05:35 错误报告 我要投稿

自己动手做QQ木马--文件绑定篇

 

    在本篇中我将详细分析一下CBindFile类的实现细节。

先看看CBindFile类的声明吧!

class CBindFile : public CObject 

{

public:

      CBindFile();

      virtual ~CBindFile();

 

   static const char *const szFlag;            //文件被绑定过的标志

      static const unsigned int lenOrigin; //未绑定动态连接库时的文件大小

static const unsigned int lenOriginAddDll;  //绑定了动态连接库后的//文件大小

private:

   TCHAR my_name[MAX_PATH];           //自身文件名字

      TCHAR szMyFilePath[MAX_PATH];       //自身文件路径

      HANDLE hFileMyself;                   //自身文件句柄

 

   BYTE *buf;                          //读取文件数据缓冲

 

      CString strToBindFilePath;            //保存要绑定的文件名

      CString strFinalFilePath;              //保存最终合成文件名

      char m_Ext[4];                        //保存被绑定文件的扩展名

 

      CString strUnbindFilePath_Dll;         //分解出的DLL文件名

      CString strUnbindFilePath_Sec;         //分解出的Sec文件名

 

PROCESS_INFORMATION piRunProc;  //分解出的第二个文件运行//的进程信息

public:

      bool Initiate();                   //判断文件是绑定还是分解

      bool CloneMySelf_and_Run();     //克隆一个原文件并运行它

                                       //取得分解出文件运行的进程信息

      voidGetRunFileProcessInfo(PROCESS_INFORMATION&pi) const;

      CString GetSecFilePath() const;

private:

      bool Unbind_and_Run();         //分解已合并的文件,同时运行它们

   bool Bind_File();                //将自己和另一个文件绑定在一起

                                      //创建分解文件时的进程

      bool Create_Process(const char* temp_Run, BOOL bDirectRun);

      //判断是否是指定的文件名

      bool IsSpecFileName(const TCHAR * const szSpecFileName) const;

 

      void Modify_MyIcon(BYTE* &buf); //修改自身文件中的所有的图标

//在被绑定的PE文件中找到与自身文件中相匹配的图标

   BYTE* Find_Match_Icon(HMODULE hExeToBind, const RESDIR *pResDir);

 //枚举图标的回调函数                            

      static BOOL CALLBACK EnumIconProc( HMODULE hExe,

             LPCTSTR lpszType, 

             LPTSTR lpszName, 

             LPARAM lParam );

};

 

后面三个与图标相关的函数暂时不介绍,留在后面的攫取图标篇中详细说明。下面讲解几个重要的成员函数

1.Initiate()

在第一篇中我已经讲过Initiate()成员函数是重点,它是整个类的枢纽。通过判断本程序文件的大小来分别执行相关的操作.

文章录入:skyuu    责任编辑:skyuu 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    发表评论:
    姓名:  评 分: 1分 2分 3分 4分 5分
     
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用幽幽天空服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表机友个人观点,与本网站立场无关。