265 Commits

Author SHA1 Message Date
pancake
95eff67851
Enable the leading spaces linter rule and fix them all ##lint 2022-09-24 03:43:21 +02:00
pancake
b544f7ec1c Cache r_anal_cc_arg in heap to avoid ownership race conditions 2022-09-23 22:07:49 +02:00
pancake
9e53795891 Add some RThreadLocks and start to use the critical sections ##threads 2022-09-23 22:07:49 +02:00
HighW4y2H3ll
15d337a70a Use RPVector in RAnalOp src/dst to support ldm/stm/simd ##anal 2022-09-18 10:01:39 +02:00
pancake
8317a962e1
Add anal.vars.newstack - configurable improved stack-relative var ##analysis 2022-09-14 00:18:38 +02:00
pancake
b6e7292019 Enable linting for trailing tabs ##lint 2022-08-22 23:25:40 +02:00
pancake
7a35f03471 More source spacing linting 2022-08-18 14:37:29 +02:00
pancake
8c66266e99 Lint for trailing spaces 2022-08-15 18:21:18 +02:00
pancake
332574aeb5
More eprintf -> RLOG here and there ##refactor 2022-07-05 13:34:13 +02:00
pancake
e2bbe2b14e
Add a linting to avoid R_LOG calls ending with a dot ##lint 2022-07-04 17:42:25 +02:00
pancake
3db3750eb0
Lint for x"" ##cleanup 2022-06-28 12:07:58 +02:00
Richard Patel
363df75c06
Replace some instances of eprintf with R_LOG_ 2022-06-28 02:49:42 +02:00
pancake
2bca764ad3 Cleanup stuff
* Use more R_TH_LOCAL
* Use more const char * const
* Add archinfo for cr16
* Use more R_LOG
* Remove dup code in RCons.pixel
2022-06-26 12:41:22 +02:00
pancake
5b7c970f2b eprintf requires newline
* git grep eprintf | grep -v '\\n'| grep '('
2022-05-05 13:11:52 +02:00
pancake
560f7fb424 Introduce r_arch.h. Use RArchConfig in RAnal and improve RRef api ##api
* Fix unaligned issue in hex asan test
2022-04-24 23:11:26 +02:00
pancake
a45ad575b1 Update material webui with latest tweaks 2022-04-20 00:27:17 +02:00
pancake
3b3b83637e Fix #19876 - Smarter local variable and argument sorting ##disasm
* Fix tests
2022-04-18 23:47:18 +02:00
pancake
9386d87f1a Fix comma separated args in r_anal_function_format_sig ##analysis
* This is used by `pd`
2022-04-18 23:47:18 +02:00
pancake
a7ce29647f Fix UAF in aaaa on arm/thumb switching ##crash
* Reported by @peacock-doris via huntr.dev
* Reproducer tests_65185
* This is a logic fix, but not the fully safe as changes in the code
  can result on UAF again, to properly protect r2 from crashing we
  need to break the ABI and add refcounting to RRegItem, which can't
  happen in 5.6.x because of abi-compat rules
2022-03-21 18:46:53 +01:00
pancake
ad2df6a14c Fix undefined behaviour in RVector, RPVector, RInterval and container_of ##fix
* All those basic primites were based on wrong assumptions
* Added more return_if preconditions on several anal functions
2022-03-21 12:04:14 +01:00
pancake
63d4172d94
Fix last covs, mainly memleaks and update one test 2022-03-11 13:14:46 +01:00
pancake
b2cb721bf0
Restrict local vars and args in a 8KB range, otherwise skip ##analysis (#19811)
* Update and verify tests accordingly, new output is better
* Optimize function emulation by reusing bbdata
2022-03-10 16:45:59 +01:00
pancake
5cc0becdcd
Macrofication of the '+=' and '-=' esil operations ##esil 2022-02-01 13:34:34 +01:00
pancake
917527306f
Address latest covs and remove some %zu format warnings (#19647) 2022-02-01 08:19:38 +01:00
Dennis Goodlett
249222cfe7 Simpler var counting API ##analysis 2022-01-31 01:46:54 +01:00
RHL120
785e500a7e
A better way to check if a project has been saved ##projects
* Add a dirty var to RFlag, RAnal and RConfig
* Add  prj.alwaysprompt
* Add R_DIRTY() and R_IS_DIRTY()
2022-01-25 10:39:15 +01:00
pancake
f2995c2949
Introduce r_strf and stop using sdb_fmt ##util 2022-01-18 18:35:31 +01:00
Lazula
ad749a0b1a Fix static/R_API function definition formatting
* Remove spaces before parens
* Remove spaces after asterisks
2021-12-21 20:58:12 +01:00
pancake
e6f2cd0b2a
Remove trailing spaces (#19460)
$ git grep ' $' | grep -v ^test/ | cut -d : -f 1 | sort -u > /tmp/trailing
$ for a in `cat /tmp/trailing` ; do sed -i -e 's/ *$//' $a ; done
2021-12-02 17:39:59 +01:00
aviciano
5a0bc927e7
Fix #16178 - Rename the r_anal_fcn* apis to r_anal_function* 2021-11-21 20:18:46 +01:00
pancake
e344564013 Fix return type in var.c 2021-11-14 18:22:10 +01:00
Dennis Goodlett
70ddf62757
Fix afv outputing commands when not in "*" mode (#19381) 2021-11-06 08:06:34 +01:00
RHL120
59b5ec4e3c
Fix a problem serializing vartypes ##projects
That was causing some functions to not be reloaded after saving the project
2021-11-05 11:26:55 +01:00
Dennis Goodlett
5be4f6c092
Add serialization API for vars ##anal 2021-11-02 11:04:35 +01:00
condret
52262664c9 Fix variable relocation on ood (#19219) ##anal 2021-10-13 22:11:18 +02:00
pancake
67813f9cf2 Hide anoying 'Register wasn't found at the given delta' message 2021-08-22 02:17:50 +02:00
pancake
352630295e
Polish some asserts here and there (#18927) 2021-07-23 09:36:10 +02:00
Kamil Rytarowski
9d761f6a88
Avoid array subscript type issues (#18295)
Cast char to unsigned char for standard reasons and security purposes.

Fixes build issues on NetBSD.
2021-01-26 13:08:58 +01:00
pancake
1184610971
Fix the CI badge and fully rewrite all the workflows to make sense ##build
* Windows, Linux, Static, macOS, Android, iOS builds published for every commit
* Kept coverage, coverity, fuzzing tests, lgtm and -Werror jobs
* Kill the continuos, the over-engineered matrix and other empty or unnecessary tasks (250 vs 900LOC)
* Jobs TODO: fatmac, termux and rpm (centos) packages
2021-01-12 13:41:21 +01:00
Liumeo
93166667da
Fix asan st overflow ##asan (#18149) 2021-01-01 23:33:34 +01:00
Anton Kochkov
5da1b3b076 Fix some warnings 2020-11-16 18:56:21 +08:00
GustavoLCR
d8f2b0c1f7
Fixes for variable access analysis for ARM64 (#17894)
* Add `R_ANAL_VAR_ACCESS_TYPE_PTR`
* Fix ARM64 preindex esil to actually modify the register before doing the operation
* Fix destination register for store ops with multiple sources
* Fix source register for load ops with multiple destinations
* Fix src/dst register for post-indexed ops
* Fix src/dst delta info
* Fix stack modification detection with add instruction
* Fix `tmp` esil register breaking variable access info
* Fix stack analysis for indexed load/stores
* Fix variable detection at sp
* Add ARM64 pre-indexed 'str' function prelude
2020-11-12 12:26:12 +08:00
GustavoLCR
9faa7cb979 Add r_anal_function_delete_unused_vars() 2020-11-01 02:12:14 +01:00
Riccardo Schirone
1e58692071
Fix incorrect uses of printf-like functions ##refactor (#17648) 2020-10-13 16:26:15 +02:00
Florian Märkl
78e30b3ac7
Refactor Variable Constraints out of SDB ##anal (#17693) 2020-09-23 09:40:39 +02:00
GustavoLCR
2128795d94
Takeover variables when splitting functions ##anal (#17560) 2020-09-03 07:44:36 +08:00
GustavoLCR
62eb8e62da
Fix afvd using wrong var offsets (#17572) 2020-09-02 13:49:14 +02:00
GustavoLCR
2d91290434
Fix some cc assertions (#17552) 2020-08-31 12:43:21 +08:00
HoundThe
5845ec39ca
Add function information from DWARF ##anal ##bin (#17434) 2020-08-19 18:21:20 +08:00
GustavoLCR
5b101b6521
Improve ARM and PPC analysis ##anal (#17356)
* Fix stepping with ESIL into thumb code
* Fix seek changed after `aaef`
* Run `aaef` instead of `aae` in `aaa`
* Fill IMM info for arm op
* Add op info for arm32 UXT opcodes
* Fill op src/dst info for cast ops on arm
* Fix false positives for reg args detection on arm/riscv
* Change `r_core_recover_vars()` to recurse on bbs
* Fix reg arena stack being corrupted on `aaef`
* Fix detection of var address references on `aaef`
* Fix arm pseudo syntax output
* Correctly substitute pc relative offsets
* Substitute address references to variables
* Fill op->cond for arm64
* Fix wrong jump table size for arm
* Fill bb->cond
* Implement r_anal_block_recurse_depth_first
* Use r_anal_block_recurse_depth_first on r_core_recover_vars
* Handle MRS/MSR on arm64
* Log if arm op not handled
* Complete arm op_fillval
* Convert 32bit arm64 reg names to 64bit
* Fix stackop analysis on PPC
* Fix tests
2020-07-29 10:41:26 +08:00