258 Commits

Author SHA1 Message Date
pancake
1a6d3155e5 Enhace r2wui and implement 'pdj' command (disasm to json) 2012-11-08 09:49:27 +01:00
pancake
5ad9ae97ed Fix some bugs (nullptr, memleak) reported by clang-analyzer 2012-09-26 10:01:43 +02:00
pancake
d00cc922fb Fix uninitialized variable use in arc disassembler
Fix invalid malloc in generic disasm
2012-09-23 18:10:37 +02:00
pancake
807c8a4088 Initial import of the ARC disassembler from binutils 2012-09-22 21:03:01 +02:00
pancake
5c236fa0e3 Add mips pseudocode, anal.hasnext, fix anal bugs
Better mips analysis
Implemented mips pseudocode plugin
Change asm.parser in asm.arch callback
2012-08-31 11:45:06 +02:00
pancake
e46efa8a1d Initial implementation of r_bin_size (rabin2 -Z)
Changes in the disasm loop to support continuous fun
Fixes disasm after opcode payload
Added RConstr code in r_util (not yet used)
RBinSize implemented for elf, mach0 and plan9
Fix build
2012-08-23 12:46:55 +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
pancake
e365b90d5f Implement support for >- (pipe to editor)
Fix another race condition in the build system
Fix many null deref reported by clang-analyzer
Assume -w when running r2 with -d
2012-08-13 17:42:25 +02:00
pancake
a2ebdcb650 Fix memleaks, nullref and undef (clang-analyzer)
Fix multiple inclusions of mk files
2012-08-08 17:19:48 +02:00
pancake
a260da522c Various build issues have been fixed
Fix build of libr/anal/cparse
r_list.h was not including r_types.h
check null pointer in r_asm
Fix 't' help message
Obey q! in scripts
2012-07-20 17:14:28 +02:00
pancake
3f21f734aa * Added dcpu16 assembler/disassembler in r_asm 2012-06-21 15:13:42 +02:00
pancake
66a5e79317 * Fix invalid init segfault reported by vext01
- This showed several minor fini issues (rlang, rfs, regg, rflag)
* Fixes in r_core_disassemble()
  - Honor delta and r_asm_set_pc()
* Fix RHash bindings and add it into .deps for RCore
2012-06-14 17:41:07 +02:00
pancake
f752759258 * bin_load() is no longer mandatory in RCore
* Added dummy 7bit<->8bit char encoding
* Random fixes in node-ffi and lib/t build
2012-06-06 02:17:02 +02:00
pancake
997a6dbd14 * Apply patch from @w_levin fixing lot of memory leaks - Thanks! 2011-12-16 16:33:06 +01:00
pancake
d779162f07 * Apply @w_levin patch fixing memory leaks
- Use r_list in RBin (deprecate list.h) Thanks!
2011-12-13 14:00:22 +01:00
pancake
07620cd50c * Fix AT&T X86 disassembler when facing invalid instructions
- This bug was reported by @hteso
* Apply @earada patch hiding cursor in visual mode
* Honor asm.size config variable
2011-12-02 01:58:34 +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
d36e430a59 * Fix build and sys/build.sh for BSD 2011-07-03 12:07:43 +02:00
pancake
7b093a3ed5 * Fix all dangerous bugs reported by llvm-analyzer 2011-11-14 22:46:23 +01: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
1f7f9dc036 * Enhacements for rarun2
- add 'timeout' directive
  - directives can now be passed in arguments
  - support more than 3 args for launching
  - show default config file in help
* Added test suite for r_egg
  - Fix nested conditional and loops
  - Some situations can result in broken code
  - Code needs a huge cleanup
* Varioues fixes for x86.nz plugin to make r_egg happy
* Install python plugins into dist-packages only
  - site-packages is not the right place
* Add R2_LIBDIR and R2_PREFIX constants
* Honor LIBDIR in sdbpath for r_syscall
* Fix rabin2 -h for -C
2011-10-24 04:35:42 +02:00
pancake
e5aaa84786 * Fix segfault un r_asm_mdisassemble_hexstr
- Thanks @hteso for reporting!
2011-10-19 19:17:57 +02:00
pancake
c7cced5c67 * Use null fot unsupported plugins
* Fix startup segfault in r_reg doublefree
2011-10-08 23:39:06 +02:00
pancake
fd9e46880f * Disassembler errors are not fatal now
* Fix lib deps build order
2011-10-05 11:55:35 +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
0cca23f7a5 * Fix anal vartypes definitions
* fcnstore working, results slower than with traditional method :(
  - disabled by default
* Fix R_BETWEEN signature
* Add /q to search for qwords
* scr.fkey = hit by default
2011-09-14 03:47:30 +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
1e060082a4 * Remove debug printf 2011-08-04 00:34:39 +02:00
pancake
82b93ffa88 * Rewrite buggy bash r_str_sub and rename as r_str_replace
- Fixes segfault in OSX
  - Fixes r_asm with .equ stuff
2011-08-04 00:33:04 +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
840190602c * Use strncpy instead of strcpy in asm and util
- Also avoid using sprintf and strcat
  - Some speedup and buffer overflows fixed
* Reimplement 'ap' command using the API
  - Fixes some issues related to nested console buffers
  - Faster and more reliable
* Use Color_ definitions instead of hardcoded values in r_print
2011-07-06 01:29:18 +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
5b601d4c13 * Fix many possible malloc(0) bugs (Thanks Edd Barret for noticing!)
* Set cmd->nullcallback to NULL by default
2011-05-11 19:19:53 +02:00
pancake
c6a579a291 * Enforce byte boundaries in some fixed-fetch-size disassemblers 2011-03-14 09:08:24 +01:00
pancake
e557d9a385 * Drop 'r_cons.h' from r_fs
* Fix visual glitch in Vej and Vt
* Handle demangled names as comments
  - in rabin2 and core->bin_load
  - Needs to be a RAnalCall at some point
  - bin_java calls the dummy r_bin_demangle_java
  - Add R_BIN_NM_ANY enum
* Add asm.lbytes config to align disasm bytes to left
* Fix visual glitch in function boundaries
* Import upgraded versions of the idc2rdb scripts in doc/
2011-02-25 04:19:30 +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
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
pancake
259883630b * Move r_asm_fastcall into r_syscall_regs (-42LOC) 2011-02-02 13:02:20 +01:00
pancake
6072a14eef * Simplify and fix rarc2-tool script
* Add support for /**/ style comments in rarc2
* Fix libr2.a warning message
* Fix .string "" directive in rasm2
  - Now works like in GAS. escape chars are handled
  - and quotes are stripped
2010-09-15 13:10:10 +02:00
pancake
9b2d428d1b * Initial hello world for rarc2 in ARM with GAS working
- Few changes needed to work with rasm
* Cleanup some warnings
* Handle foo() as a function definition, so emit frame in rarc
2010-09-15 10:50:43 +02:00
pancake
1b1599c6df * Support for some push/pop arm opcodes with 2 regs
* More fixes for rarc2 on ARM
* Implement .fill directive in r_asm
* Added asm.profile in r_core
* Added r_str_bits as a helper to display register flags
2010-09-14 11:22:31 +02:00
pancake
a9f8d52e59 * Many fixes in ARM assembler and rarc2 support for ARM
- Still not yet usable, but
* Add .byte and .hex in r_asm as directives
* Add test case for r_word api
  - Fix r_word_count()
* Also handle .globl (and .global) to keep GAS compatibility
  - TODO: add .word .fill .align and others
2010-09-14 01:29:09 +02:00
pancake
f4ada2309f * Handle numeric values as radix=10 by default in ollyasm
- Fixes rarc ATT output format for x86
* Fix commandline flags parsing in rarc2
  - Honor intel syntax with ".intel_syntax noprefix" header
    - GAS can now compile att and intel syntax rarc2 output
* Handle .intel_syntax and .att_syntax directives in rasm2
2010-09-10 13:17:24 +02:00
pancake
6e1653881d * Load constant pool from RCore in RAsm
- this is a compiletime module dependency
  - java needs to share constantpool between anal, asm and bin
* Added compile-time introspection POC macros in r_types.h.h
2010-06-29 15:47:30 +02:00
pancake
c9a403cf71 * More work on 'at' command
* RRange ported to r_list (not yet tested)
* Fix r_cmd.vapi RCmdPlugin struct definition
2010-06-04 23:47:35 +02:00
Nibble
fcc6b8d013 * Add flag -M to rabin2 at radare2 startup and cg
* Add r_asm_mdisassemble_hexstr
* Update r_asm.vapi
2010-05-30 13:00:21 +02:00
Nibble
4235dd2a8e * Fix bug with static plugins
* Treat r_cons and r_line as singleton in r_core_init
* Move gdiff to r_core
* Fix libgmp support

--HG--
rename : libr/diff/gdiff.c => libr/core/gdiff.c
rename : libr/diff/gdiff.h => libr/core/gdiff.h
2010-05-28 02:44:51 +02:00
pancake
c077d0ca27 * RAsm.handlers => plugins 2010-05-26 02:55:50 +02:00