- Introduce the following new methods: * `rz_analysis_similarity_basic_block()` * `rz_analysis_similarity_function()` * `rz_analysis_similarity_basic_block_2()` * `rz_analysis_similarity_function_2()` * `rz_analysis_match_basic_blocks()` * `rz_analysis_match_functions()` * `rz_analysis_match_basic_blocks_2()` * `rz_analysis_match_functions_2()` - Remove `RzAnalysisDiff` and its usages - Remove `librz/analysis/diff.c` entirely to and adds `librz/analysis/similarity.c` - Remove a lot of unused structures and simplified the code by a lot - Fix typo in levenshtein - Remove `librz/core/gdiff.c` and `gdiff` functions since they were unused or only used in rz-diff - Remove `difftype` (or "color") from `RzANode` which lead to dead code - Decrease serialized data in projects. - Add `RzAnalysisVarKind` and `RzAnalysisVarType` and replaces all the hardcoded values - Remove command `agd` - Remove all `rz_core_gdiff` usages from `rz_core.h` - Refactor `rz_analysis_var_list` and `rz_analysis_var_count` due unused argument (`RzAnalysis` was not used) - Add new method `rz_analysis_var_count_total` to simplify some usages - Remove `rz_core_graph_diff` - Add `typedef RzAnalysisFcnType` on `enum``used for function types - Remove unused `RZ_ANALYSIS_FCN_VARKIND_LOCAL` - Remove from `RzAnalysisFunction` the following variables: * `fingerprint` * `fingerprint_size` * `diff` * `diff_ops` * `diff_thbb` * `diff_thfcn` - Remove from `RzAnalysisBlock` the following variables: * `fingerprint` * `diff` - Remove `RZ_ANALYSIS_THRESHOLDBB` and `RZ_ANALYSIS_THRESHOLDFCN` - Remove the following callbacks from `RzAnalysisPlugin` * `RzAnalysisDiffBBCallback` * `RzAnalysisDiffFcnCallback` * `RzAnalysisDiffEvalCallback` - Fix fancy table columns/rows when a color string is in a cell - Bumped project version to 9
404 lines
11 KiB
Text
404 lines
11 KiB
Text
NAME=load with file without moving anything
|
|
FILE=bins/elf/crackme0x05
|
|
CMDS=<<EOF
|
|
e asm.bytes=true
|
|
f i_do_hope_that_no_entity_knocks_over_my_beverage @ 0x080483d8
|
|
Ps .tmp_load_no_move.rzdb
|
|
o--
|
|
Po .tmp_load_no_move.rzdb
|
|
rm .tmp_load_no_move.rzdb
|
|
pdq 3 @ 0x080483d8
|
|
EOF
|
|
EXPECT=<<EOF
|
|
0x080483d8 i_do_hope_that_no_entity_knocks_over_my_beverage:
|
|
0x080483d8 50 push eax
|
|
0x080483d9 54 push esp
|
|
0x080483da 52 push edx
|
|
EOF
|
|
RUN
|
|
|
|
NAME=load with file using saved absolute file path after project file was moved
|
|
FILE=bins/elf/crackme0x05
|
|
CMDS=<<EOF
|
|
e asm.bytes=true
|
|
f i_do_hope_that_no_entity_knocks_over_my_beverage @ 0x080483d8
|
|
Ps .tmp_load_move_project.rzdb
|
|
o--
|
|
mkdir -p .tmp_load_move_project
|
|
mv .tmp_load_move_project.rzdb .tmp_load_move_project/
|
|
cd .tmp_load_move_project
|
|
Po .tmp_load_move_project.rzdb
|
|
rm .tmp_load_move_project.rzdb
|
|
cd ..
|
|
rm .tmp_load_move_project
|
|
pdq 3 @ 0x080483d8
|
|
EOF
|
|
EXPECT=<<EOF
|
|
0x080483d8 i_do_hope_that_no_entity_knocks_over_my_beverage:
|
|
0x080483d8 50 push eax
|
|
0x080483d9 54 push esp
|
|
0x080483da 52 push edx
|
|
EOF
|
|
RUN
|
|
|
|
NAME=load with file using saved relative file path after project file and binary were moved together
|
|
FILE=--
|
|
CMDS=<<EOF
|
|
e asm.bytes=true
|
|
cp bins/elf/crackme0x05 .tmp_load_move_both.bin
|
|
o .tmp_load_move_both.bin
|
|
f i_do_hope_that_no_entity_knocks_over_my_beverage @ 0x080483d8
|
|
Ps .tmp_load_move_both.rzdb
|
|
o--
|
|
mkdir -p .tmp_load_move_both
|
|
mv .tmp_load_move_both.rzdb .tmp_load_move_both/
|
|
mv .tmp_load_move_both.bin .tmp_load_move_both/
|
|
Po .tmp_load_move_both/.tmp_load_move_both.rzdb
|
|
pdq 3 @ 0x080483d8
|
|
o--
|
|
rm .tmp_load_move_both/.tmp_load_move_both.rzdb
|
|
rm .tmp_load_move_both/.tmp_load_move_both.bin
|
|
rm .tmp_load_move_both
|
|
EOF
|
|
EXPECT=<<EOF
|
|
0x080483d8 i_do_hope_that_no_entity_knocks_over_my_beverage:
|
|
0x080483d8 50 push eax
|
|
0x080483d9 54 push esp
|
|
0x080483da 52 push edx
|
|
EOF
|
|
RUN
|
|
|
|
NAME=load with file using saved relative file path after project file and binary were moved together with different relation
|
|
FILE=--
|
|
CMDS=<<EOF
|
|
e asm.bytes=true
|
|
mkdir -p .tmp_load_move_both2/.tmp_load_move_both2
|
|
cp bins/elf/crackme0x05 .tmp_load_move_both2/somebin
|
|
o .tmp_load_move_both2/somebin
|
|
f i_do_hope_that_no_entity_knocks_over_my_beverage @ 0x080483d8
|
|
Ps .tmp_load_move_both2.rzdb
|
|
o--
|
|
mv .tmp_load_move_both2.rzdb .tmp_load_move_both2/
|
|
mv .tmp_load_move_both2/somebin .tmp_load_move_both2/.tmp_load_move_both2/somebin
|
|
Po .tmp_load_move_both2/.tmp_load_move_both2.rzdb
|
|
pdq 3 @ 0x080483d8
|
|
o--
|
|
rm .tmp_load_move_both2/.tmp_load_move_both2.rzdb
|
|
rm .tmp_load_move_both2/.tmp_load_move_both2/somebin
|
|
rm .tmp_load_move_both2/.tmp_load_move_both2
|
|
rm .tmp_load_move_both2
|
|
EOF
|
|
EXPECT=<<EOF
|
|
0x080483d8 i_do_hope_that_no_entity_knocks_over_my_beverage:
|
|
0x080483d8 50 push eax
|
|
0x080483d9 54 push esp
|
|
0x080483da 52 push edx
|
|
EOF
|
|
RUN
|
|
|
|
NAME=load with file using saved raw file path after everything has been messed up, but binary is in cwd
|
|
FILE=--
|
|
CMDS=<<EOF
|
|
e asm.bytes=true
|
|
mkdir -p .tmp_load_move_bin
|
|
cp bins/elf/crackme0x05 .tmp_load_move_bin.bin
|
|
o .tmp_load_move_bin.bin
|
|
f i_do_hope_that_no_entity_knocks_over_my_beverage @ 0x080483d8
|
|
Ps .tmp_load_move_bin.rzdb
|
|
o--
|
|
mv .tmp_load_move_bin.bin .tmp_load_move_bin/.tmp_load_move_bin.bin
|
|
cd .tmp_load_move_bin
|
|
Po ../.tmp_load_move_bin.rzdb
|
|
pdq 3 @ 0x080483d8
|
|
o--
|
|
cd ..
|
|
rm .tmp_load_move_bin/.tmp_load_move_bin.bin
|
|
rm .tmp_load_move_bin
|
|
rm .tmp_load_move_bin.rzdb
|
|
EOF
|
|
EXPECT=<<EOF
|
|
0x080483d8 i_do_hope_that_no_entity_knocks_over_my_beverage:
|
|
0x080483d8 50 push eax
|
|
0x080483d9 54 push esp
|
|
0x080483da 52 push edx
|
|
EOF
|
|
RUN
|
|
|
|
NAME=load without file
|
|
FILE=bins/elf/crackme0x05
|
|
CMDS=<<EOF
|
|
e asm.bytes=true
|
|
f a_nice_refreshing_un-moisten @ 0x080483d8
|
|
Ps .tmp_load_without_file.rzdb
|
|
ol
|
|
?e --
|
|
o--
|
|
ol
|
|
pdq 3 @ 0x080483d8
|
|
?e --
|
|
Poo .tmp_load_without_file.rzdb
|
|
rm .tmp_load_without_file.rzdb
|
|
ol
|
|
?e --
|
|
pdq 3 @ 0x080483d8
|
|
EOF
|
|
EXPECT=<<EOF
|
|
3 * r-x 0x00001de8 bins/elf/crackme0x05
|
|
4 - r-x 0x0000001c vfile://0/reloc-targets
|
|
5 - rw- 0x00000004 null://4
|
|
--
|
|
0x080483d8 ff invalid
|
|
0x080483d9 ff invalid
|
|
0x080483da ff invalid
|
|
--
|
|
--
|
|
0x080483d8 a_nice_refreshing_un_moisten:
|
|
0x080483d8 ff invalid
|
|
0x080483d9 ff invalid
|
|
0x080483da ff invalid
|
|
EOF
|
|
RUN
|
|
|
|
NAME=load on top of file
|
|
FILE=bins/elf/crackme0x05
|
|
CMDS=<<EOF
|
|
e asm.bytes=true
|
|
f a_nice_refreshing_un-moisten @ 0x080483d8
|
|
Ps .tmp_load_on_top_of_file.rzdb
|
|
ol
|
|
?e --
|
|
o--
|
|
ol
|
|
pdq 3 @ 0x080483d8
|
|
?e --
|
|
o bins/elf/crackme0x00b
|
|
Poo .tmp_load_on_top_of_file.rzdb
|
|
rm .tmp_load_on_top_of_file.rzdb
|
|
?e --
|
|
pdq 3 @ 0x080483d8
|
|
EOF
|
|
EXPECT=<<EOF
|
|
3 * r-x 0x00001de8 bins/elf/crackme0x05
|
|
4 - r-x 0x0000001c vfile://0/reloc-targets
|
|
5 - rw- 0x00000004 null://4
|
|
--
|
|
0x080483d8 ff invalid
|
|
0x080483d9 ff invalid
|
|
0x080483da ff invalid
|
|
--
|
|
--
|
|
0x080483d8 a_nice_refreshing_un_moisten:
|
|
0x080483d8 0000 add byte [eax], al
|
|
0x080483da 00e9 add cl, ch
|
|
0x080483dc 90 nop
|
|
EOF
|
|
RUN
|
|
|
|
NAME=flags
|
|
FILE=bins/elf/crackme0x05
|
|
CMDS=<<EOF
|
|
fr sym.main sym.renamedmain
|
|
fl~?
|
|
fl~main
|
|
Ps .tmp_flags.rzdb
|
|
?e --
|
|
o--
|
|
fl
|
|
?e --
|
|
Poo .tmp_flags.rzdb
|
|
rm .tmp_flags.rzdb
|
|
fl~?
|
|
fl~main
|
|
EOF
|
|
EXPECT=<<EOF
|
|
111
|
|
0x08048364 16 sym.imp.__libc_start_main
|
|
0x08048540 256 main
|
|
0x08048540 92 sym.renamedmain
|
|
0x0804a000 4 reloc.__libc_start_main
|
|
--
|
|
--
|
|
111
|
|
0x08048364 16 sym.imp.__libc_start_main
|
|
0x08048540 92 sym.renamedmain
|
|
0x08048540 256 main
|
|
0x0804a000 4 reloc.__libc_start_main
|
|
EOF
|
|
RUN
|
|
|
|
NAME=config
|
|
FILE==
|
|
CMDS=<<EOF
|
|
e asm.describe=1
|
|
e asm.describe
|
|
e asm.indentspace=8
|
|
e asm.indentspace
|
|
e analysis.fcnprefix=myfunctions
|
|
e analysis.fcnprefix
|
|
Ps .tmp_config.rzdb
|
|
?e --
|
|
e asm.describe=0
|
|
e asm.describe
|
|
e asm.indentspace=0
|
|
e asm.indentspace
|
|
e analysis.fcnprefix=fcn
|
|
e analysis.fcnprefix
|
|
?e --
|
|
Poo .tmp_config.rzdb
|
|
rm .tmp_config.rzdb
|
|
e asm.describe
|
|
e asm.indentspace
|
|
e analysis.fcnprefix
|
|
EOF
|
|
EXPECT=<<EOF
|
|
true
|
|
8
|
|
myfunctions
|
|
--
|
|
false
|
|
0
|
|
fcn
|
|
--
|
|
true
|
|
8
|
|
myfunctions
|
|
EOF
|
|
RUN
|
|
|
|
NAME=seek
|
|
FILE==
|
|
CMDS=<<EOF
|
|
s 0x1337
|
|
s
|
|
Ps .tmp_seek.rzdb
|
|
o--
|
|
s 0
|
|
Poo .tmp_seek.rzdb
|
|
rm .tmp_seek.rzdb
|
|
s
|
|
EOF
|
|
EXPECT=<<EOF
|
|
0x1337
|
|
0x1337
|
|
EOF
|
|
RUN
|
|
|
|
NAME=analysis
|
|
FILE==
|
|
CMDS=<<EOF
|
|
af+ windowpane @ 0x100
|
|
afb+ windowpane 0x100 0x30
|
|
afl
|
|
Ps .tmp_analysis.rzdb
|
|
?e --
|
|
o--
|
|
afl
|
|
?e --
|
|
Poo .tmp_analysis.rzdb
|
|
rm .tmp_analysis.rzdb
|
|
afl
|
|
EOF
|
|
EXPECT=<<EOF
|
|
0x00000100 1 48 windowpane
|
|
--
|
|
--
|
|
0x00000100 1 48 windowpane
|
|
EOF
|
|
RUN
|
|
|
|
NAME=remember saved project file during session
|
|
FILE=bins/elf/crackme0x05
|
|
CMDS=<<EOF
|
|
e asm.bytes=true
|
|
Ps .tmp_remember.rzdb
|
|
e prj.file
|
|
f cashews @ 0x080483d8
|
|
Ps
|
|
o--
|
|
e prj.file=
|
|
e prj.file
|
|
Po .tmp_remember.rzdb
|
|
e prj.file
|
|
rm .tmp_remember.rzdb
|
|
pdq 1 @ 0x080483d8
|
|
EOF
|
|
EXPECT=<<EOF
|
|
.tmp_remember.rzdb
|
|
|
|
.tmp_remember.rzdb
|
|
0x080483d8 cashews:
|
|
0x080483d8 50 push eax
|
|
EOF
|
|
RUN
|
|
|
|
NAME=raw file permissions after reload
|
|
FILE=bins/other/0x3
|
|
CMDS=<<EOF
|
|
oml
|
|
Ps .tmp_perms.rzdb
|
|
o--
|
|
?e --
|
|
oml
|
|
?e --
|
|
Po .tmp_perms.rzdb
|
|
oml
|
|
rm .tmp_perms.rzdb
|
|
EOF
|
|
EXPECT=<<EOF
|
|
1 fd: 3 +0x00000000 0x00000000 * 0x00000002 r-x
|
|
--
|
|
--
|
|
1 fd: 3 +0x00000000 0x00000000 * 0x00000002 r-x
|
|
EOF
|
|
RUN
|
|
|
|
NAME=migrate info
|
|
FILE=--
|
|
CMDS=<<EOF
|
|
Po prj/v1-noreturn.rzdb
|
|
EOF
|
|
EXPECT=<<EOF
|
|
Detailed project load info:
|
|
project migrated from version 1 to 2.
|
|
project migrated from version 2 to 3.
|
|
project migrated from version 3 to 4.
|
|
project migrated from version 4 to 5.
|
|
project migrated from version 5 to 6.
|
|
project migrated from version 6 to 7.
|
|
project migrated from version 7 to 8.
|
|
project migrated from version 8 to 9.
|
|
EOF
|
|
RUN
|
|
|
|
NAME=longkeys (> 256)
|
|
FILE=bins/elf/crackme0x00b
|
|
CMDS=<<EOF
|
|
s 0x08048464
|
|
af Loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongname
|
|
ac Claaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
|
|
acm Claaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss Meeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeethod 0x100
|
|
Ps .tmp_longkeys.rzdb
|
|
?e --
|
|
o--
|
|
ol
|
|
?e --
|
|
Po .tmp_longkeys.rzdb
|
|
rm .tmp_longkeys.rzdb
|
|
?e --
|
|
afl
|
|
acll
|
|
EOF
|
|
EXPECT=<<EOF
|
|
--
|
|
--
|
|
--
|
|
0x08048464 1 1 Loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongname
|
|
[Claaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss]
|
|
nth name addr vt_offset type
|
|
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
1 Meeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeethod 0x100 -1 DEFAULT
|
|
|
|
EOF
|
|
EXPECT_ERR=<<EOF
|
|
EOF
|
|
RUN
|