Skip to content

Output format

Rasmus Hagberg edited this page Aug 11, 2021 · 1 revision

The call graph generators produce a base64 encoded zip with the name .debricked-call-graph containing a single file with the same name. This file is a JSON representation of the parts of the call graph of interest to us. The format is as follows:

{
	"version": 2,
	"data":
	[
		[
			"FunctionName",
			isApplicationClass,
			isStandardLibraryClass,
			"ClassName",
			"FileName",
			rowAtWhichFunctionStarts,
			rowAtWhichFunctionEnds,
			[
				[
					"NameOfOtherFunctionThatCallsFunction",
					rowNumberAtWhichOtherFunctionCallsFunction
				]
			]
		]
	]
}

Here's en example:

{
	"version": 2,
	"data":
	[
		[
			"UserFunction",
			true,
			false,
			"UserClass",
			"UserClass.java",
			10,
			13,
			[
			]
		],
		[
			"OtherFunctionOne",
			false,
			false,
			"OtherClassOne",
			"OtherClassOne.java",
			1,
			1,
			[
			    [
			        "UserFunction",
			        2
			    ]
			]
		],
		[
			"OtherFunctionTwo",
			false,
			true,
			"OtherClassTwo",
			"-",
			-1,
			-1,
			[
			    [
			        "UserFunction",
			        2
			    ]
			]
		],
		[
			"VulnerableFunction",
			false,
			false,
			"VulnerableFunctionClass",
			"VulnerableFunctionClass.java",
			-1,
			-1,
			[
			    [
			        "UserFunction",
			        12
			    ]
			]
		],
		[
		    "VulnerableClassFunction",
		    false,
		    false,
		    "VulnerableClassClass",
		    "VulnerableClassClass.java",
		    -1,
		    -1,
		    [
		        [
		            "UserFunction",
		            14
		        ]
		    ]
		],
		[
		    "Other2VulnerableFunction",
		    false,
		    false,
		    "Other2VulnerableFunctionClass",
		    "Other2VulnerableFunctionClass.java",
		    200,
		    220,
		    [
		        [
		            "OtherFunctionOne",
		            1
		        ],
		        [
		            "OtherFunctionTwo",
		            -1
		        ]
		    ]
		]
	]
}
Clone this wiki locally