我试图建立一个RNN(LSTM)模型,将二进制文件分类为良性/恶意软件。我现在看到的数据结构如下
{
"binary1": {
"label": 1,
"sequences": [
["api1","api2","api3", ...],
["api1","api2","api3", ...],
["api1","api2","api3", ...],
["api1","api2","api3", ...],
...
]
},
"binary2": {
"label": 0,
"sequences": [
["api1","api2","api3", ...],
["api1","api2","api3", ...],
["api1","api2","api3", ...],
["api1","api2","api3", ...],
...
]
},
...
}
在这里,每个二进制都有可变数量的序列,每个序列都有可变数量的API调用。 我可以填充数据,以便所有二进制文件都有相同数量的序列,并且每个序列也有相同数量的API调用。 但我的问题是,我该如何使用这些数据进行培训
问题是,恶意二进制文件的所有序列可能都不是恶意序列。因此,如果我使用这个标签并指出所有这些序列都是恶意的,如果一些序列在良性文件中也类似,那么良性二进制文件可能会被视为恶意软件
为了更好地理解这个问题,将每个二进制代码作为twitter上的一个人,将每个API调用序列作为tweet中的一个单词。一个用户可能会在tweet上发很多tweet,但其中有一些可能是关于体育的(例如)。在我的训练数据中,我知道哪些人在推特上谈论体育,但我不知道哪些推特是关于体育的。所以,我要做的是根据这些人的所有推特信息来分类他们是否喜欢运动
同样,我知道二进制文件是否恶意,但我不知道哪个API调用序列是恶意的罪魁祸首。我希望模型能从训练数据中识别出这些序列。有可能吗?我应该使用什么架构
希望我能转达我的问题,谢谢阅读并等待建议
目前没有回答
相关问题 更多 >
编程相关推荐