angr / angr-management

The official angr GUI.
BSD 2-Clause "Simplified" License
877 stars 110 forks source link

Enable CFG updates after creating binary patches, re-classification #1031

Closed mborgerson closed 1 year ago

mborgerson commented 1 year ago

This set of patches is work-in-progress to improve interactivity with the CFG. The intention is to enable (a) binary patches to be immediately reflected in both the disassembly view and in decompilation, so users can observe the impact of their patch immediately and (b) to bring support for manual re-classification. The mechanics to create a patch are unchanged: simply double-click on an instruction and enter the updated assembly instructions. Once this is done, the patched function is removed from the CFG and the new section will be analyzed.

Updates CFG after patches are made or removed. Demo:

https://github.com/angr/angr-management/assets/8210/89552bb5-8d6c-42bd-a34a-c42e042db7b6

Enables basic reclassification (c to define as code, u to undefine code). Demo:

https://github.com/angr/angr-management/assets/8210/5c7de936-d8ec-48d0-8ab0-e63f39f2fe4f

Work remains to improve patching application (details in angr/angr#4020), add main menu / context menu actions for patching and classification.

Depends angr/angr#4020

TODO:

Other issues: