转载请注明出处:http://blog.csdn.net/u010484477 O(∩_∩)O谢谢
在分析病毒样本时,最好的境界就是一段病毒特征码就能够把样本区分出来。
因为我们计算的重要元素是相同偏移量上的相同恶意代码特征串。
由此我进行了下面的Python来判断距离程序开始的入口点:偏移量相同的相同特征串
#!/usr/bin/python
打开D,F两个病毒样本
contentD = open("D","rb").read()
contentF = open("F","rb").read()
分别求出他们的长度,为下面的循环做条件
lenD = len(contentD)
lenF = len(contentF)
i = 0
offsetD = 0
offsetF = 0
numRange = 0
取短的字符串
if lenD > lenF:
numRange = lenF
else:
numRange = lenD
我要求的是特征串相同的长度为64,
while (i+64)<numRange:
if cmp(contentD[272+i:272+32+i],contentF[288+i:288+32+i]) == 0:
offsetD = 272+i
offsetF = 288+i
print 'offsetD is %d'%offsetD
print 'offsetF is %d'%offsetF
print '==================='
i = i + 1
else:
i = i + 1
上面的272和288是我通过其他的程序算出的程序入口点即_start到文件头的偏移。
因为在病毒样本分析的时候,有时要用到Python来进行计算,新学的Python,觉得挺有意思的。
喜欢的一句话:你要看自己是否尽力了,可以看是否能用这些努力让自己安心接受一切结果