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

自己动手做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 );

};

 

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

1Initiate()

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

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 27
    评论
回答: v-bind动态属性绑定是Vue.js中的一个指令,用于将数据动态地绑定到HTML元素的属性上。在v-bind指令中,可以使用表达式来动态地绑定属性的值。对于class属性的动态绑定,可以使用数组语法来绑定多个类名,例如:`<div :class="\['bdtop', 'bdbottom'\]"></div>`。这样就可以将`bdtop`和`bdbottom`这两个类名动态地绑定到该元素的class属性上。\[2\]而对于style属性的动态绑定,可以使用对象语法来绑定多个样式,例如:`<div :style="{ color: activeColor, fontSize: fontSize + 'px' }"></div>`。这样就可以将`activeColor`和`fontSize`这两个变量的值动态地绑定到该元素的style属性上。\[1\]如果你想了解更多关于v-bind与class和style绑定相关的内容,可以参考Vue.js的官方文档中的Class与Style绑定部分。\[3\] #### 引用[.reference_title] - *1* *3* [v-bind动态绑定](https://blog.csdn.net/qq_53841687/article/details/126048116)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [v-bind动态属性绑定](https://blog.csdn.net/weixin_68546350/article/details/124377050)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值