forked from rizinorg/rizin
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fixes rizinorg#2247 - Improve try/catch analysis [WIP]
Your checklist for this pull request - [x] I've read the guidelines for contributing to this repository - [x] I made sure to follow the project's coding style - [ ] I've documented or updated the documentation of every function and struct this PR changes. If not so I've explained why. - [ ] I've added tests that prove my fix is effective or that my feature works (if possible) - [ ] I've updated the rizin book with the relevant information (if needed) Detailed description Bin - Load exception information by default Analysis - Make analyzing exception scopes the default - Analyze all exception sources as functions - Do not hack basic blocks flow to add try/catch information Graph - Add an edge pointing to the catch block for each basic block inside the try scope - Add configuration graph.trycatch to control if graphing the exception blocks is enabled Problems 8ff06e9 Is basically copy-pasted logic from block.c This can make graphs a lot noisier Cutter will have to implement its own version of the logic if it wants to copy rizin in showing the connection between the blocks and its catch blocks I didn't add tests yet Test plan Open bins\pe\microsoft_seh_tests\x64\xcpt4.exe for example Optional: idp to load debug info for binary aaa Optional: .iw to show try catch scopes as flags s main Enter visual graph mode, make sure all edges, lines are painted correctly, and that there area now new edges pointing each basic block to its catch block if it is inside a try scope Open file from rizinorg#2247 aaa s main Enter visual graph mode, make sure issue is fixed Closing issues Closes rizinorg#2247
- Loading branch information
Showing
11 changed files
with
310 additions
and
55 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.