-
-
Notifications
You must be signed in to change notification settings - Fork 367
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Check for jumps to preludes by default. (#4651)
* Check for jumps to preludes by default and follow tail calls. * Fix test.exe tests. They were text book tail calls. ┌ root.0040103b(); │ 0x0040103b cmp ecx, dword [0x40d004] │ ┌─< 0x00401041 jne 0x401045 │ │ 0x00401043 repz ret └ ┌└─> 0x00401045 jmp root.00401335 * Add a tail call test for x86 * Document rz_analysis_op_is_eob * Attempt to remove seemingly irrelevant code. * Make code more consice. * Fix and simplify checks for op.type * OR the TAIL property into the op.type if applicable. * Fix test: Blocks were incorrectly assigned to function at 0x401000. * Fix test: Function doesn't access a var at stack - 0x60 * Fix test: The match_suffix() doesn't have a saved prelude. * Fix test: New name is the actual symbol name. * Fix tests: Main functions get indeed called via a tail call. * Fix test: Accept less string found to not increase analysis depth. Because tail jumps are now correctly marked as end of a function, they are not always followed deeper with the default analysis depth of 1. Hence, less strings are found. * Revert removal of options bound to version. * Fix tests because they were wrong: rz_analysis_op_is_eob() did not applied the mask onto op.type, so it checked against the wrong flags (especially for conditional jumps). Because the eob check was faulty the execution flow was different. * Add tail call test for AArch64
- Loading branch information
Showing
19 changed files
with
214 additions
and
162 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
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
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.