This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
cuiyiming-gradproj/DataSet/DataTag/chelloFeature.py
2019-12-13 11:41:42 +08:00

58 lines
1.7 KiB
Python

import json
import sys
import traceback
streamTagDict = dict()
appCipherDict = dict()
def streamTagDictBuild():
filename = "../result/2019-12-06-0/stream_tag.txt"
with open(filename) as f:
logs = f.readlines()
for log in logs:
log = log.split(":")
stream = log[0].split(" ")
streamStr = ""
for item in stream:
streamStr += item
streamStr += ','
tag = log[1]
streamTagDict[streamStr] = tag
def appCipherDictBuild():
filename = "../result/2019-12-06-0/stream_feature.txt"
tagFailCount = 0
tagSuccCount = 0
with open(filename) as f:
logs = f.readlines()
for log in logs:
try:
log = json.loads(log)
streamStr = log["sip"] + "," + str(log["sport"]) + ',' + log["dip"] + ',' + str(log["dport"]) + ','
appName = streamTagDict[streamStr]
cipherSuites = log['tls']['cipher_suites']
cipherSuitesStr = ""
for cipherSuite in cipherSuites:
cipherSuitesStr += cipherSuite
if appName not in appCipherDict.keys():
appCipherDict[appName] = set()
appCipherDict[appName].add(cipherSuitesStr)
tagSuccCount += 1
except:
tagFailCount += 1
#traceback.print_exc()
continue
print("tagFailCount = " + str(tagFailCount))
print("tagSuccCount = " + str(tagSuccCount))
def main():
streamTagDictBuild()
appCipherDictBuild()
for appName, cipherList in appCipherDict.items():
print(appName)
print(cipherList)
if __name__ == '__main__':
main()