Commit Graph

202 Commits

Author SHA1 Message Date
pancake
e774d332b7 Fix #3082 - Add support for MASM syntax in x86.cs 2015-08-21 15:29:37 +02:00
mrdanielps
dce2a1eb88 Add V810 support 2015-07-08 21:09:59 +02:00
pancake
f8384feb6b Initial disassembler support for HP PA-RISC (from GNU binutils) 2015-05-28 11:24:31 +02:00
pancake
bb76bb1794 Add asm.syntax=jz to convert je/jne into jz/jnz 2015-05-09 11:11:46 +02:00
Jonathan Neuschäfer
6a3362ea9a Add a disassembler for Sharp LH5801 processors 2015-03-28 22:39:39 +01:00
Aaron Puchert
43f240520e Rename x86.new assembler to x86.tab
This stands for "table lookup assembler".
2015-02-22 22:32:13 +01:00
pancake
a5f53eae05 Initial implementation of asm.features on x86.cs and arm.cs 2015-02-11 03:50:56 +01:00
Aaron Puchert
0a2668d840 Wrote new x86 assembler
Supports only 32-bit for now and doesn't understand all mnemonics. And
we don't always choose the optimal opcode.
2015-02-05 16:05:20 +01:00
condret
2828ca508c add alternative LGPL z80-disassembler 2015-01-27 18:33:03 +01:00
jvoisin
a8937732b8 Fix all 'warning: function declaration isn’t a prototype [-Wstrict-prototypes]' 2015-01-13 03:40:35 +01:00
pancake
4825bb815c Remove psosvm from master repo (moved to radare2-extras) 2015-01-03 02:27:29 +01:00
pancake
274f22001d Add initial support for CRIS cpu as suggested by LolyRoP 2014-12-07 23:18:22 +01:00
condret
c80c68dd43 add disassembler for i4004 2014-11-18 15:50:06 +01:00
pancake
2482d569e4 Use capstone sparc by default and better ppc disasm 2014-11-10 16:47:03 +01:00
pancake
af8326bd3d Use capstone by default for POWERPC and do some more fixes in anal 2014-11-10 16:22:09 +01:00
pancake
1341cd7b7a Fix build 2014-11-10 11:28:34 +01:00
Fedor Sakharov
2b0009b858 msp430: Initial commit 2014-09-25 21:46:57 +02:00
Fedor Sakharov
0592964fe9 propeller initial commit 2014-09-18 18:51:24 +02:00
Jonathan Neuschäfer
8d13b40365 r_asm.h: slightly clarify a comment 2014-09-13 00:17:37 +02:00
pancake
8204e78c3f Fix RBin & RLang related crashes (fix lot of memleaks and dblfrees) 2014-08-29 16:27:44 +02:00
pancake
bd39d7a6d5 Reduce RAsmOp struct size from 4096 to 384 bytes 2014-07-31 03:37:38 +02:00
pancake
0d3b5e18ea Add missing file and minor hashbang fix 2014-07-30 22:15:16 +02:00
pancake
d328957768 Update sdb to fix '***' and add r_asm_get_plugins 2014-07-03 00:03:01 +02:00
pancake
2490e54e77 Add asm.syntax=regnum (alias for capstone NOREGNAME) 2014-06-25 15:44:33 +02:00
pancake
f74b788809 Rename GNU plugins to _gnu 2014-06-25 12:22:08 +02:00
condret
49b31e30f3 add spc700-disassembler
fix a gcc-warning and make things more @jvoisin compliant
2014-06-16 01:14:52 +02:00
pancake
bb16d1737c Add initial XCore capstone disassembler and code analysis plugins 2014-05-27 23:08:59 +02:00
pancake
ca18aedb94 Add Capstone SystemZ and SPARC disassembler and analysis plugins 2014-05-17 02:53:37 +02:00
Fedor Sakharov
af55ab712d Adds v850 support.
Fixes #751
2014-05-16 15:56:52 +04:00
pancake
bea860681b Make include files C++11 friendly 2014-04-11 10:26:25 +02:00
pancake
2397c956c9 Use R2_ as unique header guard prefix 2014-03-27 16:34:17 +01:00
pancake
d3af1ea077 Fix #723 - header guards conforming to C standards 2014-03-27 02:32:26 +01:00
Fedor Sakharov
08aca601b1 cr16: Initial support for CR16. 2014-03-21 21:03:17 +04:00
pancake
784a1d2a72 Import radare2-capstone asm/anal plugins 2014-03-07 04:15:45 +01:00
pancake
bb7958342b Deprecate RPair API and ?k. Use SDB and integrate it with 'k' 2014-03-07 01:26:11 +01:00
Fedor Sakharov
8db329d5c6 h8300: Initial commit. 2014-02-26 19:46:13 +01:00
condret
ca1644eaea add 6502-disassembler + make asm.snes shared 2014-02-24 17:24:51 +01:00
pancake
2c676570a9 Merge branch 'master' 2014-02-06 00:27:08 +01:00
pancake
9a099e9e9e Add RAsmPlugins->cpus and handle it in rasm2 -L <arch> 2014-02-06 00:26:17 +01:00
Ilya V. Matveychikov
969ea9b7c2 TMS320: move c55plus under the TMS320 namespace
Sorry for the huge patch, but there is nothing special. We just move
asm/arch/c55plus into the asm/arch/tms320 and add some wrappers to use
existing code base under the new namespace.

Also, we've implement TMS320 anal module that supports now c55+ only. To
be continued...
2014-02-06 01:19:23 +04:00
Ilya V. Matveychikov
1db5c446a9 Add TMS320 disassembly engine
This patch adds TMS320 DSP family processors disassembly engine. It's
purpose to add support for the all the families processors but as for
now the only one of them is supported (C55X).
2014-02-05 12:14:06 +01:00
condret
cfdb0ebea1 Add basic whitespace support #592 2014-02-02 23:56:58 +01:00
condret
9825896e7c Add support for Malbolge disasm and analysis 2014-01-28 11:21:17 +01:00
pancake
ad430f0d52 Add simple nios2 analysis plugin (colors!) 2014-01-15 22:44:14 +01:00
pancake
933dc0ef6d Add NIOS CPU disasm support (from gnu binutils) 2014-01-15 12:31:57 +01:00
pancake
9f0d7e44d3 Fix some issues reported by coverity 2014-01-15 01:56:28 +01:00
pancake
230efd1f05 Rename {RAsmRAnal}Op inst_len and length to size 2013-12-06 05:04:17 +01:00
pancake
d49b56dc3a RAnalPlugin now have .license and uses the same .bits like in RAsm 2013-12-05 18:41:13 +01:00
pancake
7d70f79755 Fix #399 - Add .license to all plugins 2013-12-02 04:44:26 +01:00
Fedor Sakharov
1a72cdec24 Initial commit for EFI Byte Code (EBC) disassembler. 2013-12-02 01:25:54 +01:00
condret
c949e467a0 Add SNES disassembler 2013-11-29 17:30:58 +01:00
Adam Pridgen
a5ad388eb5 Cleaned up how the pd command process input. Added support for setting [len] [asm.arch] [bits] for all pd commands. 2013-11-22 08:45:13 -06:00
condret
38bd1d9271 add gb support 2013-11-14 23:36:43 +01:00
pancake
daddfcc7b6 Fix warnings and mdisassemble signature 2013-08-15 17:33:41 +02:00
pancake
2cbce80f2f Add __cplusplus extern "C" boilerplate everywhere 2013-06-18 12:09:23 +02:00
pancake
ef781cbadd New flag rasm2 -c CPU. pointer hints, fix analysis of x86-16 jmps
Add ahp (pointer hints)
Add rasm2 -c flag to select cpu (wip for arm)
rasm2 -e toggles instead of setting
Fix analysis of absolute jumps in x86-16
Push and pops are now magenta \o/
2013-06-17 03:26:48 +02:00
pancake
d6de30eba4 More R_LIB_VERSION and initial r_asm_set_cpu() dummy api 2013-06-15 02:56:25 +02:00
pancake
bc0104563b Initial support for runtime versioned libraries
- This check will ensure you are running the latest r2 version.
2013-06-14 02:51:33 +02:00
th0rpe
a42e574954 Initial import of the c55+ disassembler (by th0rpe) 2013-05-15 16:11:15 +02:00
pancake
f52fdf762f Fix armthumb disasm, 64bit inc/dec on x86, syscall in r_asm
- rasm2 -k to select kernel like ragg2 does
- rasm2 -k linux -b32 'mov eax, $sys.write'
- Implement x86-64bit INC and DEC
- Add x86-8 and x86-64 bit calling conventions in r_syscall
2013-04-22 01:09:27 +02:00
pancake
5285d1bdea Break ABI. r_asm_disassemble's length is now 'int' 2013-04-09 22:54:04 +02:00
pancake
189e5553cc Initial 8051 disasm and ihex:// io plugin 2013-04-09 20:05:36 +02:00
pancake
766563cc6e Big endian for arm.winedbg and addn randomart in rax2 -k
r_asm: Add support for big endian arm.winedbg
rax2: Add -k randomart to rax2, -k is now -B
rax2: Handle multiple flags on a single argument
rax2: update manpage
2013-02-13 01:20:42 +01:00
pancake
7a0da18725 Add r_bin.rar plugin, per-section arch/bits, fix in S=
Add Sa to set/get per-section arch and bits configuration
Cache io->section and core->io->section to speed up the Sa
Update r_sys_arch*
Add dummy plugin in asm/rar
Fix lines of S=
2012-11-30 01:06:30 +01:00
pancake
8ea25c4a46 Use RNum in RAsm, fixes for segoff and better disasm
Reference of RNum in RAsm (use flags in 'wa/pa'!)
Use RNum in x86.nz plugin
Rename scr.segoff to asm.segoff
Fixes for segmented addressing resolution
Honor lineswidth in disasm
Remove rabin2 -p flag in help and manpage
Fix disasm.c loop for small blocksizes and invalid ops
2012-11-16 01:34:26 +01:00
Alexander
2c5cd9b32d Initial implementation of i8080 analyser. 2012-10-29 20:51:45 +00:00
Alexander
278a24126e Initial implementation of i8080 disassembler. 2012-10-29 20:51:40 +00:00
pancake
83cfbb2236 Add initial ARC code analysis module (branches)
ELF parser setups the proper ARC asm and anal
Fix segfault in the GNU ARC disassembler
2012-09-23 17:33:19 +02:00
pancake
807c8a4088 Initial import of the ARC disassembler from binutils 2012-09-22 21:03:01 +02:00
pancake
f75817ee6c Initial work on supporting payloaded opcodes
Basic classes support for dalvik (rabin2 -C, ic*)
2012-08-22 18:02:23 +02:00
Roi Martin (@nibble_ds)
059594e7a9 Add new ARM disassembler plugin based on winedbg (arm_winedbg) 2012-08-07 22:17:14 +02:00
Anton Kochkov
e075a18b56 Types cleanups 2012-07-22 12:01:39 +04:00
pancake
3f21f734aa * Added dcpu16 assembler/disassembler in r_asm 2012-06-21 15:13:42 +02:00
pancake
c443abcf87 * Add experimental r2-bindings/node-ffi
- Requires valabind from tip
  - Some ABI changes to get dynamic langs happy
2012-06-05 17:50:12 +02:00
pancake
42a2e92fec * Added m68 disassembler and code analysis
- m68k assembler pending to fix some license issues with author
* Added z80 assembler and disassembler
  - still not integrated with the plugin
* Software licenses sucks
2012-02-02 01:06:22 +01:00
pancake
630143ce2d * Fix att disassembler for udis86
* add r_asm_setup()
* Add better api for nodejs r_asm
2011-11-24 00:06:26 -05:00
pancake
e0fc376dab * Fix some t-*.sh scripts (rollback)
* Initial working version of shellcodes inside r_egg
  $ ragg2 -i x86.osx.binsh -b 64 -k osx -f mach064 -o a.out
  ragg2 -L : list all plugins
  ragg2 -i <shellcode-plugin> : select shellcode
  ragg2 -r : show raw bytes
  ragg2 -x : execute -- fails :(
* Use r_lib in r_egg
  - User defined shellcode plugins can now be loaded on runtime
* Fix append_bytes in r_egg api
* Implement r_egg option_{get|set}
* Use working shellcode for x86.osx.binsh example (64bit)
* Update pkgconfig templates
* Add -D flag to rasm2 (show hex and asm)

--HG--
rename : libr/egg/p/x86_osx_binsh.c => libr/egg/p/egg_x86_osx_binsh.c
2011-11-13 04:08:08 +01:00
pancake
0f271a8bac * Added api to get opcode descriptions
- r_asm now depends on r_db (uses r_pair aka sdb)
  - r_asm_describe()
  - install opcode descriptions
  - Use ?d to get description of opcode (uses asm.arch)
* Add 'fl' command to get length of flag
* Fix some warnings in anal.sparc plugin
* Add new assembler directives
  - .int8 (alias of .byte)
  - .int16 (alias of .short)
  - .int32 and .int64
* Fix memory leak in r_core_disasm()
* Add accessors for RAnalFcn.{refs,xrefs,vars,bbs}
  - Updated bindings
2011-11-12 01:52:31 +01:00
pancake
a43068bde0 * brainfuck debugger is finally usable
- Added breakpoint and code analysis plugins for bf
  - *mem++ != mem[0]++
  - Full register get/set support
  - Support for step and continue-until-syscall
  - Work in progress breakpoint support
* Added bfvm_reset() hooked to plugin->kill
* Enhacements in r_core and r_debug for better debugger support
  - Added plugin->step_over delegate
2011-10-09 04:15:32 +02:00
pancake
098b1ba127 * Implement input and output filters for rasm2
- Experimental.. not yet ready for release
  - Add rasm2 -F flag to specify input and output filters
   $ rasm2 -F att2intel
* Add new att2intel r_parse plugin
  - make mrproper required
* Initial implementation of RBinClass
  - Only experimental and Java-specific atm
  - Add rabin2 -C to display classes
* Optimize some r_str functions
2011-10-05 02:38:37 +02:00
pancake
df8fb6cc21 * Store last .text/.data address in RAsmCode->{code,data}_offset
* Lot of fixups in x86.nz for better 64bit support
  - More opcodes are now supported (mov [base+delta], etc..)
* Make r_egg hello world work with x86.nz.
  - fixed some bugs in the rarc2 language parser
  - egg/t/test aims to be rarc2 replacement
  - rarc2 lang code seems to compile fine now,
  - r_egg now depends on r_syscall
* Fix null pointer in RNum
2011-08-08 00:46:04 +02:00
pancake
839f71e937 * Initial import of the asm.x86.nz plugin
- Very few instructions can be assembled
  - Aims to assemble code with no zeros
* Added xorencoder.asm test file
2011-08-05 00:34:45 +02:00
pancake
aad2e91d96 * Initial import of asm.x86.as plugin
- Uses OSX/GNU/BSD 'as' assembler
2011-08-03 21:01:56 +02:00
pancake
c47da60578 * Some fixes in r_syscall (thanks vext01!)
* Use x86.olly before x86.nasm
* Add r_asm_assemble_file() method
  - Accessible with 'waf' command
2011-07-07 00:53:08 +02:00
pancake
aa236eb063 * Finally fix a segfault in the htflags implementation
- This was workarounded to work incorrectly
* Fix build on OSX of the dalvik plugin for r_asm
* Other minor random checks
2011-06-29 00:36:52 +02:00
pancake
868acc4059 * Added RBinBind type and logic
- Refactoring required to allow RAsm retrieve info from RBin
  - Will be used by dalvik and java disassemblers
2011-06-26 20:29:24 +02:00
pancake
535a2aa713 * r_asm_disassemble use _CONST_ut8* buffer now
* Split core/cmd.c into disasm.c and core/visual.c into vmenus.c
* Fix some warnings reported by valgrind
* Chop instructions disassembled by udis86
* Fix visual prompt display in debugger mode
* Added 'pdi' and 'pdf' commands
  - Used to print just instructions or lengths
  - Documented via 'pd?'
* Added initial work on a test suite for r2
  - Spot a crash!
2011-06-04 03:14:04 +02:00
pancake
3f2677ab7f * Added initial untested support for native gdb debugger mode
- r2 -d gdb://<host>:<port>
  - register maps not yet implemented
  - some basic step/continue should work in cfg.debug=true
  - gdbwrap instance is shared between RIO and RDebug
* RDebug is now arch-sensitive
  - Plugins describe which architectures and register sizes are supported
  - Native debugger is restricted to local CPU
  - Remote debugger (GDB) arch can be specified with -e asm.arch=arm
* Fix some random warnings
* Move R_ASM_ARCH into R_SYS_ARCH
  - Helper functions to translate id to string and string to id
    are now in util/sys.c (r_util)
  - Move all R_SYS_* from r_util to r_types
    - Endianness, OS, CPU and regsize is now 'global'
2011-05-06 00:59:10 +02:00
Eloi Sanfelix
f0a708e6fd rdebug->arch as a ut64 bitmap 2011-04-07 23:21:30 +02:00
Eloi Sanfelix
7c04f11226 Initial SH4 support 2011-03-29 14:55:41 +02:00
pancake
9ee9ad84e6 * Add install-pkgconfig-symlink target
* Add dummy r_asm_op_free
2011-02-27 21:56:13 +01:00
Nibble
268d6560ad * Complete analysis for more opcodes in anal_x86
* Decode more opcodes in r_anal_op_to_string
* Complete r_anal_value_to_string()
  - Output imm values
  - Fix segfault
* Remove dupped line from x86.mk
* Remove ref to "dummy plugin" from r_asm.h
2011-02-27 16:17:05 +01:00
Nibble
ddffdff8d2 * Rename r_asm_aop_* to r_asm_op_*
* Rename remaining r_anal_aop_*
2011-02-24 16:50:29 +01:00
capi
e84907fb98 * Add msil support to r_asm 2011-02-23 13:00:24 +01:00
pancake
3f883a7c54 * Fixes for the GUILE bindings
- Added accessors for RAsmAop-buf-hex and RAsmAop-buf-asm
  - Added test case for r_asm API
2011-02-17 22:03:30 +01:00
Nibble
5742b10641 * Remove remaining fastcall stuff from r_asm
* Fix build for bindings
2011-02-04 18:34:20 +01:00
pancake
259883630b * Move r_asm_fastcall into r_syscall_regs (-42LOC) 2011-02-02 13:02:20 +01:00
earada
dd9f3b000b * Fix dalvik big opcodes
* Asm bufsize is 1024 again
2011-01-31 00:26:07 +01:00
earada
0283c92f6e * Initial import of Dalvik (Android VM) disassemble plugin
* Change opcode buffer size to 3218 (need refactor)
2011-01-19 00:39:28 +01:00
pancake
98cc88700d * Added much more detailed vapis
- Enhaces API support for valaswig bindings
  - I'm probably breaking the build
2010-10-28 00:55:07 +02:00