如果我违反了开源协议,不公开源代码,那别人怎么样知道我违反了协议呢?

如果我违反了开源协议,不公开源代码,那别人怎么样知道我违反了协议呢?

· json · rss
Subscribe:

About

因为有一项技术叫做二进制分析技术。

在安全分析领域二进制分析一直是很重要的方向。(尽管本人的方向是源代码静态分析。)

因为病毒制作者不单不公开源代码,还要尽可能的混淆二进制代码,让杀毒软件难以分析。

杀毒软件使用静态分析可以做的事情主要有抓常亮,特殊运算符,调用系统接口和CFG。

例如出现循环异或这个特征,那么就很可能是CBC模式。

调用系统接口很简单,因为一般需要调用系统接口的一些api,而这些api也有固定的格式,从而可以找到。

Cfg是函数调用图,例如a调用b,b调用c,c调用d之类的。简单的混淆之后的CFG是一样或者高度类似的,可以通过相似度来分析。

而动态分析可以做的事情就更多了,比如针对勒索软件就会检测系统加密api调用情况,io接口的吞吐量,cpu调用情况等等。

因为勒索软件往往需要短时间加密大量文件,所以就会产生大量io和cpu占用。

最有效的方法就是钓鱼文件了,就是安全软件会创建一些随机docx,pdf文档或者密钥文件之类,而且放在系统里面。如果安全软件发现这些文件被读取了,它就知道遇到勒索软件,开始紧急阻止勒索软件。