Commit graph

71 commits

Author SHA1 Message Date
NikolaiHampton
392dd94bf7 Optimisation of Levenshtein calc in radiff2 -s
- Optimised the distance calculation for radiff -s
- Fixed a bug in radiff.c that where verbose was always true.
- Added check that calloc() was successful.
- Shuffled code around to minimise use of free()
- Added some comments.

Speeds up the radiff2 statistical diff. Drastically reduced the ‘edit
distance search space’ by ignoring ranges that can’t affect the edit
distance. Improves search for similar files (common use case?), can
reduce the search space significantly:

One file tested went from two unknown versions of httpd, on MacBook has
a 28 hours processing time, down to ~13 minutes. Results will vary based
on file differences the more similar the files, the faster it'll run.
2016-07-17 12:10:20 +02:00
pancake
a2a032833e Show file size if not matching in radiff2 2016-07-01 14:08:25 +02:00
pancake
8361f2ea83 Honor RIO in radiff's slurp - thanks @brainstorm for the tip 2016-07-01 14:02:46 +02:00
NikolaiHampton
2c50dd0c59 Memory efficient implemenation of Levenshtein Distance for radiff2 (add -V)
Implemented the iterative two matrix row version from here: https://en.wikipedia.org/wiki/Levenshtein_distance
and here: http://www.codeproject.com/Articles/13525/Fast-memory-efficient-Levenshtein-algorithm

Memory usage was originally 200Gig for a couple of 100K files ~(sizeA*sizeB), now about ~(sizeB*2)...
2016-05-26 11:03:01 +02:00
Sven Steinbauer
547f8bbc5c Infer fixes Round 2 (#4993) 2016-05-24 22:22:15 +02:00
Sven Steinbauer
8da8ad740f Cleanup fixes
* For commit comments and compiler errors
* Fixes for PR comments
* fix some "infer fixes" commits

Signed-off-by: Riccardo Schirone <sirmy15@gmail.com>
2016-05-23 11:25:44 +02:00
Sven Steinbauer
eef32d0260 First few fixes for infer scans
Fixes a few memleaks and several NULL dereferences

Signed-off-by: Riccardo Schirone <sirmy15@gmail.com>
2016-05-23 11:25:44 +02:00
pancake
ca73b22c02 Hint -A in -C for radiff2 2016-05-17 21:48:36 +02:00
pancake
1ac0d47652 Honor aho in pd 2016-04-21 01:38:08 +02:00
pancake
8b08a8cba8 Add radiff2 -x in help 2016-04-21 01:29:57 +02:00
pancake
1f1a963cf2 rabin2 -x is now like r2's cc 2016-04-18 03:21:52 +02:00
NaveenBoggarapu
7d61361361 fix some memory leaks 2016-04-01 19:25:32 +02:00
pancake
f4618c0bbd Remove radiff2 -CC because we already have -A, -AA, -AAA ... 2016-03-22 13:00:02 +01:00
pancake
1aaa475298 Fix #4335 - radiff2 -A 2016-03-19 02:57:53 +01:00
Matthieu Tardy
1a573e1056 Cleanup binr/*/*.c
r2agent:
- Fix the usage to match other r2 binaries.
- Remove trailing whitespace.
- Remove addressed TODO.
- Add a default case to display usage and exit if -p option was used
  without argument.
- Return 1 instead of 0 if too much arguments are provided.
- Small coding style fixes.

radiff2:
- Small coding style fixes.

rafind2:
- Add a default case to display usage and exit if an option have a missing
  argument or getopt does not recognize an option character.
- Small coding style fixes.

ragg2:
- Small coding style fixes.

rahash2:
- Remove useless optarg check.
- Missing arguments and unknown options now display usage and exit.
- Small coding style fixes.

rarun2:
- Small coding style fixes.

rasm2:
- Small coding style fixes.
- Missing arguments and unknown options now display usage and exit.

rax2:
- Small coding style fixes.

radare2:
- Missing arguments and unknown options now display usage and exit.
- Small coding style fixes.
2016-03-05 19:52:42 +01:00
pancake
7dd32315a5 Fix r_strbuf regression 2016-02-16 00:57:17 +01:00
pancake
d29fe6a43d Add documentation for radiff2 -D 2016-02-15 23:52:12 +01:00
pancake
fd359e9121 Implement radiff2 -D and optimize r_strbuf 2016-02-15 23:51:20 +01:00
pancake
ccfee9fcca Fix many important issues reported by clang-analyzer 2015-11-22 11:27:45 +01:00
pancake
49975ccf95 Fix #3286 - Use stdbool.h 2015-09-14 02:08:31 +02:00
pancake
0a7ed3e58b Workaround for radiff2, requires some extra review 2015-08-27 13:32:57 +02:00
dequis
0d91e7b433 radiff2: show filename instead of (null) in "cannot open" error message 2015-08-27 12:01:09 +02:00
Riccardo Schirone
def029d548 tools: always pass baddr to r_core_bin_load
radiff2: adapt to changes in baddr/laddr
bin/bin: no need to reset the baddr
2015-08-26 20:08:13 +02:00
pancake
878f81dca1 Fix radiff2 -g regression and some code cleanup 2015-05-19 17:41:09 +02:00
Kai Renken
56df8c1592 small fix 2015-05-19 14:12:33 +02:00
Kai Renken
720cedd59c some cleanups on radiff2 json output preparation for #1594 2015-05-19 14:12:33 +02:00
dequis
e8a555bf46 radiff2: update help to reflect that -f was renamed -n
It was changed in 4c1253b but that commit missed the help part
2015-05-06 23:02:42 +02:00
pancake
061a2af999 Add radiff2 -CC for deeper bindiffing 2015-04-07 04:12:18 +02:00
pancake
25518385be Fix radiff2 -g: buffer was not flushed 2015-04-07 02:24:24 +02:00
pancake
7292fbab40 Fix PE and Brainfuck crashes related to RBinInfo
- Fix warn in radiff2
2015-03-27 17:18:15 +01:00
Kai Renken
db4abd8f6b Fix #2061 - Add JSON style output to radiff2 2015-03-27 11:44:06 +01:00
pancake
12ea9734b5 Fix about 15 more random COVs 2015-03-21 02:04:49 +01:00
pancake
4c1253b0c5 Use radiff -n for numeric addresses instead of function names 2014-12-26 19:28:55 +01:00
Andrew McDonnell
841a00e0d1 Add option to radiff to suppress names 2014-12-26 19:26:06 +01:00
pancake
b91d1d9eca Fix #1556 - radiff2 -x dump issue 2014-10-28 11:54:58 +01:00
pancake
4c4173769b Revert "Fixing the issue where file size exceeds size of an integer":
3adb00621b
e2afa84443
0761955fdb
17cc18fad0
135c62fb5d
2014-09-20 15:33:59 +02:00
dso
e2afa84443 Update radiff2.c 2014-09-18 09:03:42 -05:00
Adam Pridgen
135c62fb5d Fixing *most* warnings related to the change in r_file_slurp 2014-09-17 22:37:54 -05:00
jvoisin
029c11a4b5 Minor cleaning of radiff2 2014-08-20 19:47:03 +02:00
jvoisin
9f18c219a6 Optimize radiff2 -g off1,off2
- Less than one sec now versus more than 15 before
- Code is cleaner (no more "r_core_cmdf")
- Colours are now correct
- Fix `radiff2 -C`
2014-08-20 03:51:10 +02:00
jvoisin
6a1c06738d Enable bindiff between two offsets 2014-08-19 04:43:54 +02:00
jvoisin
80168c933b Fix CID 1134538 2014-05-11 13:18:33 +02:00
pancake
ee276298b2 Fix memleaks in radiff2, segfaults in 8051 and aagraph 2014-05-09 03:06:05 +02:00
pancake
08d94e38e1 Plugins are now loaded from API, not from Core constructor 2014-04-03 12:43:30 +02:00
pancake
a727663f98 Add radiff2 -a and -b flags 2014-03-19 10:41:13 +01:00
pancake
5b4f0db2e5 Fix #602 - Radiff2 -C should display a legend 2014-02-18 15:39:06 +01:00
pancake
e63271e688 Fix build 2013-11-06 01:36:40 +01:00
pancake
bec4f5b63a Fix radiff2, Ps segfaults and ARC syntax
- Fix some nullptr derefs on uninitialized graphdiff structs
- 'ar' is now r_cons compliant and rnum friendly (add arj)
- Fix some arc disasm syntax issues
- Fix segfault when saving analysis info in projects
- ARCompact analysis needs to be rewritten
2013-10-24 13:59:19 +02:00
oblique
e21b70ab85 radiff2: fix show count 2013-04-11 22:11:48 +03:00
pancake
735a4f7a4a Fix -h and manpages. Kill rsc2 and rasc2 from binr/ 2013-04-02 12:11:20 +02:00