捆绑
捆绑是指将两个及以上可执行文件重新组装成一个文件的过程,这样就可以实现运行可执行文件后同时运行其他多个可执行文件。 说白点其实就是把多个可执行文件“组合”成一个可执行文件,而这个可执行文件还必须有“分解”能力,这样才能把 EXE分离出来,使之正常运行。而“组合”也可是多种形式的,下面为几种捆绑方式:
1、把exe文件一个个加到文件末尾
这种原理很简单,也是目前用的最多的方式,就是将B.EXE附加到A.EXE末尾,这样当A.EXE被执行的时候而B.EXE也跟着执行了。这种捆绑器的代码满网络都是,就目前没什么技术含量。
2、资源捆绑法
这是以资源的形式组合到一个EXE文件中的方式。资源是EXE中一个特殊区段,可以包含EXE需要不需要的用到的任何一切东西。这种方法是如何利用这一点的?只需要用的BeginUpdateResource、UpdateResource、EndUpdateResource这三个API函数就可以了,因为这三个函数是用于更新替换用的。只需要些一个包裹文件的头文件header.exe,头文件中只需要一段释放资源的代码。而捆绑器用的时候先将头释放出来,然后根据上面三个函数将待捆绑的更新到这个头文件几完成捆绑。类似原理广泛用于木马生成器中。
3、编译器捆绑法
这种方法相当阴险,是将要捆绑的文件转换成16进制保存到一个数组中。像这样的语句:
muma:array[0..9128] of Byte=($4D,$5A.$50….$00); 需要的时候再用API 函数CreateFile和WriteFile便可将文件还原硬盘,这样经过编译器连接器一弄,检测到可能性就很小了。
)

