易语言 文件捆绑机的原理【转载】

来源:互联网 发布:香草天空知乎 编辑:程序博客网 时间:2024/05/16 04:43
前段时间研究了一下文件捆绑,查了相关的资料,觉得这篇文章挺好的,而且看浏览过的人数也不多,应该没多少人看过吧,转给大家研究一下。
         文章比较长,想学技术的建议耐心看完,好好理解,看完之后你会觉得有所收获的,相信我!


         一、传统的捆绑器。这种原理很简单,也是目前用的最多的一种。就是将B.exe附加到A.exe的末尾。这样当A.exe被执行的时候,B.exe也跟着执行了。这种捆绑器的代码是满网都是。我最早是从jingtao的一篇关于流的文章中得知的。就目前来说,已经没什么技术含量了。
         检测方法:稍微懂一点PE知识的人都应该知道。一个完整有效的PE/EXE文件,他的里面都包含了几个绝对固定的特点[不管是否加壳]。一是文件以MZ开头,跟着DOS头后面的PE头以PE\0\0开头。有了这两个特点,检测就变得很简单了。只需利用UltraEdit一类工具打开目标文件搜索关键字MZ或者PE。如果找到两个或者两个以上。则说明这个文件一定是被捆绑了。不过值得注意的是,一些生成器也是利用了这个原理,将木马附加到生成器末尾,用户选择生成的时候读出来。另外网上流行的多款“捆绑文件检测工具”都是文件读出来,然后检索关键字MZ或者PE。说到这里,相信大家有了一个大概的了解。那就是所谓的“捆绑文件检测工具”是完全靠不住的一样东西。 (在我写的那篇帖子里面,有好几个人都是过分依赖捆绑文件扫描工具,看了这个之后这个观点应该会有所改变吧)


         二、资源包裹捆绑器。就这原理也很简单。大部分检测器是检测不出来的,但灰鸽子木马辅助查找可以检测出捆绑后未经加壳处理的EXE文件。但一般人都会加壳,所以也十分不可靠。这个学过编程或者了解PE结构的人都应该知道。资源是EXE中的一个特殊的区段。可以用来包含EXE需要/不需要用到的任何一切东西。利用这个原理进行100%免杀捆绑已经让人做成了动画。 大家可以去下载看看。那捆绑器是如何利用这一点的呢?这只需要用到BeginUpdateResource、UpdateResource和EndUpdateResource这三个API函数就可以搞定。这三个API函数是用来做资源更新/替换用的。作者只需先写一个包裹捆绑文件的头文件Header.exe.头文件中只需一段释放资源的代码。而捆绑器用的时候先将头文件释放出来,然后用上面说的三个API函数将待捆绑的文件更新到这个头文件中即完成了捆绑。类似原理被广泛运用到木马生成器上。 

        检测方法:一般这种很难检测。如果你不怕麻烦,可以先将目标文件进行脱壳。然后用“灰鸽子木马辅助查找”或“ResTorator”一类工具将资源读出来进行分析。但这种方法毕竟不通用。 所以还是推荐有条件的朋友使用虚拟机。  



          三、编译器捆绑法。暂时不知用什么名字来形容,所以只能用这个来代替。这种方法相当的阴险。是将要捆绑的文件转换成16进制保存到一个数组中。像这样muma:array[0..9128] of Byte=($4D,$5A,$50....$00); 然后用时再用API函数CreateFile和WriteFile便可将文件还原到硬盘。这里稍稍学过编程的都知道。代码中的数组经过编译器、连接器这么一搞。连影都没了。哪还能有什么文件是吧?所以就这种方法而言。

         目前还没有可以查杀的方法。这种方法可以利用编程辅助工具jingtao的DcuAnyWhere或Anskya的AnyWhereFileToPas来实现。 


          四、最最毒辣的一种。因为暂时用的人较少,且危害性及查杀难度太大。[一个被杀的病毒直接捆绑就能免杀,汗~]所以就不公布了。此法查杀方法通用性极差。如果流行,估计大家连动画都不敢下着看了。
        (额.... 这个我也不清楚他在说什么方法,知道的大牛请说明一下,谢谢~)


       嘻嘻,附上我的研究结果:。   
       此捆绑机用了以上说的第一种原理,但因为易语言写的,在网上找到到源码,所以全部的代码只能自己写。因为此东东太邪恶了,还是不公布源代码了,嘻嘻~
        此捆绑机捆绑后体积只增加20K,部分捆绑文件扫描工具扫描不出来(当然这是未加密的,如果使用加密方式,估计90%都扫不了),哈哈,有兴趣么?


=======================================


还有分享一个也是在研究捆绑机时找到的一个用winRaR做捆绑文件的方法(很实用哦!亲测)


准备两个文件,一个是木马,一个是正常文件。
1:选中两个文件
2:添加到压缩文件
3:双击打开你刚才捆绑的文件
4:按下Ctrl建,同时选中两个文件
5:点击自解压格式
6:点高级选项
7:解压后运行 写上你的木马文件,我这里是Sever_Setup.exe
8:解压前运行 的是你要正常运行的文件MyCCL.exe
9:点击模式 全部隐藏 覆盖所有文件
10:选择 文本和图标 从文件加载自解压文件图标 我们用图标提取器来提取。我们捆绑的是MYCCL.EXE,所以就用他的图标,就是他了。
11:点确定
按上边的操作你就做出了一个WINRAR捆绑的程序,你运行这个EXE就等于先运行了MYCCL.EXE然后运行了木马。。。。


看似完美了 。。。但是你用右键点击的时候还是会看到 有 “用WINRAR打开”的选项,说明这个文件是个自


解压文件,怎么办呢?加壳?不行。。。加壳之后一般都会报错的。。。


以下测试时用C32载入搜索搜不到相关的数值,不知道是不是我操作不对还是怎样,大家测试下吧!


哈哈,。拿出你的C32ASM 或者其他的编辑器都行。。


16进制搜索


搜索 526172211A07 


把61改成其他的数字(比如62)


再搜索807A0161,把61改成之前改的值,这里改成62.


保存,右键点击试试,哈哈,没有了用winrar打开的菜单了吧。。。
0 0