3225 Commits

Author SHA1 Message Date
Riccardo Schirone
98fa3a33c5 util/num: add support for ROR and ROL 2018-04-07 16:49:33 +02:00
Akshay Ajayan
fa46a814c4 Minor changes for RTTI (#9822)
* minor changes for 64 bit

* some more changes
2018-04-07 10:12:00 +02:00
Riccardo Schirone
8dff0e0106 Fix #9682 (#9810)
* core: fix a couple of segfaults when dealing with large inputs
* core: clone matched flags before executing @@, to prevent UAF
* check for NULLs
* gitignore: ignore autosave Emacs files
* libr/flag: remove assert header
2018-04-05 18:27:26 +02:00
pancake
80759f227d Implement pdsb, /gg to graphpath following calls, and honor anal.depth and search.count 2018-04-05 09:30:47 +02:00
pancake
613b240449 Fix aab. (a8 -> ab). Implement /gg and /g? 2018-04-05 01:45:12 +02:00
pancake
51958b62c3 Implement /g to find all possible paths from A to B inside a function 2018-04-04 00:42:24 +02:00
radare
dfcf6f745d
Initial transition to use RBuffer in RBin (#9787)
* Initial transition to use RBuffer.io in RBin

- Fixes loading Core files from Virtualbox (> 2GB ELF64)
2018-04-03 20:23:26 +02:00
pancake
902ce16418 Honor scr.color un cu[1248] 2018-04-03 00:44:54 +02:00
pancake
6fba433277 Implement r_buf_new_with_io 2018-04-02 03:34:49 +02:00
Xilokar
d903205fc0 Force @b @a over hints (#9767) 2018-03-26 14:11:33 +02:00
Vanellope
1eefb1f645 removed a garbage. (#9766) 2018-03-26 12:40:05 +08:00
Paul I
e273a19466 Meson: Delete libr/include/meson.build (#9760) 2018-03-24 13:24:24 +01:00
pancake
5d59c32db0 Make aac run with O(1) instead of O(n+n*m) on files with class info 2018-03-23 13:51:47 +01:00
Riccardo Schirone
170f80d1d7 Remove R_BIN_SCN_MAP flag (#9744) 2018-03-22 22:10:07 +01:00
Oscar Salvador
de366b1d29 Enhancement of ar= command (#9748) 2018-03-22 17:32:57 +01:00
Akshay Ajayan
fc424815a2 Move ascii table to utils and add ?a command in r2 2018-03-21 18:36:42 +01:00
pancake
a880699409 Fix #9725 - Fix oobread overflow in disasm loop 2018-03-21 16:23:48 +01:00
davidpolverari
b29998f3f2 Implement dietline history on mount-shell (#8806). (#9534)
* Implement dietline history on mount-shell (#8806).

Gives minimal dietline history support inside mount-shell. There is
still a need to implement autocompletion.
2018-03-21 11:59:39 +01:00
Akshay Ajayan
b371251743 Added structs for gcc rtti parsing (#9739) 2018-03-21 11:28:58 +01:00
Dirk Eibach
fe3c10fc22 io: Add gprobe plugin (#9735)
GProbe is a protocol to communicate with various parts from
Genesis/STMicro/MegaChips that are mostly used in video chipsets.

Signed-off-by: Dirk Eibach <dirk.eibach@gdsys.cc>
2018-03-21 10:07:55 +01:00
Dirk Eibach
d45faff871 util: Fix harcoded segment granularity in r_print (#9723)
Fix the hardcoded assumptions on segment granularity in r_print.

Signed-off-by: Dirk Eibach <dirk.eibach@gdsys.cc>
2018-03-19 16:42:07 +01:00
Florian Märkl
d6e3036322 Propagate changes of fcn->_size in anal->fcn_tree 2018-03-18 15:11:29 +01:00
Florian Märkl
7cf1306fbd Remove fcnstore (Fix #9611) 2018-03-18 15:11:29 +01:00
r00tus3r
e7f68c9f3a Started with rtti gcc parsing 2018-03-16 11:13:55 +01:00
Farid AYOUJIL
a3eaa10f69 Adding trie to util 2018-03-16 11:11:17 +01:00
Florian Märkl
93d9f4ec66 Add mask parameter to r_anal_op() 2018-03-16 11:10:15 +01:00
redmed666
24e076e19e Fix #9595 (#9673)
* Added an address mask inside the RAnalEsil struct in order to be sure that the address accessed is relevant with the asm.bits of the file + Changed the calls to r_anal_esil_new

* Corrected the addrmask in r_anal_esil_new

* RTTI: Read MSVC Complete Object Locator

* RTTI: Read MSVC Class Hierarchy Descriptor

* VTable End on Reference

* RTTI: Read MSVC Type Descriptor

* RTTI: Read MSVC Base Class Array, Better Printing

* Add anal.cpp.abi

* Minor Code Style Changes in RTTI

* Fix rahash2 entropy to show non truncated double (#9629)

* Anal - whitespace fixes

* Honor CFLAGS on the static build test compilation (#9677)

* change coding style tab width to 4 (#9670)

* Meson: use more built-in options (#9678)

* Add support for extended regex in asm search (#9675)

* Fix #9665 - Backwardly handle scr.color={bool}

* Fix #9676 - Infinite loop in ecs with scr.color=2

* Adding help for redirection (#9679)

* Refactores function r_str_split_list to receive the character to split by (#9672)

* Fix #9666 - lines with comments do not use Unicode reflines

* Fix uninitialized optypes_list issue in cmd_debug

* update asan.sh to actually take the env for ASAN

* removed incorrect return (#9685)

* Fix UB in ESIL

* Initial import of the CoreUndo API and uc command

* Initial implementation of cmd.pdc to select pseudo-decompiler

* Handle recursive pdc calls

* Fix RPrint.strconv_mode memleak

* Fix leaks in RSyscall.srdb

* Use r_syscall_ref to avoid dblfree-or-leak issue

* Arm thumb/thumb selector for the armass (#9681)

* added function to translate number to imm12
* added function to get thumb shifts easily
* added selector, newfangled implementation of adc
* add bitmask for command suffixes
* added new routine for parsing suffixes to opcodes. Error check added in getnum. Bugfixes.

* Few improvements to 8051 memory mapping (#9686)

* update memory map when idata/sfr/xdata regs change
* set address space name on map
* fix regression, remove debug output
* fix regression, enable map name

* Some fixups for #9682 (#9688)

* Fix: coredump generation for huge programs (#9680)

* Refix #9666 - lines with comments do not use Unicode reflines

* Removed code unnecessary due to dcf3db025085c45124ec21890550a4ef19bd015c

* Fixed free const warning

* Fix another memleak in RSyscall

* Fix more memleaks

* Fix leak in RConsPal.rainbow

* Fix 18K leak in anal.x86.cs

* Fix some more memleaks in disasm and fix issue in str overlap

* Fix memleak in RCore.anal_refs and fix regression

* Revert "Fix some more memleaks in disasm and fix issue in str overlap"

This reverts commit a902df837b0d499e1723179ed5c957c078703b51.

* Fix memleak regressions

* Bring back another memleak fix

* Fix an undefined behaviour in RParse.filter

* Fix memleaks in disasm.c

* Add cundo.c to Meson (#9694)

* Bring back an ugly buffer pack access issue to make it work

* Cast to void * in R_FREE (#9692)

* Set anal.cpp.abi to msvc for pe

* Add better help for av

* Split avr into avr and avra

* Make av, avr and avra breakable

* Add RTTI struct specific print functions

* RTTI: Support MSVC x86_64

* PE: Fix too short section name.

* PDB: define a constant to store the max length of a section name and use id.

* PDB: dump the size of structure and union in JSON mode.

* Fix cast issue in eprintf for debug.core.linux

* Move the asm and anal plugins for x86.udis to extras

Available via r2pm -ci udis86

* Remove more udis86 references

* Fix warnings

* fix pcache ptr-fuckup

* Fix defragger theme

* Fix crash in asl and fix its behaviour

* Fix memory leak in blaze anal and silent a warning

* Implement ?q to be like ?v but in quiet mode

* Fix Meson build

* Add missing 8, 16, 32 bit registers (and flags) for the linux-arm64 debugger reg profile

* Fix 'Cannot find function at UT64_MAX message'

* Add some Pingu to fortunes.fun

* Loading Core (x86, x86_64, aarch64) (#9669)

* Ragg2-cc -> Ragg2 merge (#9658)

- change of 'access' function for 'r_file_exists' for windows portability
- several changes in the way ragg2.c is done, see PR #9658 pancake comments
- change function for the remove of 'file'.text
- open changed for r_file_dump
- some elt of cEnv_t are now const
- skip all the pointers verification in set_cEnv but do them in check_cEnv instead
- add 2 r_str_sanitize for file and CC in parseCFile
- rewrite the removal of .o, .tmp, .bin, .s files, with cleaner code
- changed the long command with sed and grep to 2 C functions.
  - The function parseCompiled that basically does what the command was doing
  - And r_str_stripLines that is equivalent to "grep -v" (maybe we should put this one in str.c ?)
- simplify a bit getCompiler function with a const char* array
- add ternary operator for armOrMips condition
- use r_file_path for finding path to compilers
- new file created in libr/egg which contains all the C file parser
- modifications of 2 files to match the change :
  - libr/egg/r_egg.h
  - libr/egg/Makefile
- the function r_str_stripLine is simplier (the mallocs wasn't needed)
- the function r_str_stripLine is moved to libr/util/str.c
- libr/include/r_util/r_str.h is changed accordingly

* Revert bd3465c9a3fbeddf83980dc07eaac588320f7d (warning remains fixed)

This reverts commit titled "Fixed free const warning".

* Added an address mask inside the RAnalEsil struct in order to be sure that the address accessed is relevant with the asm.bits of the file + Changed the calls to r_anal_esil_new

* Corrected the addrmask in r_anal_esil_new

* Cleanup expressions in esil.c (addr &=...)

* Corrected r_anal_esil_new definition in r_anal.h

* Added an address size max in the ESIL config (maximum address size reachable by the ESIL VM)
2018-03-16 10:45:17 +01:00
Khairul Kasmiran
0f275ea9a6 Revert bd3465c9a3fbeddf83980dc07eaac588320f7d (warning remains fixed)
This reverts commit titled "Fixed free const warning".
2018-03-15 19:20:23 +08:00
Gromimousse
a5c9fc7855 Ragg2-cc -> Ragg2 merge (#9658)
- change of 'access' function for 'r_file_exists' for windows portability
- several changes in the way ragg2.c is done, see PR #9658 pancake comments
- change function for the remove of 'file'.text
- open changed for r_file_dump
- some elt of cEnv_t are now const
- skip all the pointers verification in set_cEnv but do them in check_cEnv instead
- add 2 r_str_sanitize for file and CC in parseCFile
- rewrite the removal of .o, .tmp, .bin, .s files, with cleaner code
- changed the long command with sed and grep to 2 C functions.
  - The function parseCompiled that basically does what the command was doing
  - And r_str_stripLines that is equivalent to "grep -v" (maybe we should put this one in str.c ?)
- simplify a bit getCompiler function with a const char* array
- add ternary operator for armOrMips condition
- use r_file_path for finding path to compilers
- new file created in libr/egg which contains all the C file parser
- modifications of 2 files to match the change :
  - libr/egg/r_egg.h
  - libr/egg/Makefile
- the function r_str_stripLine is simplier (the mallocs wasn't needed)
- the function r_str_stripLine is moved to libr/util/str.c
- libr/include/r_util/r_str.h is changed accordingly
2018-03-15 11:48:21 +01:00
Oscar Salvador
362184b722 Loading Core (x86, x86_64, aarch64) (#9669) 2018-03-15 11:46:07 +01:00
pancake
023e4389ed Remove more udis86 references 2018-03-14 23:43:53 +01:00
Florian Märkl
ec2b05309e Add RTTI struct specific print functions 2018-03-14 20:05:33 +01:00
Florian Märkl
74566827d1 Split avr into avr and avra 2018-03-14 20:05:33 +01:00
Khairul Azhar Kasmiran
f925b2a5b4 Cast to void * in R_FREE (#9692) 2018-03-14 20:00:40 +01:00
Khairul Kasmiran
bd3465c9a3 Fixed free const warning 2018-03-14 21:01:40 +08:00
Adrian Studer
3983af51c5 Few improvements to 8051 memory mapping (#9686)
* update memory map when idata/sfr/xdata regs change
* set address space name on map
* fix regression, remove debug output
* fix regression, enable map name
2018-03-14 13:07:22 +01:00
pancake
3c9879656e Use r_syscall_ref to avoid dblfree-or-leak issue 2018-03-14 12:58:16 +01:00
pancake
2a4efecd39 Initial import of the CoreUndo API and uc command 2018-03-14 12:12:44 +01:00
Vasco Franco
e16c35bc66 Refactores function r_str_split_list to receive the character to split by (#9672) 2018-03-13 13:49:49 +01:00
Florian Märkl
086c3a144e Add anal.cpp.abi 2018-03-12 23:34:34 +01:00
Florian Märkl
d39970e83b RTTI: Read MSVC Class Hierarchy Descriptor 2018-03-12 23:34:34 +01:00
Florian Märkl
94b486cf3e RTTI: Read MSVC Complete Object Locator 2018-03-12 23:34:34 +01:00
Khairul Azhar Kasmiran
b2f301fb07 Disasm now honors str.escblash (#9667) 2018-03-12 15:54:05 +01:00
Dirk Eibach
405524d2f8 Make segment granularity adjustable (#9631)
* core: Make segment granularity adjustable

Segments in x86 real mode have 16 byte granularity(4 address bits).
There are however systems (namely the Vautomation/ARC Turbo 186 cores)
that use 256 byte(8 address bits) instead to allow access to 16MiB memory.

Unfortunately fixed granularity is hard coded in lots of places in r2.

This patch adds asm.seggrn configuration and fixes the hardcoded
assumptions in core.

Signed-off-by: Dirk Eibach <eibach@gdsys.cc>

* anal_x86_cs: Make segment granularity adjustable

Fix hard coded segment granularity assumptions in capstone
anal module.

Signed-off-by: Dirk Eibach <dirk.eibach@gdsys.cc>
2018-03-12 12:37:35 +01:00
Anton Kochkov
f30df2c19d Add print format for size_t, fix warns 2018-03-12 19:01:54 +08:00
Florian Märkl
e61339a3d0 More VTables (#9646)
* List vtable methods without fcn, Merge r_anal_list_vtables() and r_anal_list_vtables_all()

* Additional info in av*
2018-03-10 21:28:27 +01:00
Florian Märkl
59e4408d70 Move VTables from Core to Anal (#9638) 2018-03-09 20:02:39 +08:00
cyanpencil
cd719d120b Implement pluggable dietline history. Use it in Vo (#9591) 2018-03-09 00:33:33 +01:00
Riccardo Schirone
a5811d1a2b Fix #9612 - Skip dummy nodes in graph navigation (#9622)
- This reverts commit 747de793c369f29238abaf8138202a4894d4c8c1.
- And skip dummy nodes for VVtf
2018-03-07 22:14:12 +01:00
pancake
30e98b24be Fix: ed works when no r2rc exists, add RFile.touch() and fix .dump() 2018-03-07 01:20:06 +01:00