注意:本文从旧博客迁移过来,涉及内容可能已经过时,请选择性阅读。

好久没摸ASM,兴趣来了就玩玩,今天发一个很简单的用ASM实现的下载者,主要的代码行都加了注释。为节省空间,追求速度,MOV之类的语句都用PUSH和POP代替,以及并没有用到数据区段,这样下来大概会节约了1KB大小,变量都直接用寄存器和堆栈保存的。

编译之后的程序加壳之后大小已经到了最小的极限。算得上是非常小的下载者(以前看到过VB写的下载者压缩之后900多byte,看了下源码就一个DOWNLOAD函数一个WINEXE函数)。

由于可能会被用来作为病毒或者后门,我这里仅提供代码截图供技术研究和参考。另外源代码也比较简单,看看注释就知道怎么回事了。

首先是代码头:

其次是代码段:

原理很简单,就从指定的地址下载你想要在中了你病毒的机器上运行的程序下载地址即可,然后下载者会下载到目标机,并运行。

编译后的大小1KB多一点,压缩处理之后将会更小。配合网马使用,那效果将会很不错。由于是直接调用的库函数,而且没有加壳处理,以及特征修改,所以并没有实现免杀(即:不会被杀毒软件杀掉)。

卡巴扫描提示为:

发挥一下,咱们可以做一个生成器,方便下载地址的更改,避免重新编译。这个会在下一篇日志中提到,以及实现的方法。