对于依赖文件哈希值的杀毒软件,只需要在PE文件后面追加随机内容即可以绕过检测。一种比较简单的实现是生成一段随机数据,随机数据的长度是随机的,内容也是随机的。定义数据的长度为:
random_length=2n
其中,n是5~8之间的随机整数,实现方法如下:
self.min_append_log2 = 5 self.max_append_log2 = 8 def __random_length(self): return 2**random.randint(self.min_append_log2, self.max_append_log2)
数据的内容也是随机生成的,完整的随机数据产生方式如下,生成的内容追加到PE文件尾部,代码如下:
upper = random.randrange(256) L = self.__random_length() self.bytez + bytes([random.randint(0, upper) for _ in range(L)])