Output information required to make new annotations for the decompiler in Cutter
NirmalManoj opened this issue · 0 comments
NirmalManoj commented
Description
As part of the Improving Decompiler Widget project, we have made a new dedicated context menu for the decompiler in Cutter. These changes can be found in the decompiler-refactoring
branch in Cutter and also can be quickly seen from the project linked above. Please have a look at r_annotated_code.h to have an idea of the new annotations added.
Detailed description of the data we will need for each type of annotation
- For
R_CODE_ANNOTATION_TYPE_FUNCTION_NAME
:- Range of the function's name in the entire output.
- Name of the function
- Address of the function
Example JSON output with all this information (that is currently available from r2ghidra-dec)
{
"start": 542,
"end": 555,
"type": "function_name",
"name": "sym.Aeropause",
"offset": 4199038
},
- For
R_CODE_ANNOTATION_TYPE_GLOBAL_VARIABLE
andR_CODE_ANNOTATION_TYPE_CONSTANT_VARIABLE
:
Note:R_CODE_ANNOTATION_TYPE_CONSTANT_VARIABLE
is the annotation type for constant variables with an address. e.g. string literals.- Range of the variable name in the entire output.
- Address of the variable
Example JSON output with all this information (that is currently available from r2ghidra-dec)
{
"start": 73,
"end": 81,
"type": "global_variable",
"offset": 4210780
},
{
"start": 453,
"end": 459,
"type": "constant_variable",
"offset": 4202553
},
- For
R_CODE_ANNOTATION_TYPE_LOCAL_VARIABLE
andR_CODE_ANNOTATION_TYPE_FUNCTION_PARAMETER
:- Range of the variable name in the entire output.
- Name of the variable
Example JSON output with all this information (that is currently available from r2ghidra-dec)
{
"start": 636,
"end": 641,
"type": "local_variable",
"name": "uVar1"
},
{
"start": 625,
"end": 629,
"type": "function_parameter",
"name": "argv"
},
Here, I'm linking a file with the pdg
output and formatted pdgj
output of multiple functions that will cover all new types of annotations, and the binary used.
AllAnnotationsWithBinary.zip