623 lines
14 KiB
JSON
623 lines
14 KiB
JSON
{
|
||
"function_edges": [
|
||
[
|
||
1,
|
||
1,
|
||
1,
|
||
1,
|
||
1,
|
||
1,
|
||
1,
|
||
1,
|
||
1,
|
||
1,
|
||
1,
|
||
1,
|
||
1,
|
||
1,
|
||
1,
|
||
1,
|
||
1,
|
||
1,
|
||
1,
|
||
1,
|
||
1,
|
||
1,
|
||
1,
|
||
1,
|
||
1,
|
||
1
|
||
],
|
||
[
|
||
0,
|
||
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
|
||
]
|
||
], // 看FCG,所有函数之间连接边的出边函数index和入边函数index
|
||
"acfg_list": [ // 对应 data.raw_graph_list
|
||
{ // 一个CFG对应 data.raw_graph_list[a]
|
||
"block_number": 3, // CFG中基本块的个数 √ data.raw_graph_list[a].g.__len__()
|
||
"block_edges": [
|
||
[
|
||
0,
|
||
0,
|
||
1,
|
||
1
|
||
],
|
||
[
|
||
0,
|
||
2,
|
||
0,
|
||
2
|
||
]
|
||
], // 中间那个块才是第0块,不知道为什么;第一个数组是所有边的出块号,第二个数组是所有边的入块号 √ data.raw_graph_list[a].g.edges
|
||
"block_features": [ // 每个基本块的属性
|
||
[
|
||
0,
|
||
2,
|
||
1,
|
||
0,
|
||
7,
|
||
0,
|
||
1,
|
||
1,
|
||
4,
|
||
0,
|
||
0
|
||
], // 每个块的属性特征,属性特征为11维向量,具体是调用/传输/算术/逻辑/比较/移动/终止/数据声明/总指令数/字符串或整数常量/后代的数量
|
||
[
|
||
0,
|
||
2,
|
||
0,
|
||
0,
|
||
3,
|
||
1,
|
||
0,
|
||
1,
|
||
0,
|
||
0,
|
||
0
|
||
],
|
||
[
|
||
1,
|
||
0,
|
||
0,
|
||
0,
|
||
1,
|
||
0,
|
||
0,
|
||
0,
|
||
0,
|
||
1,
|
||
0
|
||
]
|
||
]
|
||
},
|
||
{
|
||
"block_number": 29, // CFG中基本块的个数
|
||
"block_edges": [
|
||
[
|
||
0,
|
||
1,
|
||
1,
|
||
2,
|
||
2,
|
||
3,
|
||
3,
|
||
4,
|
||
5,
|
||
6,
|
||
6,
|
||
7,
|
||
7,
|
||
8,
|
||
8,
|
||
9,
|
||
9,
|
||
10,
|
||
10,
|
||
11,
|
||
12,
|
||
12,
|
||
13,
|
||
14,
|
||
14,
|
||
15,
|
||
16,
|
||
17,
|
||
18,
|
||
19,
|
||
19,
|
||
20,
|
||
20,
|
||
21,
|
||
21,
|
||
23,
|
||
24,
|
||
24,
|
||
26,
|
||
26,
|
||
27,
|
||
28
|
||
],
|
||
[
|
||
16,
|
||
0,
|
||
2,
|
||
0,
|
||
4,
|
||
1,
|
||
3,
|
||
3,
|
||
3,
|
||
25,
|
||
15,
|
||
8,
|
||
6,
|
||
6,
|
||
7,
|
||
28,
|
||
12,
|
||
9,
|
||
23,
|
||
16,
|
||
25,
|
||
11,
|
||
21,
|
||
17,
|
||
13,
|
||
19,
|
||
22,
|
||
14,
|
||
19,
|
||
18,
|
||
27,
|
||
24,
|
||
23,
|
||
26,
|
||
21,
|
||
22,
|
||
25,
|
||
10,
|
||
25,
|
||
5,
|
||
14,
|
||
8
|
||
]
|
||
],
|
||
"block_features": [
|
||
[
|
||
8,
|
||
2,
|
||
1,
|
||
5,
|
||
36,
|
||
0,
|
||
6,
|
||
0,
|
||
2,
|
||
0,
|
||
0
|
||
],
|
||
[
|
||
0,
|
||
7,
|
||
0,
|
||
0,
|
||
3,
|
||
0,
|
||
1,
|
||
1,
|
||
1,
|
||
0,
|
||
0
|
||
],
|
||
[
|
||
0,
|
||
7,
|
||
0,
|
||
0,
|
||
2,
|
||
0,
|
||
1,
|
||
1,
|
||
0,
|
||
0,
|
||
0
|
||
],
|
||
[
|
||
0,
|
||
7,
|
||
0,
|
||
1,
|
||
8,
|
||
1,
|
||
2,
|
||
0,
|
||
0,
|
||
0,
|
||
0
|
||
],
|
||
[
|
||
0,
|
||
7,
|
||
1,
|
||
0,
|
||
2,
|
||
0,
|
||
1,
|
||
0,
|
||
0,
|
||
0,
|
||
0
|
||
],
|
||
[
|
||
0,
|
||
7,
|
||
0,
|
||
0,
|
||
1,
|
||
0,
|
||
0,
|
||
0,
|
||
1,
|
||
0,
|
||
0
|
||
],
|
||
[
|
||
1,
|
||
18,
|
||
0,
|
||
1,
|
||
9,
|
||
0,
|
||
2,
|
||
1,
|
||
1,
|
||
0,
|
||
0
|
||
],
|
||
[
|
||
1,
|
||
21,
|
||
1,
|
||
0,
|
||
3,
|
||
0,
|
||
1,
|
||
1,
|
||
0,
|
||
0,
|
||
0
|
||
],
|
||
[
|
||
0,
|
||
21,
|
||
0,
|
||
1,
|
||
4,
|
||
1,
|
||
2,
|
||
0,
|
||
0,
|
||
0,
|
||
0
|
||
],
|
||
[
|
||
0,
|
||
24,
|
||
0,
|
||
2,
|
||
12,
|
||
1,
|
||
3,
|
||
0,
|
||
0,
|
||
0,
|
||
0
|
||
],
|
||
[
|
||
1,
|
||
26,
|
||
0,
|
||
3,
|
||
16,
|
||
0,
|
||
4,
|
||
1,
|
||
4,
|
||
0,
|
||
0
|
||
],
|
||
[
|
||
1,
|
||
2,
|
||
0,
|
||
5,
|
||
22,
|
||
0,
|
||
5,
|
||
0,
|
||
1,
|
||
0,
|
||
0
|
||
],
|
||
[
|
||
5,
|
||
4,
|
||
1,
|
||
3,
|
||
21,
|
||
0,
|
||
4,
|
||
1,
|
||
3,
|
||
0,
|
||
0
|
||
],
|
||
[
|
||
4,
|
||
11,
|
||
0,
|
||
2,
|
||
17,
|
||
1,
|
||
2,
|
||
0,
|
||
1,
|
||
0,
|
||
0
|
||
],
|
||
[
|
||
2,
|
||
14,
|
||
0,
|
||
1,
|
||
12,
|
||
0,
|
||
2,
|
||
1,
|
||
1,
|
||
0,
|
||
0
|
||
],
|
||
[
|
||
3,
|
||
17,
|
||
0,
|
||
0,
|
||
10,
|
||
0,
|
||
1,
|
||
0,
|
||
1,
|
||
0,
|
||
0
|
||
],
|
||
[
|
||
1,
|
||
1,
|
||
0,
|
||
1,
|
||
5,
|
||
0,
|
||
2,
|
||
0,
|
||
0,
|
||
0,
|
||
0
|
||
],
|
||
[
|
||
0,
|
||
14,
|
||
0,
|
||
0,
|
||
1,
|
||
0,
|
||
0,
|
||
0,
|
||
0,
|
||
0,
|
||
0
|
||
],
|
||
[
|
||
3,
|
||
17,
|
||
0,
|
||
0,
|
||
7,
|
||
0,
|
||
0,
|
||
0,
|
||
0,
|
||
0,
|
||
0
|
||
],
|
||
[
|
||
0,
|
||
17,
|
||
0,
|
||
1,
|
||
5,
|
||
0,
|
||
2,
|
||
1,
|
||
1,
|
||
0,
|
||
0
|
||
],
|
||
[
|
||
2,
|
||
28,
|
||
1,
|
||
1,
|
||
11,
|
||
1,
|
||
2,
|
||
1,
|
||
1,
|
||
0,
|
||
0
|
||
],
|
||
[
|
||
0,
|
||
11,
|
||
0,
|
||
1,
|
||
8,
|
||
1,
|
||
2,
|
||
0,
|
||
0,
|
||
0,
|
||
0
|
||
],
|
||
[
|
||
0,
|
||
0,
|
||
0,
|
||
1,
|
||
1,
|
||
0,
|
||
1,
|
||
0,
|
||
0,
|
||
0,
|
||
0
|
||
],
|
||
[
|
||
1,
|
||
1,
|
||
0,
|
||
0,
|
||
1,
|
||
0,
|
||
0,
|
||
0,
|
||
0,
|
||
0,
|
||
0
|
||
],
|
||
[
|
||
12,
|
||
27,
|
||
1,
|
||
7,
|
||
41,
|
||
0,
|
||
8,
|
||
1,
|
||
6,
|
||
0,
|
||
0
|
||
],
|
||
[
|
||
0,
|
||
0,
|
||
1,
|
||
0,
|
||
7,
|
||
1,
|
||
0,
|
||
0,
|
||
0,
|
||
1,
|
||
0
|
||
],
|
||
[
|
||
2,
|
||
9,
|
||
0,
|
||
2,
|
||
17,
|
||
0,
|
||
3,
|
||
1,
|
||
3,
|
||
0,
|
||
0
|
||
],
|
||
[
|
||
2,
|
||
14,
|
||
0,
|
||
0,
|
||
5,
|
||
0,
|
||
1,
|
||
0,
|
||
4,
|
||
0,
|
||
0
|
||
],
|
||
[
|
||
1,
|
||
21,
|
||
4,
|
||
1,
|
||
13,
|
||
0,
|
||
2,
|
||
0,
|
||
5,
|
||
0,
|
||
0
|
||
]
|
||
]
|
||
}
|
||
],
|
||
"function_names": [ // 包括外部函数和局部函数的函数名
|
||
"sub_401000",
|
||
"start",
|
||
"GetTempPathW",
|
||
"GetFileSize",
|
||
"GetCurrentDirectoryW",
|
||
"DeleteFileW",
|
||
"CloseHandle",
|
||
"WriteFile",
|
||
"lstrcmpW",
|
||
"ReadFile",
|
||
"GetModuleHandleW",
|
||
"ExitProcess",
|
||
"HeapCreate",
|
||
"HeapAlloc",
|
||
"GetModuleFileNameW",
|
||
"CreateFileW",
|
||
"lstrlenW",
|
||
"ShellExecuteW",
|
||
"wsprintfW",
|
||
"HttpSendRequestW",
|
||
"InternetSetOptionW",
|
||
"InternetQueryOptionW",
|
||
"HttpOpenRequestW",
|
||
"HttpQueryInfoW",
|
||
"InternetReadFile",
|
||
"InternetConnectW",
|
||
"InternetOpenW"
|
||
], // √
|
||
"hash": "316ebb797d5196020eee013cfe771671fff4da8859adc9f385f52a74e82f4e55", // 文件哈希,可以用文件名中的md5替代 √
|
||
"function_number": 27 // 函数数量 √
|
||
} |