Genius 二进制文件函数特征提取的复现
0.原文
Scalable graph-based bug search for firmware images
https://github.com/qian-feng/Gencoding
1.Raw-feature-extractor 模块复现
1.1 生成 二进制文件的acfg。存储到.ida文件
The feature extraction is built on top of IDA-pro. We wrote the scripts based on ida-python and extract the attributed control flow graph. ``preprocessing_ida.py'' is the main program to extract the ACFG.
功能主要包括获取存储生成的ACFG路径、读取ida分析的文件等等。通过调用Get_func_cfgs_c这个函数获取二进制文件的ACFG集合,保存到 path/文件名.ida
# -*- coding: UTF-8 -*- # preprocessing_ida.py
import sys from func import * from raw_graphs import * from idc import * import os import argparse import raw_graphs def print_obj(obj): "打印对象的所有属性" print(obj.__dict__) def parse_command(): parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument("--path", type=str, help="The directory where to store the generated .ida file") args = parser.parse_args() return args if __name__ == '__main__': #print str(sys.argv) #['raw-feature-extractor/preprocessing_ida.py'] #print str(idc.ARGV) #['raw-feature-extractor/preprocessing_ida.py', '--path', 'C:\\Program1\\pycharmproject\\Genius3\\new'] #print idc.ARGV[2] #print type(idc.ARGV[2]) args = parse_command() #path = args.path path = idc.ARGV[2] analysis_flags = idc.GetShortPrm(idc.INF_START_AF) analysis_flags &= ~idc.AF_IMMOFF # turn off "automatically make offset" heuristic idc.SetShortPrm(idc.INF_START_AF, analysis_flags) idaapi.autoWait() cfgs = get_func_cfgs_c(FirstSeg()) binary_name = idc.GetInputFile() + '.ida' print path print binary_name fullpath = os.path.join(path, binary_name) pickle.dump(cfgs, open(fullpath,'w')) #print binary_name fr = open(fullpath,'r') data1 = pickle.load(fr) #print_obj(data1) print "end" #idc.Exit(0)
Get_func_cfgs_c定义在func.py。这里只截取一部分代码。
for funcea in Functions(SegStart(ea)): 这句代码功能是从起始位置,遍历所有的函数。(https://blog.csdn.net/weixin_39683163/article/details/110910148)
def get_func_cfgs_c(ea): # type: (object) -> object binary_name = idc.GetInputFile() raw_cfgs = raw_graphs(binary_name) externs_eas, ea_externs = processpltSegs() i = 0 for funcea in Functions(SegStart(ea)): funcname = get_unified_funcname(funcea) func = get_func(funcea) print i i += 1 icfg = cfg.getCfg(func, externs_eas, ea_externs) func_f = get_discoverRe_feature(func, icfg[0]) raw_g = raw_graph(funcname, icfg, func_f) #生成一个rawcfg。raw_graph是一个python class,定义在 raw_graph.py raw_cfgs.append(raw_g) # raw_graphs 是另一个python class,存储raw_graph的list。定义在 raw_graph.py print_obj(raw_g) #print(raw_g) 由于raw_graph、raw_graphs都是class,直接print只会打印<raw_graphs.raw_graphs instance at 0x09888FD0>,不能打印对象的属性。 #https://blog.51cto.com/steed/2046408 print_obj、 print(obj.__dict__) return raw_cfgs
通过添加打印信息,可知每一个函数的acfg的格式: <raw_graphs.raw_graph instance at 0x09958B48> 。即存在raw_graphs 这个class中的,raw_graph class instance。直接printinstance,看不到实例中的属性具体的值
raw_graph和raw_graphs的定义在raw_graph.py。这里只截取一部分。
class raw_graph: def __init__(self, funcname, g, func_f): #print "create" self.funcname = funcname self.old_g = g[0] self.g = nx.DiGraph() self.entry = g[1] self.fun_features = func_f self.attributing() class raw_graphs: #创建空的list,然后存储raw_graphs类的instance def __init__(self, binary_name): self.binary_name = binary_name self.raw_graph_list = [] def append(self, raw_g): self.raw_graph_list.append(raw_g) def __len__(self): return len(self.raw_graph_list)
1.2 读取保存的Ida文件内容
代码中,通过pickle.dump存储得到的raw_graphs,存储到.ida文件。首先尝试直接pickle.load读取内容
fr = open(fullpath,'rb') data1 = pickle.load(fr) print(data1)
报错
File "raw-feature-extractor/preprocessing_ida.py", line 40, in <module>
data1 = pickle.load(fr) #ImportError: No module named raw_graphs
ImportError: No module named raw_graphs
解决:
dump和load时应该采用同样的格式。如w对应r,wb对应rb。同时pickle存储时会把class的信息也存到文件中,所以load时需要再import 对应的class,或者在同一目录下load
pickle.load,直接print,格式为 <raw_graphs.raw_graph instance at 0x09958B48>,还是看不到实例中的属性具体的值
尝试直接肉眼读pickle存储的.ida文件,很难看懂。参考 https://docs.python.org/3/library/pickle.html https://www.cnblogs.com/tkqasn/p/6005025.html pickle和json的区别 json人类可读,而pickle不是人类可读的。
由于pickle无法直接肉眼读取,尝试打印raw_class 的instance的属性值。print无法打印具体的class instance的值,只能打印<raw_graphs.raw_graph instance at 0x09958B48> 这种格式的信息,没有办法读
这里参考 https://blog.51cto.com/steed/2046408,使用dict读取class instance的值
可以看到成功的打印了人类可以读懂的内容。包括acfg的具体值。
def print_obj(obj):
"打印对象的所有属性" print(obj.__dict__)
print_obj(raw_graphs)
{'raw_graph_list': [<raw_graphs.raw_graph instance at 0x097005A8>, <raw_graphs.raw_graph instance at 0x09872918>, <raw_graphs.raw_graph instance at 0x0A202760>, <raw_graphs.raw_graph instance at 0x0A202558>, <raw_graphs.raw_graph instance at 0x0A202B20>, <raw_graphs.raw_graph instance at 0x0A2023F0>, <raw_graphs.raw_graph instance at 0x0A2024E0>, <raw_graphs.raw_graph instance at 0x0A202AD0>, <raw_graphs.raw_graph instance at 0x0A127328>, <raw_graphs.raw_graph instance at 0x0A127D78>, <raw_graphs.raw_graph instance at 0x0A127968>,
<raw_graphs.raw_graph instance at 0x0A127300>, <raw_graphs.raw_graph instance at 0x0A127C38>, <raw_graphs.raw_graph instance at 0x0A127080>, <raw_graphs.raw_graph instance at 0x0A1AE260>, <raw_graphs.raw_graph instance at 0x0A1AEFD0>, <raw_graphs.raw_graph instance at 0x0A1AEDF0>, <raw_graphs.raw_graph instance at 0x0A1AE670>, <raw_graphs.raw_graph instance at 0x0A1AE0F8>, <raw_graphs.raw_graph instance at 0x0A1AE8F0>, <raw_graphs.raw_graph instance at 0x0A1AE2B0>, <raw_graphs.raw_graph instance at 0x0A251C10>, <raw_graphs.raw_graph instance at 0x0A251EB8>,
<raw_graphs.raw_graph instance at 0x0A251738>, <raw_graphs.raw_graph instance at 0x0A251850>, <raw_graphs.raw_graph instance at 0x0A2514E0>, <raw_graphs.raw_graph instance at 0x0A2519B8>, <raw_graphs.raw_graph instance at 0x0A251648>, <raw_graphs.raw_graph instance at 0x0A1424B8>, <raw_graphs.raw_graph instance at 0x0A142968>, <raw_graphs.raw_graph instance at 0x0A1425F8>, <raw_graphs.raw_graph instance at 0x0A142198>, <raw_graphs.raw_graph instance at 0x0A142300>, <raw_graphs.raw_graph instance at 0x0A142A08>, <raw_graphs.raw_graph instance at 0x0A11C328>,
<raw_graphs.raw_graph instance at 0x0A11CFD0>, <raw_graphs.raw_graph instance at 0x0A11C968>, <raw_graphs.raw_graph instance at 0x0A11C8A0>, <raw_graphs.raw_graph instance at 0x0A11C530>, <raw_graphs.raw_graph instance at 0x0A11C440>, <raw_graphs.raw_graph instance at 0x0A11CE18>, <raw_graphs.raw_graph instance at 0x0A126148>, <raw_graphs.raw_graph instance at 0x0A126BC0>, <raw_graphs.raw_graph instance at 0x0A126F80>, <raw_graphs.raw_graph instance at 0x0A126940>, <raw_graphs.raw_graph instance at 0x0A126080>, <raw_graphs.raw_graph instance at 0x0A1260D
print_obj(raw_g)
{'entry': 0, 'fun_features': [0, 0, 0, 0, 2, 1, 8, 3, 0.0, [], [42948, 102400]], 'old_g': <networkx.classes.digraph.DiGraph object at 0x085E8AD0>, 'g': <networkx.classes.digraph.DiGraph object at 0x0860DD70>, 'funcname': 'open'}
{'entry': 0, 'fun_features': [0, 0, 0, 0, 2, 1, 8, 3, 0.0, [], [42948, 102400]], 'old_g': <networkx.classes.digraph.DiGraph object at 0x085E8AD0>, 'g': <networkx.classes.digraph.DiGraph object at 0x0860DD70>, 'funcname': 'open'}
和raw_graph class定义一一对应: funcname、old_g、gentry、fun_feature(即论文Table one 定义的ACFG的属性)
class raw_graph:
def __init__(self, funcname, g, func_f):
#print "create"
self.funcname = funcname
self.old_g = g[0]
self.g = nx.DiGraph()
self.entry = g[1]
self.fun_features = func_f
self.attributing()
我们主要关心fun_features中的各个值的含义。通过discovRe.py中的函数实现。在ptycharm中按ctrl,可以跳转到对应的统计函数
def get_discoverRe_feature(func, icfg): start = func.startEA end = func.endEA features = [] FunctionCalls = getFuncCalls(func) #1 features.append(FunctionCalls) LogicInstr = getLogicInsts(func) #2 features.append(LogicInstr) Transfer = getTransferInsts(func) #3 features.append(Transfer) Locals = getLocalVariables(func) #4 features.append(Locals) BB = getBasicBlocks(func) #5 features.append(BB) Edges = len(icfg.edges()) #6 features.append(Edges) Incoming = getIncommingCalls(func) #7 features.append(Incoming) #8 Instrs = getIntrs(func) features.append(Instrs) between = retrieveGP(icfg) #9 features.append(between) strings, consts = getfunc_consts(func) features.append(strings) features.append(consts) return features
按顺序为
#1 function calls(本函数的函数调用指令(call jal jalr)数量)。。注意arm中没有这些指令
#2 logic instructions ,本函数的逻辑运算指令数量。如and、or的数量
#3 TransferIns 转移指令(如jmp arm中为mov)数量
#4 LocalVariables 局部变量数量
#5 BB basicblocks数量
#6 Edges icfg edges数量。icfg是另一篇论文dicovRe中的特征,这里暂时不管
#7 IncommingCalls,调用本函数的指令数量
#8 Intrs 指令数量
#9 between 结构特征中的betweeness。
nx.betweenness_centrality(G) 可以计算出每个node的betweeness
#10 strings 字符串
#11 consts 常量
问题是,这些特征是函数界别的。且betweeness应该是每个节点的betness,nx.betweenness_centrality(G) 返回值是list,为啥现在只显示是一个小数?
去看了源代码,在def betweeness(g):中计算确实是list,但是返回前做了计算转换为float,将基本块级别的betweeness转化为函数级别的betweeness。暂时就这样,以后有需求再改
def betweeness(g): #pdb.set_trace() betweenness = nx.betweenness_centrality(g) #print betweenness return betweenness
def retrieveGP(g):
bf = betweeness(g)
#close = closeness_centrality(g)
#bf_sim =
#close_sim =
x = sorted(bf.values())
value = sum(x)/len(x)
return round(value,5)
通过读源码发现,基本块级别的信息存在ACFG-g。
1.3 输出ACFG
1.3.1 概述
又看了代码。'old_g': <networkx.classes.digraph.DiGraph object at 0x085E8AD0>, 'g': <networkx.classes.digraph.DiGraph object at 0x0860DD70>
g是raw_graph中通过attributing()函数绘制的,也就是说其实论文中用到的特征并不是fun_features,而是 'g'。即g才是acfg,fun_features只是一个统计量,可以用于了解函数,但是没有其他用处
'g': <networkx.classes.digraph.DiGraph object at 0x0860DD70> G = nx.DiGraph() # 无多重边有向图
下一步工作是打印acfg,以及获取acfg中的信息。
需要明白,怎么访问python class 直接用 " . "
https://www.cnblogs.com/huangqihui/p/9355308.html
testpath="C:\Program1\pycharmproject\Genius3/acfgs/hpcenter.ida" fr = open(fullpath,'r') data1 = pickle.load(fr) print(type(data1)) #<type 'instance'> print(data1.raw_graph_list[0])
<type 'instance'>
<raw_graphs.raw_graph instance at 0x0902F7D8>
这样可以直接读取pickle dump保存的ida文件,不用每次都打开ida((实际上暂时有些问题,先不管
print(data1.raw_graph_list[0].g) 这样打印不出来networkx的digraph。
先选择一个函数,选sub_166c4。
393
{'entry': 0, 'fun_features': [0, 0, 0, 0, 35, 53, 0, 183, 0.0601, [], [12, 1, 1, 0, 223, 76, 1, 48, 9, 0, 4294967295L, 4294967295L, 1, 1, 1, 1, 0, 0, 4294967294L, 0, 1, 0, 10, 3, 12]], 'old_g': <networkx.classes.digraph.DiGraph object at 0x08DA7AB0>, 'g': <networkx.classes.digraph.DiGraph object at 0x08DA7A30>, 'funcname': 'sub_166C4'}
testpath="C:\Program1\pycharmproject\Genius3/acfgs/hpcenter.ida" fr = open(fullpath,'r') data1 = pickle.load(fr) print(type(data1)) #<type 'instance'> print(data1.raw_graph_list[393].__dict__) print(data1.raw_graph_list[393].g) print(data1.raw_graph_list[393].g.nodes()) #print_obj(data1) #print cfgs.raw_graph_list[0] #idc.Exit(0) 输出: <type 'instance'> {'entry': 0, 'fun_features': [0, 0, 0, 0, 35, 53, 0, 183, 0.0601, [], [12, 1, 1, 0, 223, 76, 1, 48, 9, 0, 4294967295L, 4294967295L, 1, 1, 1, 1, 0, 0, 4294967294L, 0, 1, 0, 10, 3, 12]], 'old_g': <networkx.classes.digraph.DiGraph object at 0x0A01D730>, 'g': <networkx.classes.digraph.DiGraph object at 0x0A024E50>, 'funcname': 'sub_166C4'} [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34]
ida中CFG
1.3.2 直接读取.ida文件
接下来要做到是怎样直接读pickle dump的.ida文件,不用每次都打开ida
写一个read_ida脚本,注意放在相同路径下(或通过其他方式导入相关module)
# -*- coding: UTF-8 -*-
import sys
def print_obj(obj):
"打印对象的所有属性"
print(obj.__dict__)
import pickle
if __name__ == '__main__':
testpath = "C:\Program1\pycharmproject\Genius3/acfgs/hpcenter.ida"
fr = open(testpath, 'r')
data1 = pickle.load(fr)
print(type(data1))
print_obj(data1)
print data1.raw_graph_list[0]
运行报错
File "C:\Program1\pycharmproject\Genius3\raw-feature-extractor\raw_graphs.py", line 5, in <module> import networkx as nx ImportError: No module named networkx
查看https://raw_graphs.py/ 。推测报错原因是,在有ida启动时,会自动选择系统的python2.7路径,导入该路径下的networkx包,而不经过ida,直接运行时没有导入,所以需要sys.path.insert
import sys #sys.path.insert(0, '/usr/local/lib/python2.7/dist-packages/') import networkx as nx
参考:
https://www.cnblogs.com/bigband/p/13745067.html
https://www.cnblogs.com/gdut-gordon/p/9336067.html
由于我这里换了windos运行,修改
#sys.path.insert(0, '/usr/local/lib/python2.7/dist-packages/') 增加 本地环境 sys.path.insert(1, 'C:/Python27/Lib/site-packages')
然后运行,就没问题了。可以直接读取之前pickle dump的ida文件
1.3.3 输出acfg信息
raw_graph.py中可以看出,acfg g实在discovRe的old_g的基础上构建的。
class raw_graph: def __init__(self, funcname, g, func_f): #print "create" self.funcname = funcname self.old_g = g[0] self.g = nx.DiGraph() self.entry = g[1] self.fun_features = func_f self.attributing() def __len__(self): return len(self.g) def attributing(self): self.obtainOffsprings(self.old_g) for node in self.old_g: fvector = self.retrieveVec(node, self.old_g) self.g.add_node(node) self.g.node[node]['v'] = fvector
可以看到g的节点的属性,有8个
def retrieveVec(self, id_, g): feature_vec = [] #numC0 numc = g.node[id_]['consts'] feature_vec.append(numc) #nums1 nums = g.node[id_]['strings'] feature_vec.append(nums) #offsprings2 offs = g.node[id_]['offs'] feature_vec.append(offs) #numAs3 numAs = g.node[id_]['numAs'] feature_vec.append(numAs) # of calls4 calls = g.node[id_]['numCalls'] feature_vec.append(calls) # of insts5 insts = g.node[id_]['numIns'] feature_vec.append(insts) # of LIs6 insts = g.node[id_]['numLIs'] feature_vec.append(insts) # of TIs7 insts = g.node[id_]['numTIs'] feature_vec.append(insts) return feature_vec
应该是一一对应的////或者old_G本身包含了一些信息,加上这些append的信息,构成上表
然而没找到betweeness。通过看源码发现betweeness在调用retrieveGP函数时实现,包含在 fun_feature内。
最后写下测试的脚本
# -*- coding: UTF-8 -*- import sys import sys from matplotlib import pyplot as plt sys.path.insert(0, '/usr/local/lib/python2.7/dist-packages/') sys.path.insert(1, 'C:/Python27/Lib/site-packages') import networkx as nx def print_obj(obj): "打印对象的所有属性" print(obj.__dict__) import pickle #sub_10F20 308 反编译代码有字符串,但是这个特征提取里没有字符串 constant,可能是间接引用的,不识别。看了下所有函数的特征,几乎都没有字符串常量,可能都是写在别的地方然后引用的。 #sub_166C4 393 if __name__ == '__main__': testpath = "C:\Program1\pycharmproject\Genius3/acfgs/hpcenter.ida" fr = open(testpath, 'r') data1 = pickle.load(fr) #一个二进制文件的acfgs #print(type(data1)) #print_obj(data1) #print data1.raw_graph_list[393] #print_obj(data1.raw_graph_list[393]) #nx.draw(data1.raw_graph_list[393].g,with_labels=True) #plt.show() print "一个二进制文件的所有函数的原始特征,list。" print_obj(data1) #acfg list print "\n" print "一个函数的原始特征,由old_g(discovRe方法的ACFG),g(Genius方法的ACFG),fun_feature(表示函数级别的特征的向量)三部分构成" print_obj(data1.raw_graph_list[393]) #一个函数的acfg print "\n" feature=data1.raw_graph_list[393].fun_features print "函数级别特征: # 1 function calls # 2 logic instructions # 3 TransferIns # 4 LocalVariables # 5 BB basicblocks# 6 Edges # 7 IncommingCalls# 8 Intrs# 9 between # 10 strings # 11 consts" print feature print "\n" # G=data1.raw_graph_list[393].old_g # print G.node[0] # G.node[i]是dict # for key, value in G.node[0].items(): # print('{key}:{value}'.format(key=key, value=value)) # 一个基本块的特征 #1'consts' 数字常量 #2'strings'字符串常量 #3'offs' offspring 字节点数量? #4'numAs' 算数指令如INC #5'numCalls' 调用指令 #6'numIns' 指令数量 #7'numLIs' LogicInstructions 如AND #8'numTIs' 转移指令数量 G=data1.raw_graph_list[393].g print "# 一个基本块的特征 #1'consts' 数字常量 #2'strings'字符串常量 #3'offs' offspring 字节点数量? #4'numAs' 算数指令如INC #5'numCalls' 调用指令 #6'numIns' 指令数量 #7'numLIs' LogicInstructions 如AND #8'numTIs' 转移指令数量" print G.node[0] print "\n" # for key, value in G.node[0].items(): # print('{key}:{value}'.format(key=key, value=value)) #oldg就是读取IDA的CFG,所以数量、方向等都一样;g根据old_g生成,也一样 #old g G = data1.raw_graph_list[393].old_g nx.draw(G,with_labels=True) #plt.title('old_g') plt.show() # g G = data1.raw_graph_list[393].g nx.draw(G,with_labels=True) #plt.title('Genius_g') plt.show() # draw graph with labels pos = nx.spring_layout(G) nx.draw(G, pos) node_labels = nx.get_node_attributes(G, 'v') #networkx的node,由属性。g的属性为'v',意为原始特征的vector。old_g的属性见cfg_constructor.py nx.draw_networkx_labels(G, pos, labels=node_labels) #plt.title('Genius_g with raw feature vector') plt.show()
输出:
一个二进制文件的所有函数的原始特征,list。 {'raw_graph_list': [<raw_graphs.raw_graph instance at 0x15DBA7B0>, <raw_graphs.raw_graph instance at 0x15DBA968>, <raw_graphs.raw_graph instance at 0x15DBA9E0>, <raw_graphs.raw_graph instance at 0x15DBAA80>, <raw_graphs.raw_graph instance at 0x15DBAAF8>, <raw_graphs.raw_graph instance at 0x15DBAB98>, <raw_graphs.raw_graph instance at 0x15DBAC38>, <raw_graphs.raw_graph instance at 0x15DBAE18>, <raw_graphs.raw_graph instance at 0x15DD10A8>, <raw_graphs.raw_graph instance at 0x15DD1350>, <raw_graphs.raw_graph instance at 0x15DD15D0>, <raw_graphs.raw_graph instance at 0x15DD1878>, <raw_graphs.raw_graph instance at 0x15DD1AD0>, <raw_graphs.raw_graph instance at 0x15DD1D28>, <raw_graphs.raw_graph instance at 0x15DD1FD0>, <raw_graphs.raw_graph instance at 0x15DDB288>, <raw_graphs.raw_graph instance at 0x15DDB4B8>, <raw_graphs.raw_graph instance at 0x15DDB710>, <raw_graphs.raw_graph instance at 0x15DDB968>, <raw_graphs.raw_graph instance at 0x15DDBBC0>, <raw_graphs.raw_graph instance at 0x15DDBDF0>, <raw_graphs.raw_graph instance at 0x15DE60A8>, <raw_graphs.raw_graph instance at 0x15DE6328>, <raw_graphs.raw_graph instance at 0x15DE6558>, <raw_graphs.raw_graph instance at 0x15DE67D8>, <raw_graphs.raw_graph instance at 0x15DE6A08>, <raw_graphs.raw_graph instance at 0x15DE6C88>, <raw_graphs.raw_graph instance at 0x15DE6EE0>, <raw_graphs.raw_graph instance at 0x15DF2170>, <raw_graphs.raw_graph instance at 0x15DF23A0>, <raw_graphs.raw_graph instance at 0x15DF25F8>, <raw_graphs.raw_graph instance at 0x15DF2850>, <raw_graphs.raw_graph instance at 0x15DF2A80>, <raw_graphs.raw_graph instance at 0x15DF2D00>, <raw_graphs.raw_graph instance at 0x15DF2F80>, <raw_graphs.raw_graph instance at 0x15DFD210>, <raw_graphs.raw_graph instance at 0x15DFD468>, <raw_graphs.raw_graph instance at 0x15DFD698>, <raw_graphs.raw_graph instance at 0x15DFD8F0>, <raw_graphs.raw_graph instance at 0x15DFDB70>, <raw_graphs.raw_graph instance at 0x15DFDDA0>, <raw_graphs.raw_graph instance at 0x15DFDFD0>, <raw_graphs.raw_graph instance at 0x15E09238>, <raw_graphs.raw_graph instance at 0x15E09468>, <raw_graphs.raw_graph instance at 0x15E096E8>, <raw_graphs.raw_graph instance at 0x15E09940>, <raw_graphs.raw_graph instance at 0x15E09B98>, <raw_graphs.raw_graph instance at 0x15E09DF0>, <raw_graphs.raw_graph instance at 0x15E14058>, <raw_graphs.raw_graph instance at 0x15E142B0>, <raw_graphs.raw_graph instance at 0x15E14508>, <raw_graphs.raw_graph instance at 0x15E14760>, <raw_graphs.raw_graph instance at 0x15E14990>, <raw_graphs.raw_graph instance at 0x15E14BE8>, <raw_graphs.raw_graph instance at 0x15E14E68>, <raw_graphs.raw_graph instance at 0x15E1F0F8>, <raw_graphs.raw_graph instance at 0x15E1F378>, <raw_graphs.raw_graph instance at 0x15E1F5D0>, <raw_graphs.raw_graph instance at 0x15E1F850>, <raw_graphs.raw_graph instance at 0x15E1FAA8>, <raw_graphs.raw_graph instance at 0x15E1FCD8>, <raw_graphs.raw_graph instance at 0x15E1FF30>, <raw_graphs.raw_graph instance at 0x15E641C0>, <raw_graphs.raw_graph instance at 0x15E643F0>, <raw_graphs.raw_graph instance at 0x15E64670>, <raw_graphs.raw_graph instance at 0x15E648C8>, <raw_graphs.raw_graph instance at 0x15E64B48>, <raw_graphs.raw_graph instance at 0x15E64DC8>, <raw_graphs.raw_graph instance at 0x15E6F030>, <raw_graphs.raw_graph instance at 0x15E6F260>, <raw_graphs.raw_graph instance at 0x15E6F4B8>, <raw_graphs.raw_graph instance at 0x15E6F738>, <raw_graphs.raw_graph instance at 0x15E6F990>, <raw_graphs.raw_graph instance at 0x15E6FBC0>, <raw_graphs.raw_graph instance at 0x15E6FE18>, <raw_graphs.raw_graph instance at 0x15E7A080>, <raw_graphs.raw_graph instance at 0x15E7A2D8>, <raw_graphs.raw_graph instance at 0x15E7A508>, <raw_graphs.raw_graph instance at 0x15E7A760>, <raw_graphs.raw_graph instance at 0x15E7A9B8>, <raw_graphs.raw_graph instance at 0x15E7AC38>, <raw_graphs.raw_graph instance at 0x15E7AE68>, <raw_graphs.raw_graph instance at 0x15E850F8>, <raw_graphs.raw_graph instance at 0x15E85378>, <raw_graphs.raw_graph instance at 0x15E855A8>, <raw_graphs.raw_graph instance at 0x15E85800>, <raw_graphs.raw_graph instance at 0x15E85A80>, <raw_graphs.raw_graph instance at 0x15E85CB0>, <raw_graphs.raw_graph instance at 0x15E85F30>, <raw_graphs.raw_graph instance at 0x15E901C0>, <raw_graphs.raw_graph instance at 0x15E90418>, <raw_graphs.raw_graph instance at 0x15E90670>, <raw_graphs.raw_graph instance at 0x15E908C8>, <raw_graphs.raw_graph instance at 0x15E90B20>, <raw_graphs.raw_graph instance at 0x15E90D50>, <raw_graphs.raw_graph instance at 0x15E90FA8>, <raw_graphs.raw_graph instance at 0x15E9B288>, <raw_graphs.raw_graph instance at 0x15E9B508>, <raw_graphs.raw_graph instance at 0x15E9B760>, <raw_graphs.raw_graph instance at 0x15E9B990>, <raw_graphs.raw_graph instance at 0x15E9BC10>, <raw_graphs.raw_graph instance at 0x15E9BE40>, <raw_graphs.raw_graph instance at 0x15EA90D0>, <raw_graphs.raw_graph instance at 0x15EA9350>, <raw_graphs.raw_graph instance at 0x15EA95A8>, <raw_graphs.raw_graph instance at 0x15EA9828>, <raw_graphs.raw_graph instance at 0x15EA9A80>, <raw_graphs.raw_graph instance at 0x15EA9C88>, <raw_graphs.raw_graph instance at 0x15EA9EE0>, <raw_graphs.raw_graph instance at 0x15EB4170>, <raw_graphs.raw_graph instance at 0x15EB43F0>, <raw_graphs.raw_graph instance at 0x15EB4620>, <raw_graphs.raw_graph instance at 0x15EB4878>, <raw_graphs.raw_graph instance at 0x15EB4AD0>, <raw_graphs.raw_graph instance at 0x15EB4D50>, <raw_graphs.raw_graph instance at 0x15EB4FD0>, <raw_graphs.raw_graph instance at 0x15EBF260>, <raw_graphs.raw_graph instance at 0x15EBF5F8>, <raw_graphs.raw_graph instance at 0x15EBF968>, <raw_graphs.raw_graph instance at 0x15EBFCD8>, <raw_graphs.raw_graph instance at 0x15EBFFA8>, <raw_graphs.raw_graph instance at 0x15ECB3F0>, <raw_graphs.raw_graph instance at 0x15ECB8A0>, <raw_graphs.raw_graph instance at 0x15ECBA30>, <raw_graphs.raw_graph instance at 0x15ECBD00>, <raw_graphs.raw_graph instance at 0x15ED6328>, <raw_graphs.raw_graph instance at 0x15ED6EB8>, <raw_graphs.raw_graph instance at 0x15F651C0>, <raw_graphs.raw_graph instance at 0x15F65530>, <raw_graphs.raw_graph instance at 0x15F658A0>, <raw_graphs.raw_graph instance at 0x15F65A30>, <raw_graphs.raw_graph instance at 0x15F65E68>, <raw_graphs.raw_graph instance at 0x15F702D8>, <raw_graphs.raw_graph instance at 0x15F70828>, <raw_graphs.raw_graph instance at 0x15F70AF8>, <raw_graphs.raw_graph instance at 0x15F855F8>, <raw_graphs.raw_graph instance at 0x15F921C0>, <raw_graphs.raw_graph instance at 0x15F92AD0>, <raw_graphs.raw_graph instance at 0x15F92EE0>, <raw_graphs.raw_graph instance at 0x15FA00D0>, <raw_graphs.raw_graph instance at 0x15FA0288>, <raw_graphs.raw_graph instance at 0x15FA0440>, <raw_graphs.raw_graph instance at 0x15FA05F8>, <raw_graphs.raw_graph instance at 0x15FA07B0>, <raw_graphs.raw_graph instance at 0x15FA0968>, <raw_graphs.raw_graph instance at 0x15FA0E40>, <raw_graphs.raw_graph instance at 0x15FCCBE8>, <raw_graphs.raw_graph instance at 0x15FCCDC8>, <raw_graphs.raw_graph instance at 0x15FCCF80>, <raw_graphs.raw_graph instance at 0x15FD7170>, <raw_graphs.raw_graph instance at 0x15FD7328>, <raw_graphs.raw_graph instance at 0x15FD74E0>, <raw_graphs.raw_graph instance at 0x15FD7698>, <raw_graphs.raw_graph instance at 0x15FD7850>, <raw_graphs.raw_graph instance at 0x15FD7D78>, <raw_graphs.raw_graph instance at 0x15FE1418>, <raw_graphs.raw_graph instance at 0x15FE1A80>, <raw_graphs.raw_graph instance at 0x15FEB120>, <raw_graphs.raw_graph instance at 0x15FEB788>, <raw_graphs.raw_graph instance at 0x15FF5148>, <raw_graphs.raw_graph instance at 0x15FF57B0>, <raw_graphs.raw_graph instance at 0x15FF5FA8>, <raw_graphs.raw_graph instance at 0x16027198>, <raw_graphs.raw_graph instance at 0x16027738>, <raw_graphs.raw_graph instance at 0x16027CD8>, <raw_graphs.raw_graph instance at 0x167F42B0>, <raw_graphs.raw_graph instance at 0x167F4850>, <raw_graphs.raw_graph instance at 0x167F4DF0>, <raw_graphs.raw_graph instance at 0x167FE3C8>, <raw_graphs.raw_graph instance at 0x167FE968>, <raw_graphs.raw_graph instance at 0x167FEF08>, <raw_graphs.raw_graph instance at 0x1680A4E0>, <raw_graphs.raw_graph instance at 0x1680AA80>, <raw_graphs.raw_graph instance at 0x16814058>, <raw_graphs.raw_graph instance at 0x16814788>, <raw_graphs.raw_graph instance at 0x16814940>, <raw_graphs.raw_graph instance at 0x16814AF8>, <raw_graphs.raw_graph instance at 0x16814CB0>, <raw_graphs.raw_graph instance at 0x16814E68>, <raw_graphs.raw_graph instance at 0x1681F058>, <raw_graphs.raw_graph instance at 0x1681F210>, <raw_graphs.raw_graph instance at 0x1681F3C8>, <raw_graphs.raw_graph instance at 0x1681F8A0>, <raw_graphs.raw_graph instance at 0x1681FD78>, <raw_graphs.raw_graph instance at 0x16828288>, <raw_graphs.raw_graph instance at 0x16828760>, <raw_graphs.raw_graph instance at 0x16828C38>, <raw_graphs.raw_graph instance at 0x16832148>, <raw_graphs.raw_graph instance at 0x16832620>, <raw_graphs.raw_graph instance at 0x16832AF8>, <raw_graphs.raw_graph instance at 0x16832CB0>, <raw_graphs.raw_graph instance at 0x16832E68>, <raw_graphs.raw_graph instance at 0x1683F058>, <raw_graphs.raw_graph instance at 0x1683F210>, <raw_graphs.raw_graph instance at 0x1683F3C8>, <raw_graphs.raw_graph instance at 0x1683F580>, <raw_graphs.raw_graph instance at 0x1683F738>, <raw_graphs.raw_graph instance at 0x1683F8F0>, <raw_graphs.raw_graph instance at 0x1683FAA8>, <raw_graphs.raw_graph instance at 0x1683FC60>, <raw_graphs.raw_graph instance at 0x1683FE18>, <raw_graphs.raw_graph instance at 0x1683FFD0>, <raw_graphs.raw_graph instance at 0x1684B4E0>, <raw_graphs.raw_graph instance at 0x1684B9B8>, <raw_graphs.raw_graph instance at 0x16855058>, <raw_graphs.raw_graph instance at 0x168553A0>, <raw_graphs.raw_graph instance at 0x168556E8>, <raw_graphs.raw_graph instance at 0x1685B558>, <raw_graphs.raw_graph instance at 0x168670A8>, <raw_graphs.raw_graph instance at 0x16867580>, <raw_graphs.raw_graph instance at 0x16867738>, <raw_graphs.raw_graph instance at 0x168678F0>, <raw_graphs.raw_graph instance at 0x16867AA8>, <raw_graphs.raw_graph instance at 0x16867F80>, <raw_graphs.raw_graph instance at 0x16875490>, <raw_graphs.raw_graph instance at 0x16875AF8>, <raw_graphs.raw_graph instance at 0x16875E40>, <raw_graphs.raw_graph instance at 0x1687E1C0>, <raw_graphs.raw_graph instance at 0x16888030>, <raw_graphs.raw_graph instance at 0x16888B48>, <raw_graphs.raw_graph instance at 0x16893058>, <raw_graphs.raw_graph instance at 0x16893210>, <raw_graphs.raw_graph instance at 0x168936E8>, <raw_graphs.raw_graph instance at 0x16893BC0>, <raw_graphs.raw_graph instance at 0x1689D260>, <raw_graphs.raw_graph instance at 0x1689D5A8>, <raw_graphs.raw_graph instance at 0x1689D8F0>, <raw_graphs.raw_graph instance at 0x168A6760>, <raw_graphs.raw_graph instance at 0x168AF2B0>, <raw_graphs.raw_graph instance at 0x168AF788>, <raw_graphs.raw_graph instance at 0x168AF940>, <raw_graphs.raw_graph instance at 0x168AFC88>, <raw_graphs.raw_graph instance at 0x16900198>, <raw_graphs.raw_graph instance at 0x16900670>, <raw_graphs.raw_graph instance at 0x16900CD8>, <raw_graphs.raw_graph instance at 0x1690B058>, <raw_graphs.raw_graph instance at 0x1690B3A0>, <raw_graphs.raw_graph instance at 0x16913210>, <raw_graphs.raw_graph instance at 0x16913D28>, <raw_graphs.raw_graph instance at 0x1691F238>, <raw_graphs.raw_graph instance at 0x1691F3F0>, <raw_graphs.raw_graph instance at 0x1691F738>, <raw_graphs.raw_graph instance at 0x1691FC10>, <raw_graphs.raw_graph instance at 0x1692A120>, <raw_graphs.raw_graph instance at 0x1692A788>, <raw_graphs.raw_graph instance at 0x1692AAD0>, <raw_graphs.raw_graph instance at 0x1692AE18>, <raw_graphs.raw_graph instance at 0x16935C88>, <raw_graphs.raw_graph instance at 0x169417D8>, <raw_graphs.raw_graph instance at 0x16941CB0>, <raw_graphs.raw_graph instance at 0x16941E68>, <raw_graphs.raw_graph instance at 0x1694B1E8>, <raw_graphs.raw_graph instance at 0x1694B6C0>, <raw_graphs.raw_graph instance at 0x1694BB98>, <raw_graphs.raw_graph instance at 0x16954238>, <raw_graphs.raw_graph instance at 0x16954580>, <raw_graphs.raw_graph instance at 0x169548C8>, <raw_graphs.raw_graph instance at 0x1695E738>, <raw_graphs.raw_graph instance at 0x16969288>, <raw_graphs.raw_graph instance at 0x16969760>, <raw_graphs.raw_graph instance at 0x16969918>, <raw_graphs.raw_graph instance at 0x16969C60>, <raw_graphs.raw_graph instance at 0x16969E18>, <raw_graphs.raw_graph instance at 0x16969FD0>, <raw_graphs.raw_graph instance at 0x169761C0>, <raw_graphs.raw_graph instance at 0x16976378>, <raw_graphs.raw_graph instance at 0x16976530>, <raw_graphs.raw_graph instance at 0x169766E8>, <raw_graphs.raw_graph instance at 0x169768A0>, <raw_graphs.raw_graph instance at 0x16976A58>, <raw_graphs.raw_graph instance at 0x16976C10>, <raw_graphs.raw_graph instance at 0x16976DC8>, <raw_graphs.raw_graph instance at 0x16976F80>, <raw_graphs.raw_graph instance at 0x16982170>, <raw_graphs.raw_graph instance at 0x16982328>, <raw_graphs.raw_graph instance at 0x16982B20>, <raw_graphs.raw_graph instance at 0x16982CD8>, <raw_graphs.raw_graph instance at 0x1698B8F0>, <raw_graphs.raw_graph instance at 0x1698BDC8>, <raw_graphs.raw_graph instance at 0x16996148>, <raw_graphs.raw_graph instance at 0x16996300>, <raw_graphs.raw_graph instance at 0x169964B8>, <raw_graphs.raw_graph instance at 0x16996670>, <raw_graphs.raw_graph instance at 0x16996828>, <raw_graphs.raw_graph instance at 0x169A0058>, <raw_graphs.raw_graph instance at 0x169A0530>, <raw_graphs.raw_graph instance at 0x169A0878>, <raw_graphs.raw_graph instance at 0x169A0E18>, <raw_graphs.raw_graph instance at 0x169A0FD0>, <raw_graphs.raw_graph instance at 0x169AC1C0>, <raw_graphs.raw_graph instance at 0x169B6030>, <raw_graphs.raw_graph instance at 0x169B6A80>, <raw_graphs.raw_graph instance at 0x169B6DC8>, <raw_graphs.raw_graph instance at 0x169B6F80>, <raw_graphs.raw_graph instance at 0x169C3878>, <raw_graphs.raw_graph instance at 0x169CA7B0>, <raw_graphs.raw_graph instance at 0x169CABC0>, <raw_graphs.raw_graph instance at 0x169D9DF0>, <raw_graphs.raw_graph instance at 0x169EF9E0>, <raw_graphs.raw_graph instance at 0x16A02C10>, <raw_graphs.raw_graph instance at 0x16A17E40>, <raw_graphs.raw_graph instance at 0x16A2B580>, <raw_graphs.raw_graph instance at 0x16A2BCB0>, <raw_graphs.raw_graph instance at 0x16A84D78>, <raw_graphs.raw_graph instance at 0x16A84F30>, <raw_graphs.raw_graph instance at 0x16A8E698>, <raw_graphs.raw_graph instance at 0x16A8EB98>, <raw_graphs.raw_graph instance at 0x16A97490>, <raw_graphs.raw_graph instance at 0x16AA1170>, <raw_graphs.raw_graph instance at 0x16AA7F80>, <raw_graphs.raw_graph instance at 0x16AB6558>, <raw_graphs.raw_graph instance at 0x16AB6D50>, <raw_graphs.raw_graph instance at 0x16ABF260>, <raw_graphs.raw_graph instance at 0x16ABF990>, <raw_graphs.raw_graph instance at 0x16ABFCD8>, <raw_graphs.raw_graph instance at 0x16ACDFD0>, <raw_graphs.raw_graph instance at 0x16AE0E40>, <raw_graphs.raw_graph instance at 0x16AEA990>, <raw_graphs.raw_graph instance at 0x16AEAE68>, <raw_graphs.raw_graph instance at 0x16AF5058>, <raw_graphs.raw_graph instance at 0x16AF55F8>, <raw_graphs.raw_graph instance at 0x16AF57B0>, <raw_graphs.raw_graph instance at 0x16AF5968>, <raw_graphs.raw_graph instance at 0x16AFC260>, <raw_graphs.raw_graph instance at 0x16AFC418>, <raw_graphs.raw_graph instance at 0x16AFC760>, <raw_graphs.raw_graph instance at 0x16AFCD00>, <raw_graphs.raw_graph instance at 0x16AFCEB8>, <raw_graphs.raw_graph instance at 0x16B4C3C8>, <raw_graphs.raw_graph instance at 0x16B4C8A0>, <raw_graphs.raw_graph instance at 0x16B53328>, <raw_graphs.raw_graph instance at 0x16B53800>, <raw_graphs.raw_graph instance at 0x16B5E738>, <raw_graphs.raw_graph instance at 0x16B5E8F0>, <raw_graphs.raw_graph instance at 0x16B68508>, <raw_graphs.raw_graph instance at 0x16B68AA8>, <raw_graphs.raw_graph instance at 0x16B68C60>, <raw_graphs.raw_graph instance at 0x16B68E18>, <raw_graphs.raw_graph instance at 0x16B68FD0>, <raw_graphs.raw_graph instance at 0x16B75350>, <raw_graphs.raw_graph instance at 0x16B75698>, <raw_graphs.raw_graph instance at 0x16B7C5D0>, <raw_graphs.raw_graph instance at 0x16B7C788>, <raw_graphs.raw_graph instance at 0x16B7CD28>, <raw_graphs.raw_graph instance at 0x16B7CEE0>, <raw_graphs.raw_graph instance at 0x16B8F4B8>, <raw_graphs.raw_graph instance at 0x16B8FA58>, <raw_graphs.raw_graph instance at 0x16B990F8>, <raw_graphs.raw_graph instance at 0x16B99508>, <raw_graphs.raw_graph instance at 0x16B99850>, <raw_graphs.raw_graph instance at 0x16B99EB8>, <raw_graphs.raw_graph instance at 0x16BA30A8>, <raw_graphs.raw_graph instance at 0x16BA3260>, <raw_graphs.raw_graph instance at 0x16BA3800>, <raw_graphs.raw_graph instance at 0x16BAE030>, <raw_graphs.raw_graph instance at 0x16BAE508>, <raw_graphs.raw_graph instance at 0x16BAE850>, <raw_graphs.raw_graph instance at 0x16BAEF80>, <raw_graphs.raw_graph instance at 0x16BB8300>, <raw_graphs.raw_graph instance at 0x16BC85F8>, <raw_graphs.raw_graph instance at 0x16BD3468>, <raw_graphs.raw_graph instance at 0x16BD3F80>, <raw_graphs.raw_graph instance at 0x16BE2490>, <raw_graphs.raw_graph instance at 0x16BE2648>, <raw_graphs.raw_graph instance at 0x16BE2BE8>, <raw_graphs.raw_graph instance at 0x16BEA288>, <raw_graphs.raw_graph instance at 0x16BEA828>, <raw_graphs.raw_graph instance at 0x16BF5788>, <raw_graphs.raw_graph instance at 0x16BF5B98>, <raw_graphs.raw_graph instance at 0x16C0CAA8>, <raw_graphs.raw_graph instance at 0x16C0CC60>, <raw_graphs.raw_graph instance at 0x16C0CE18>, <raw_graphs.raw_graph instance at 0x16C1F580>, <raw_graphs.raw_graph instance at 0x16C1F8C8>, <raw_graphs.raw_graph instance at 0x16C1FE68>, <raw_graphs.raw_graph instance at 0x16C29378>, <raw_graphs.raw_graph instance at 0x16C29850>, <raw_graphs.raw_graph instance at 0x16C391E8>, <raw_graphs.raw_graph instance at 0x16C39850>, <raw_graphs.raw_graph instance at 0x16C445F8>, <raw_graphs.raw_graph instance at 0x16C93C38>, <raw_graphs.raw_graph instance at 0x16CA7468>, <raw_graphs.raw_graph instance at 0x16CA7A08>, <raw_graphs.raw_graph instance at 0x16CA7BC0>, <raw_graphs.raw_graph instance at 0x16CA7D78>, <raw_graphs.raw_graph instance at 0x16CB38C8>, <raw_graphs.raw_graph instance at 0x16CB3F30>, <raw_graphs.raw_graph instance at 0x16CBD120>, <raw_graphs.raw_graph instance at 0x16CBD788>, <raw_graphs.raw_graph instance at 0x16CBD940>, <raw_graphs.raw_graph instance at 0x16CBDAF8>, <raw_graphs.raw_graph instance at 0x16CC5260>, <raw_graphs.raw_graph instance at 0x16CC5418>, <raw_graphs.raw_graph instance at 0x16CD6030>, <raw_graphs.raw_graph instance at 0x16CD9CB0>, <raw_graphs.raw_graph instance at 0x16CD9E68>, <raw_graphs.raw_graph instance at 0x16CEA440>, <raw_graphs.raw_graph instance at 0x16CEAE90>, <raw_graphs.raw_graph instance at 0x16CF6918>, <raw_graphs.raw_graph instance at 0x16CF6AD0>, <raw_graphs.raw_graph instance at 0x16CF6C88>, <raw_graphs.raw_graph instance at 0x16CF6E40>, <raw_graphs.raw_graph instance at 0x16D00030>, <raw_graphs.raw_graph instance at 0x16D001E8>, <raw_graphs.raw_graph instance at 0x16D00850>, <raw_graphs.raw_graph instance at 0x16D00A08>, <raw_graphs.raw_graph instance at 0x16D00BC0>, <raw_graphs.raw_graph instance at 0x16D00D78>, <raw_graphs.raw_graph instance at 0x16D00F30>, <raw_graphs.raw_graph instance at 0x16D0B120>, <raw_graphs.raw_graph instance at 0x16D0B2D8>, <raw_graphs.raw_graph instance at 0x16D0B490>, <raw_graphs.raw_graph instance at 0x16D0B648>, <raw_graphs.raw_graph instance at 0x16D0B800>, <raw_graphs.raw_graph instance at 0x16D0B9B8>, <raw_graphs.raw_graph instance at 0x16D0BB70>, <raw_graphs.raw_graph instance at 0x16D0BD28>, <raw_graphs.raw_graph instance at 0x16D160A8>, <raw_graphs.raw_graph instance at 0x16D16260>, <raw_graphs.raw_graph instance at 0x16D16CB0>, <raw_graphs.raw_graph instance at 0x16D20738>, <raw_graphs.raw_graph instance at 0x16D27800>, <raw_graphs.raw_graph instance at 0x16D33CB0>, <raw_graphs.raw_graph instance at 0x16D3F288>, <raw_graphs.raw_graph instance at 0x16D3F440>, <raw_graphs.raw_graph instance at 0x16D3F918>, <raw_graphs.raw_graph instance at 0x16D3FDF0>, <raw_graphs.raw_graph instance at 0x16D3FFA8>, <raw_graphs.raw_graph instance at 0x16D4B198>, <raw_graphs.raw_graph instance at 0x16D4B350>, <raw_graphs.raw_graph instance at 0x16D4BB48>, <raw_graphs.raw_graph instance at 0x16D4BE90>, <raw_graphs.raw_graph instance at 0x16D973A0>, <raw_graphs.raw_graph instance at 0x16D97878>, <raw_graphs.raw_graph instance at 0x16D97A30>, <raw_graphs.raw_graph instance at 0x16D9F260>, <raw_graphs.raw_graph instance at 0x16D9F418>, <raw_graphs.raw_graph instance at 0x16D9FB48>, <raw_graphs.raw_graph instance at 0x16DAB120>, <raw_graphs.raw_graph instance at 0x16DB3058>, <raw_graphs.raw_graph instance at 0x16DBD1E8>, <raw_graphs.raw_graph instance at 0x16DBD3A0>, <raw_graphs.raw_graph instance at 0x16DBD7B0>, <raw_graphs.raw_graph instance at 0x16DBDBC0>, <raw_graphs.raw_graph instance at 0x16DBDF08>, <raw_graphs.raw_graph instance at 0x16DCA288>, <raw_graphs.raw_graph instance at 0x16DCA440>, <raw_graphs.raw_graph instance at 0x16DCA5F8>, <raw_graphs.raw_graph instance at 0x16DCA940>, <raw_graphs.raw_graph instance at 0x16DCAE18>, <raw_graphs.raw_graph instance at 0x16DCAFD0>, <raw_graphs.raw_graph instance at 0x16DD61C0>, <raw_graphs.raw_graph instance at 0x16DD6378>, <raw_graphs.raw_graph instance at 0x16DD6530>, <raw_graphs.raw_graph instance at 0x16DD66E8>, <raw_graphs.raw_graph instance at 0x16DD68A0>, <raw_graphs.raw_graph instance at 0x16DD6A58>, <raw_graphs.raw_graph instance at 0x16DD6C10>, <raw_graphs.raw_graph instance at 0x16DD6F58>, <raw_graphs.raw_graph instance at 0x16DE1468>, <raw_graphs.raw_graph instance at 0x16DE17B0>, <raw_graphs.raw_graph instance at 0x16DE1968>, <raw_graphs.raw_graph instance at 0x16DE1B20>, <raw_graphs.raw_graph instance at 0x16DE1CD8>, <raw_graphs.raw_graph instance at 0x16DE1E90>, <raw_graphs.raw_graph instance at 0x16DEB080>, <raw_graphs.raw_graph instance at 0x16DEB238>, <raw_graphs.raw_graph instance at 0x16DEB3F0>, <raw_graphs.raw_graph instance at 0x16DEB5A8>, <raw_graphs.raw_graph instance at 0x16DEB760>, <raw_graphs.raw_graph instance at 0x16DEB918>, <raw_graphs.raw_graph instance at 0x16DEBAD0>, <raw_graphs.raw_graph instance at 0x16DEBFA8>, <raw_graphs.raw_graph instance at 0x16DF64B8>, <raw_graphs.raw_graph instance at 0x16DF6670>, <raw_graphs.raw_graph instance at 0x16DF6828>, <raw_graphs.raw_graph instance at 0x16DF69E0>, <raw_graphs.raw_graph instance at 0x16DF6B98>, <raw_graphs.raw_graph instance at 0x16DF6D50>, <raw_graphs.raw_graph instance at 0x16DF6F08>, <raw_graphs.raw_graph instance at 0x16E010F8>, <raw_graphs.raw_graph instance at 0x16E012B0>, <raw_graphs.raw_graph instance at 0x16E01468>, <raw_graphs.raw_graph instance at 0x16E01620>, <raw_graphs.raw_graph instance at 0x16E017D8>, <raw_graphs.raw_graph instance at 0x16E01990>, <raw_graphs.raw_graph instance at 0x16E01B48>, <raw_graphs.raw_graph instance at 0x16E01D00>, <raw_graphs.raw_graph instance at 0x16E01EB8>, <raw_graphs.raw_graph instance at 0x16E0C0A8>, <raw_graphs.raw_graph instance at 0x16E0C260>, <raw_graphs.raw_graph instance at 0x16E0C418>, <raw_graphs.raw_graph instance at 0x16E0C5D0>, <raw_graphs.raw_graph instance at 0x16E0C788>, <raw_graphs.raw_graph instance at 0x16E0C940>, <raw_graphs.raw_graph instance at 0x16E0CAF8>, <raw_graphs.raw_graph instance at 0x16E0CCB0>, <raw_graphs.raw_graph instance at 0x16E0CE68>, <raw_graphs.raw_graph instance at 0x16E171E8>, <raw_graphs.raw_graph instance at 0x16E175F8>, <raw_graphs.raw_graph instance at 0x16E17940>, <raw_graphs.raw_graph instance at 0x16E17C88>, <raw_graphs.raw_graph instance at 0x16E17E40>, <raw_graphs.raw_graph instance at 0x16E221C0>, <raw_graphs.raw_graph instance at 0x16E22378>, <raw_graphs.raw_graph instance at 0x16E2A120>, <raw_graphs.raw_graph instance at 0x16E2A2D8>, <raw_graphs.raw_graph instance at 0x16E2A490>, <raw_graphs.raw_graph instance at 0x16E2A648>, <raw_graphs.raw_graph instance at 0x16E2A800>, <raw_graphs.raw_graph instance at 0x16E2A9B8>, <raw_graphs.raw_graph instance at 0x16E2AB70>, <raw_graphs.raw_graph instance at 0x16E2AEB8>, <raw_graphs.raw_graph instance at 0x16E370A8>, <raw_graphs.raw_graph instance at 0x16E37260>, <raw_graphs.raw_graph instance at 0x16E375A8>, <raw_graphs.raw_graph instance at 0x16E378F0>, <raw_graphs.raw_graph instance at 0x16E37AA8>, <raw_graphs.raw_graph instance at 0x16E43148>, <raw_graphs.raw_graph instance at 0x16E436E8>, <raw_graphs.raw_graph instance at 0x16E4A558>, <raw_graphs.raw_graph instance at 0x16E4A710>, <raw_graphs.raw_graph instance at 0x16E4A8C8>, <raw_graphs.raw_graph instance at 0x16E4AA80>, <raw_graphs.raw_graph instance at 0x16E4ADC8>, <raw_graphs.raw_graph instance at 0x16E9A3F0>, <raw_graphs.raw_graph instance at 0x16E9A5A8>, <raw_graphs.raw_graph instance at 0x16E9A788>, <raw_graphs.raw_graph instance at 0x16E9A968>, <raw_graphs.raw_graph instance at 0x16E9AB48>, <raw_graphs.raw_graph instance at 0x16E9AD00>, <raw_graphs.raw_graph instance at 0x16E9AEB8>, <raw_graphs.raw_graph instance at 0x16EA5620>, <raw_graphs.raw_graph instance at 0x16EA57D8>, <raw_graphs.raw_graph instance at 0x16EA5B20>, <raw_graphs.raw_graph instance at 0x16EA5F30>, <raw_graphs.raw_graph instance at 0x16EAF120>, <raw_graphs.raw_graph instance at 0x16EAF2D8>, <raw_graphs.raw_graph instance at 0x16EAF4B8>, <raw_graphs.raw_graph instance at 0x16EAFA80>, <raw_graphs.raw_graph instance at 0x16EAFC60>, <raw_graphs.raw_graph instance at 0x16EB8198>, <raw_graphs.raw_graph instance at 0x16EB8670>, <raw_graphs.raw_graph instance at 0x16EB8D00>, <raw_graphs.raw_graph instance at 0x16EC4148>, <raw_graphs.raw_graph instance at 0x16EC4328>, <raw_graphs.raw_graph instance at 0x16EC44B8>, <raw_graphs.raw_graph instance at 0x16EC46C0>, <raw_graphs.raw_graph instance at 0x16EC4850>, <raw_graphs.raw_graph instance at 0x16EC4A30>, <raw_graphs.raw_graph instance at 0x16EC4C10>, <raw_graphs.raw_graph instance at 0x16EC4DF0>, <raw_graphs.raw_graph instance at 0x16EC4FD0>, <raw_graphs.raw_graph instance at 0x16ECF1E8>, <raw_graphs.raw_graph instance at 0x16ECF3C8>, <raw_graphs.raw_graph instance at 0x16ECF580>, <raw_graphs.raw_graph instance at 0x16ECF738>, <raw_graphs.raw_graph instance at 0x16ECF918>, <raw_graphs.raw_graph instance at 0x16ECFAF8>, <raw_graphs.raw_graph instance at 0x16ECFCB0>, <raw_graphs.raw_graph instance at 0x16ECFE90>, <raw_graphs.raw_graph instance at 0x16EDA0A8>, <raw_graphs.raw_graph instance at 0x16EDA2B0>, <raw_graphs.raw_graph instance at 0x16EDA440>, <raw_graphs.raw_graph instance at 0x16EDA620>, <raw_graphs.raw_graph instance at 0x16EDA828>, <raw_graphs.raw_graph instance at 0x16EDA9B8>, <raw_graphs.raw_graph instance at 0x16EDAB98>, <raw_graphs.raw_graph instance at 0x16EDAD78>, <raw_graphs.raw_graph instance at 0x16EDAF30>, <raw_graphs.raw_graph instance at 0x16EE4148>, <raw_graphs.raw_graph instance at 0x16EE4350>, <raw_graphs.raw_graph instance at 0x16EE44E0>, <raw_graphs.raw_graph instance at 0x16EE46C0>, <raw_graphs.raw_graph instance at 0x16EE48A0>, <raw_graphs.raw_graph instance at 0x16EE4A58>, <raw_graphs.raw_graph instance at 0x16EE4C10>, <raw_graphs.raw_graph instance at 0x16EE4DF0>, <raw_graphs.raw_graph instance at 0x16EE4FA8>, <raw_graphs.raw_graph instance at 0x16EEF1C0>, <raw_graphs.raw_graph instance at 0x16EEF378>, <raw_graphs.raw_graph instance at 0x16EEF530>, <raw_graphs.raw_graph instance at 0x16EEF738>, <raw_graphs.raw_graph instance at 0x16EEF8F0>, <raw_graphs.raw_graph instance at 0x16EEFAA8>, <raw_graphs.raw_graph instance at 0x16EEFC38>, <raw_graphs.raw_graph instance at 0x16EEFDF0>, <raw_graphs.raw_graph instance at 0x16EEFFD0>, <raw_graphs.raw_graph instance at 0x16EFA1C0>, <raw_graphs.raw_graph instance at 0x16EFA3A0>, <raw_graphs.raw_graph instance at 0x16EFA580>, <raw_graphs.raw_graph instance at 0x16EFA738>, <raw_graphs.raw_graph instance at 0x16EFA918>, <raw_graphs.raw_graph instance at 0x16EFAAF8>, <raw_graphs.raw_graph instance at 0x16EFAD00>, <raw_graphs.raw_graph instance at 0x16EFAE90>, <raw_graphs.raw_graph instance at 0x16F05080>, <raw_graphs.raw_graph instance at 0x16F05260>, <raw_graphs.raw_graph instance at 0x16F05418>, <raw_graphs.raw_graph instance at 0x16F055F8>, <raw_graphs.raw_graph instance at 0x16F057B0>, <raw_graphs.raw_graph instance at 0x16F05990>, <raw_graphs.raw_graph instance at 0x16F05B48>, <raw_graphs.raw_graph instance at 0x16F05CD8>, <raw_graphs.raw_graph instance at 0x16F05EB8>, <raw_graphs.raw_graph instance at 0x16F100D0>, <raw_graphs.raw_graph instance at 0x16F10288>, <raw_graphs.raw_graph instance at 0x16F10468>, <raw_graphs.raw_graph instance at 0x16F10620>, <raw_graphs.raw_graph instance at 0x16F10800>, <raw_graphs.raw_graph instance at 0x16F10A08>, <raw_graphs.raw_graph instance at 0x16F10B98>, <raw_graphs.raw_graph instance at 0x16F10D50>, <raw_graphs.raw_graph instance at 0x16F10F08>, <raw_graphs.raw_graph instance at 0x16F1B120>, <raw_graphs.raw_graph instance at 0x16F1B2D8>, <raw_graphs.raw_graph instance at 0x16F1B468>, <raw_graphs.raw_graph instance at 0x16F1B670>, <raw_graphs.raw_graph instance at 0x16F1B800>, <raw_graphs.raw_graph instance at 0x16F1BA08>, <raw_graphs.raw_graph instance at 0x16F1BB98>, <raw_graphs.raw_graph instance at 0x16F1BD78>, <raw_graphs.raw_graph instance at 0x16F1BF30>, <raw_graphs.raw_graph instance at 0x16F26170>, <raw_graphs.raw_graph instance at 0x16F26300>, <raw_graphs.raw_graph instance at 0x16F26508>, <raw_graphs.raw_graph instance at 0x16F266C0>, <raw_graphs.raw_graph instance at 0x16F268A0>, <raw_graphs.raw_graph instance at 0x16F26A80>, <raw_graphs.raw_graph instance at 0x16F26C60>, <raw_graphs.raw_graph instance at 0x16F26DF0>, <raw_graphs.raw_graph instance at 0x16F26FA8>, <raw_graphs.raw_graph instance at 0x16F301C0>, <raw_graphs.raw_graph instance at 0x16F303A0>, <raw_graphs.raw_graph instance at 0x16F30580>, <raw_graphs.raw_graph instance at 0x16F30760>, <raw_graphs.raw_graph instance at 0x16F30968>, <raw_graphs.raw_graph instance at 0x16F30AF8>, <raw_graphs.raw_graph instance at 0x16F30CB0>, <raw_graphs.raw_graph instance at 0x16F30E68>, <raw_graphs.raw_graph instance at 0x16F3B058>, <raw_graphs.raw_graph instance at 0x16F3B260>, <raw_graphs.raw_graph instance at 0x16F3B3F0>, <raw_graphs.raw_graph instance at 0x16F3B5A8>, <raw_graphs.raw_graph instance at 0x16F3B760>, <raw_graphs.raw_graph instance at 0x16F3B918>, <raw_graphs.raw_graph instance at 0x16F3BAF8>, <raw_graphs.raw_graph instance at 0x16F3BCD8>, <raw_graphs.raw_graph instance at 0x16F3BEB8>, <raw_graphs.raw_graph instance at 0x16F450D0>, <raw_graphs.raw_graph instance at 0x16F45288>, <raw_graphs.raw_graph instance at 0x16F45468>, <raw_graphs.raw_graph instance at 0x16F45620>, <raw_graphs.raw_graph instance at 0x16F45828>, <raw_graphs.raw_graph instance at 0x16F459E0>, <raw_graphs.raw_graph instance at 0x16F45B98>, <raw_graphs.raw_graph instance at 0x16F45DA0>, <raw_graphs.raw_graph instance at 0x16F45F30>, <raw_graphs.raw_graph instance at 0x16F50148>, <raw_graphs.raw_graph instance at 0x16F50328>, <raw_graphs.raw_graph instance at 0x16F50508>], 'binary_name': 'hpcenter'} 一个函数的原始特征,由old_g(discovRe方法的ACFG),g(Genius方法的ACFG),fun_feature(表示函数级别的特征的向量)三部分构成 {'entry': 0, 'fun_features': [0, 0, 0, 0, 35, 53, 0, 183, 0.0601, [], [12, 1, 1, 0, 223, 76, 1, 48, 9, 0, 4294967295L, 4294967295L, 1, 1, 1, 1, 0, 0, 4294967294L, 0, 1, 0, 10, 3, 12]], 'old_g': <networkx.classes.digraph.DiGraph object at 0x16CC7BD0>, 'g': <networkx.classes.digraph.DiGraph object at 0x16CD8F90>, 'funcname': 'sub_166C4'} 函数级别特征: # 1 function calls # 2 logic instructions # 3 TransferIns # 4 LocalVariables # 5 BB basicblocks# 6 Edges # 7 IncommingCalls# 8 Intrs# 9 between # 10 strings # 11 consts [0, 0, 0, 0, 35, 53, 0, 183, 0.0601, [], [12, 1, 1, 0, 223, 76, 1, 48, 9, 0, 4294967295L, 4294967295L, 1, 1, 1, 1, 0, 0, 4294967294L, 0, 1, 0, 10, 3, 12]] # 一个基本块的特征 #1'consts' 数字常量 #2'strings'字符串常量 #3'offs' offspring 字节点数量? #4'numAs' 算数指令如INC #5'numCalls' 调用指令 #6'numIns' 指令数量 #7'numLIs' LogicInstructions 如AND #8'numTIs' 转移指令数量 {'v': [[1], [], 10, 0, 0, 2, 0, 0]}