当前位置:网站首页>(3.1)【木马-合成技术】
(3.1)【木马-合成技术】
2022-07-13 18:20:00 【黑色地带(崛起)】
目录
一、简介:
1.1、简述
将木马与其他文件合成为一个可执行文件从而迷惑敌人。许多木马已经自带了文件捆绑功能,也可以使用大数人使用的文件捆绑器,将多个文件合成为一个文件,从而使木马不被发现,文件捆绑器大多数人都会用,讲讲文件捆绑器的编写。
将多个文件合并成一个最终可执行文件, 运行这个最终合成文件后, 就相当运行了合并前的多个文件。这种程序在木马程序合并中会经常用到,就以一个文件捆绑器的例子代码
1.2、构成思想:
在合并文件时, 建立一个新的二进制文件,先写入你的自身捆绑程序的数据和文件长度,再写入你要捆绑的第一个文件的数据和文件长度,然后再直接写入你要捆绑的第二个文件的数据和文件长度……最后可直接写入你要捆绑的最后一个文件的数据(不需文件长度)。
分解释放最终合成文件时, 也就是将上面的方法倒过来执行
打开最终合成文件,读取原自身捆绑程序文件长度,将文件指针移到自身捆绑程序数据后,读取第一个被绑定文件的长度,接着读取其长度的文件数据并写入到“ 新建文件l1” 中,再读取第二个被绑定文件的长度,接着读取其长度的数据并写入到“ 新建文件2 ” 中……直到最后直接读取最后一个被绑定文件的数据并将它写入到最后一个新建文件中即可。
二、实现
2.1、捆绑多个文件为一个可执行程序
首先得到自身捆绑程序的文件长度和第一个要捆绑文件的文件长度,枚举第一个要捆绑文件有无图标, 有的话就用它作为最终生成文件的图标, 否则用自身捆绑程序所带默认图标做最终生成文件的图标。在新建二进制文件中写入自身捆绑程序数据及其文件长度, 再写入第一个要捆绑文件的数据及其文件长度, 最后直接写入第二个文件的数据即可。
合并程序函数的具体代码实现如下:
2.2、释放最终合成文件并运行
打开自身文件, 从中得到自身捆绑程序的文件长度, 便可将文件指针定位到第一个被捆绑文件的位置,读取其文件长度及其数据,将读出数据写入第一个新建文件中。同样,通过已读取的自身捆绑程序文件长度和第一个被捆绑文件的文件长度加上保存这两个文件长度值的字节数,即可准确定
位第二个被捆绑文件的位置,读取其数据,写入到第二个新建文件中。同时,运行这两个文件,最后再删除这两个文件既可。释放最终合成文件的代码具体实现如下:
2.3、判断何时捆绑、分解程序
由于本程序是将自身捆绑程序作为文件头将要绑定文件附加其后的方式生成最终合成文件的。所以, 只要知道自身捆绑程序的文件长度, 再在初始化对话框函数OnlnitDialog()加以判断即可知道是否是最终合成文件(要不要释放内部绑定文件)。本例程用VC6. 0 采用静态连接方式生成的
Release版, 文件大小为184KB 。判断是捆绑还是释放文件的代码具体实现如下:
边栏推荐
- Canvas pay attention to details
- Spot gold knowledge that Xiaobai must learn (24 terms)
- mysql基础查询语句
- The command prompt checks the occupation of a port and clears the occupation
- FreeBSD bnxt以太网驱动源码阅读记录。
- The source code is compiled according to mongoc
- 什么是Fastmixer Cash虚拟币加密混合器?
- ora-01153
- 【每日一题】二叉搜索树与双向链表
- APP性能设计及优化专题——影响性能的不良实现
猜你喜欢
随机推荐
Wechat applet development - (VIII) canvas drawing graphics
第54章 业务逻辑之折扣、商品类别实体定义实现
C primer plus learning notes - 4. File IO (input / output)
LeetCode 735 行星碰撞[栈 模拟] HERODING的LeetCode之路
What are the new features of redis in highly paid programmers & interview questions series 123? Do you know the multithreading feature of redis?
Heartless sword English Chinese bilingual poem 005 Floating like clouds
使用cpolar建立一个商业网站(申请网站安全证书)
Fluent: environment construction and project creation
怎么快速定位bug?怎么编写测试用例?
CentOS系统安装MySQL数据库
1、 Installation and deployment of MySQL
小程序毕设作品之微信教室预约小程序毕业设计(3)后台功能
二叉树前中后序遍历
MallBook:如何通过供应链结算管理系统推动供应链金融快速落地?
ora-01153
Simple canvas animation principle
The latest trend of London Silver depends on the K line
Profile - sessions_ per_ User: limit the number of user sessions
小程序毕设作品之微信企业公司小程序毕业设计(8)毕业设计论文模板
使用PyQt5 初始化时,super() 和 _ init _ () 函数的配合使用所面临的问题,以及对应的学习和解决方案































