Commit graph

43 commits

Author SHA1 Message Date
pancake
50cddc5286 Fix java disasm crash from rasm2 2014-09-30 23:37:20 +02:00
pancake
1a3ffef8b4 Fix static build 2014-06-25 04:11:43 +02:00
pancake
377b5bb2fe Clean a huge list of warnings 2014-06-25 02:07:38 +02:00
deeso
1fbc7f2168 Added load_bytes, Pushed curplugin down to RBinObj, Reworking the RBinFIle loading to accomodate RBinObj reworked how all bins are loaded. Needed to hack IO to make
this work with rbinfiles and rbinobjects.

Conflicts:
	libr/bin/bin.c
	libr/bin/p/bin_te.c
2014-05-13 21:54:18 -05:00
pancake
962ac8d307 Fix all java warnings 2014-05-12 10:16:15 +02:00
Adam Pridgen
6bc694f873 Added colorization to pdn and added a dead code warning if all the bytes in a method are not consumed during analysis. 2014-04-01 16:22:56 -05:00
pancake
10b901736e Fix linux reloc issue in link stage 2014-03-18 02:37:38 +01:00
pancake
bc46258402 Show bits and enhace RAsm plugin descriptions 2014-02-25 17:03:12 +01:00
Adam Pridgen
db1bb1a089 Changed the location of RBinObject, and created RBinFile to conform similarly to
RCoreFile, where RBinFile contains meta information for RBinObjects.  Now
RBinFiles are swapped out along with the RCoreFile when the priority is changed.
2014-01-20 02:44:25 +01:00
Adam Pridgen
285e9ee1ef Moving the bin_obj (internal format into RBinObject proper 2014-01-17 12:41:37 -06:00
Adam Pridgen
9bdd742a43 Fix null pointer issues with java's use of sdb. Re-did the way keys for cp object, methods, and fields are entered into the sdb. Updated the way bin objects are referenced in asm and anal plugins for java. 2014-01-10 00:35:25 -06:00
Adam Pridgen
77bc339184 Added cp_opj info into the sdb. CP Info is a primitive serialization that describes the file location, type, and values (dependant on type) in a dotted string format. 2013-12-22 01:56:18 +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
Adam Pridgen
2715948a89 Forgot to include the required java update 2013-10-20 23:52:06 -05:00
Adam Pridgen
31e47f1c47 Squashed commit of the following:
commit 109915c7812305b9a442d3a0febd9bc43f7104b5
Author: Adam Pridgen <adam.pridgen@thecoverofnight.com>
Date:   Wed Sep 4 09:50:08 2013 -0500

    - Added author rewrite tag

commit 5fe0d07f3a318f871bc5d6a8499afd9ceab26e33
Author: Adam Pridgen <adam.pridgen@thecoverofnight.com>
Date:   Wed Sep 4 09:37:57 2013 -0500

    - Added a print statement for the number of attributes in the Code Attribute
    - Added a default stack frame creation

commit 4b1bca0d79c53421c1d7a9c59da070a5463ba05b
Author: Adam Pridgen <adam.pridgen@thecoverofnight.com>
Date:   Wed Sep 4 08:58:55 2013 -0500

    - Added the R_API prefix to all function declarations and definitions
    - Removed the offset<=size from loops.  Not sure why this check is failing, but it needs to be added in the future (probably add it to the list of defects.)
    - Code appears to parse the classfile correctly

commit 5f5a28302da8c605800946df739c67a0f4f80b0d
Author: Adam Pridgen <adam.pridgen@thecoverofnight.com>
Date:   Tue Sep 3 23:11:00 2013 -0500

    - still minor bug in the parsing code on the Type Verification
     or somewhere in the StackMapAttr.  The right number of bytes are
     being read, but not all the bytes are being consumed

commit 1c9d8b490c8d7d8592f898e019aed3b56f9406c8
Author: Adam Pridgen <adam.pridgen@thecoverofnight.com>
Date:   Tue Sep 3 20:59:08 2013 -0500

    - fixed some compiler warnings in class.c

commit c185248aa478c6c78f6dbe14cf65ee3396287302
Author: Adam Pridgen <adam.pridgen@thecoverofnight.com>
Date:   Tue Sep 3 20:58:21 2013 -0500

    - Propogated the change to code.c from changes from classes.

commit 927542a0672f37b41b23345533bc7e6f2d1a5369
Author: Adam Pridgen <adam.pridgen@thecoverofnight.com>
Date:   Tue Sep 3 17:10:40 2013 -0500

    Fixed some minor parsing bugs:

    code_attr offet was not updated correctly after reading the length of the attribute
    attr_buf was not initialized correctly before use

commit b43a7189e9934369d1fdbd96de020edcab907430
Author: Adam Pridgen <adam.pridgen@thecoverofnight.com>
Date:   Tue Sep 3 16:33:36 2013 -0500

    - Code compiles.  Time to test.

commit ea7b332d84b88baca1abc466d02b00b2b8739bca
Author: Adam Pridgen <adam.pridgen@thecoverofnight.com>
Date:   Mon Sep 2 23:55:44 2013 -0500

    - Added in size calculations for the CP Objects.
    - Need to add method or field references calculations for size after compiling

commit ba55375dc0e835fb46550d0063758e419ec0ed7b
Author: Adam Pridgen <adam.pridgen@thecoverofnight.com>
Date:   Mon Sep 2 22:56:56 2013 -0500

    - Revamped all of the attribute parsing.  The parsers will handle buffers rather than simply
      parsing straight from the file.

    - added a size calculator for each of the attributes, which opens up the way for creating
      writers for the attributes and such.

commit be6f2e038f01beeb56ace7d4daaf4d90ad3fdad7
Author: Adam Pridgen <adam.pridgen@thecoverofnight.com>
Date:   Sat Aug 31 12:19:18 2013 -0500

    - Cleaned up code and removed some of the compiler warnings.

commit 4c81812f2609e4a80c7036053d122306039dd6ef
Author: Adam Pridgen <adam.pridgen@thecoverofnight.com>
Date:   Fri Aug 30 15:24:15 2013 -0500

    - Compiler and linker errors have been resolved.
    - Need to work on testing

commit 429ed30621d9abff1eec99ef50a35c57bbed76ad
Author: Adam Pridgen <adam.pridgen@thecoverofnight.com>
Date:   Fri Aug 30 13:35:39 2013 -0500

    Added the RunTime Annotations and Parameter annotations.
    Time to start compiling and testing.

commit b6044e1c74cc10874902bd34da7c8fcbdb5713cc
Author: Adam Pridgen <adam.pridgen@thecoverofnight.com>
Date:   Fri Aug 30 12:34:14 2013 -0500

    Added BootstrapMethodsAttr Parsing code along with supporting stuff, like creating
      the method and argument structures and mapping the REF_types to strings

    More should be done to map the REF_types to specific resolutions.

    Added in the MethodType, MethodHandle, and InvokeDynamic ConstantPool Objects

commit 2c9317be5d2be0608131fb9aa10f713885c89471
Author: Adam Pridgen <adam.pridgen@thecoverofnight.com>
Date:   Fri Aug 30 00:21:34 2013 -0500

    Finished drafting the code for annotation, element values, element value pairs,
       and annotation default attribute.

    TODO: RTI, RTV, and then Bootstrap attributes.

commit cbee3a10c18342f6a8fb941245568de885fe5666
Author: Adam Pridgen <adam.pridgen@thecoverofnight.com>
Date:   Thu Aug 29 15:42:00 2013 -0500

    Fixed the r_bin_java_element_value_new function definition.

commit ab98a76fabf2bd7764a51f3363d821c5a4cf1200
Author: Adam Pridgen <adam.pridgen@thecoverofnight.com>
Date:   Thu Aug 29 15:39:28 2013 -0500

    - worked out some of the initial compile errors.
    - worked out an outline for parsing the element_values
    - need to work through parsing the element value, freeing the element value, and then printing a summary.

commit b543d904f2aebd0d1f9c0ac8ec8401b6ab698f36
Author: Adam Pridgen <adam.pridgen@thecoverofnight.com>
Date:   Thu Aug 29 08:21:33 2013 -0500

    Most of the heavy lifting is done for attributes.  Need to implement a few of the methods,
    and then compiling should be able to happen.

    Added in all attribute values to the enums, the function call tables, and then the Metas information.

    Need implement an ElementValue parser bleh.

    Need to implement RuntimeAnnotations, Annotations, ElementValue parsing and make sure that
    the attribute unions are all updated.

commit 81f9ca2da2ed7e007a97a20ecb8eb260dfd55e7e
Author: Adam Pridgen <adam.pridgen@thecoverofnight.com>
Date:   Wed Aug 28 22:33:43 2013 -0500

    Finished adding some logic to handle the StackMapFrame types.

commit 9a0965cc06021ad56d2127d279b918eef613bec9
Author: Adam Pridgen <adam.pridgen@thecoverofnight.com>
Date:   Wed Aug 28 17:54:52 2013 -0500

    Got some of the StackMapTable Atrribute parsing working.  Right now,
    only the FullStackFrame will correctly parse.

commit ea12bd6a8ae9969fa05cbcab622651c8b426917a
Author: Adam Pridgen <adam.pridgen@thecoverofnight.com>
Date:   Fri Aug 23 17:51:33 2013 -0500

    Added some debugging code while trying to figure out how to parse the StackMapTable.

commit 6141b57ee94c7bd0569d0ea76725fdce1ac50edf
Author: Adam Pridgen <adam.pridgen@thecoverofnight.com>
Date:   Fri Aug 23 17:00:12 2013 -0500

    Code compiles.

commit a7ad14050eb6184a1171620c4dcdba71b2f791aa
Author: Adam Pridgen <adam.pridgen@thecoverofnight.com>
Date:   Fri Aug 23 10:29:17 2013 -0500

    - Added a basic Signature element
    - Added declarations for the new functions to handle the parsing of the
      StackMapTable related structures.

commit 54cca3d9af60463dbfa77e23ef1d562ae82d6e5a
Author: Adam Pridgen <adam.pridgen@thecoverofnight.com>
Date:   Fri Aug 23 10:18:50 2013 -0500

    Finished an initial coding implementation of the StackMapTable.
    -- Will perform testing later in the day.
    -- Need to look-up the Signature Attribute

commit a14238eece865f4d1c5f2d6b1f482b000d10d94e
Author: Adam Pridgen <adam.pridgen@thecoverofnight.com>
Date:   Thu Aug 22 20:23:45 2013 -0500

    StackMap stuff is wip.

commit f011a5d948d31cc6197eed1bbea497a4dde362aa
Author: Adam Pridgen <adam.pridgen@thecoverofnight.com>
Date:   Thu Aug 22 18:44:23 2013 -0500

    Made the globals match the R_* standard.  Also tried to clean up naming stuff.

commit 6e61e15572744c2ed722ac3df8d988cc02f1316c
Author: Adam Pridgen <adam.pridgen@thecoverofnight.com>
Date:   Thu Aug 22 16:40:08 2013 -0500

    Plugging progress into the repo.  Adding fixes to handle the Java
    Class file appropriately.  This modification is mostly a re-write
    of the Class File parser, and it "tries" to do a better job of
    creating better objects for each of the Classfile elements.

    Currently this code is experimental, and current TODOs are:
    1) Testing
    2) StackMapTable
    3) LocalVariableTypeTable
2013-09-04 18:52:42 +02:00
pancake
5285d1bdea Break ABI. r_asm_disassemble's length is now 'int' 2013-04-09 22:54:04 +02:00
pancake
19a1f84f1f Initial import of the GNU aarch64 disassembler from binutils
$ r2 -a arm -b 64 -
2013-02-26 01:37:42 +01:00
pancake
27643193f8 Fix segfault in java disassemler, and cleaner output. 2013-02-20 02:24:37 +01:00
pancake
48f710abe8 Share RBinJavaObj to RAsmJava plugin, better java and fixes in config
Some more work to get java support back (analysis, disasm, bin share)
Honor ordinal field in java r_bin methods
Fix segfault in 'af*' on FreeBSD (thanks idwer for reporting!)
Fix some valgrind warnings
Better io.maxblk handling
Fix div by zero when blocksize is 0
Fix disasm lines when no function and extra code comments
2012-12-20 11:31:38 +01:00
pancake
04140210d1 Fix build? 2012-11-27 19:03:09 +01:00
pancake
8f6459977d Refactor of {bin|asm}/java into shlr/java 2012-11-16 02:29: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
pancake
7ee7f936db Fixes parsing bug in java class and and rbinelfFixes in java class and and rbinelf)) 2012-11-14 04:57:56 +01: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
earada
708e10e413 * Change some files license from GPL3 to LGPL
* Fix build
2011-04-28 02:09:43 +02:00
pancake
d953cd9adf * Initial implementation of the java name mangling
- Added as comments before the method names
* Some fixes in r_bin_java
* Added r_buf(append/prepend)
* Show flags always in new lines
2011-02-27 20:30:41 +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
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
Nibble
5c35f6e359 * Rename {r_*_handle_t, R*Handle} to {r_*_plugin_t, R*Plugin} 2010-05-26 01:42:22 +02:00
pancake
c8d637a26a * RAsmHandle -> RAsmHandler.. Same for RBin
- Define RAsmHandler in r_asm vapi
* Random code cleanup
* Define RHex.str2bin in rutil vapi
2010-05-26 00:59:10 +02:00
pancake
be12c8f284 * Added anal_java plugin (copypasta from r1)
- Split java_ops array into a separate object file
* Fix r_config.vapi and add RConfig instance in RCore definition
2010-05-23 14:31:18 +02:00
Nibble
bd2561af7f * Several fixups in r_asm and rasm2
* Fix ruby test for swig
* Add dummy perl test for swig
* Remove perl warning from swig/Makefile
2010-02-12 18:40:05 +01:00
Nibble
97bc1e4b62 * rasm
- Add r_asm_code for massemble and mdisassemble
  - Use realloc in massemble and mdisassemble
  - Remove unused disasm_obj
2010-01-08 18:25:25 +01:00
pancake
9442317413 * Major refactoring patch
- Remove plugin prefixes
    - It was unnecessary complicated
  - Remove unused code
  - Some RAPIfication
  - Rename _set( methods into _use(
  - Simplify some string processing
  - r_parse is working again
  - Sync all those api changes in r_core
  - External static plugin lists moved to .c
  - Fix some cast-related segfaults in core
* Review the r_search API
  - RAPIfication
  - Allow to pass NULL as binmask
  - Added TODO with some more ideas
2009-09-24 12:29:05 +02:00
Nibble
94445e1540 * Change the name of some types
- s/u64/ut64/
  - s/u32/ut32/
  - s/u16/ut16/
  - s/u8/ut8/
2009-07-08 13:49:55 +02:00
Nibble
499adab6f1 r_asm
- Remove some warnings from r_asm
  - Redefine parameters in several functions
2009-04-23 00:09:55 +02:00
Nibble
724d900e62 * r_asm
- Fixed initialization
  - Fixed assembly fallbacks
  - Removed dupped memcpy's in disassembly functions
  - Added the directive ORG to asm_x86_nasm
  - Refactoring
* rabin2
  - Added -L to list supported plugins
2009-04-14 15:21:19 +02:00
pancake
5f74c8068d * Move buf_hex memcpy in r_asm instead of dupped code in every plugin
- Plugins needs to be synced
* Added x86nasm assembler backend to handle x86-64
  - Not yet working. Pretty buggy :)
* Fix support of building static plugins for r_bp
  - Statically link r_bp_x86 by default
* Implement ugly r_sys_cmd_str() command in r_util
2009-04-13 22:47:02 +00:00
pancake
cdd80105cb * Initial dummy implementation of r_bp
- Managing breakpoints for the core
  - Initial work on the support for breakpoints
    for the r_debug plugins
* Adding some dummy work for context support in r_anal
* Make asm_set_bits check per-plugin supported bit sizes
  - Now asm plugins have 'arch' and 'bits' attributes
  - Used to setup default callbacks for undefined 'assemble' callback
  - Also used to avoid setting asm.bits eval variable to invalid values
  - We need a way to display all this data
* Added DEFAULT_ARCH in config.h to setup default arch to asm and anal
* Added r_config_set_i_cb()
  - Make r_config_set restore value when callback is called and fails
  - asm.bits now has a config callback
* Added _LAST in some r_anal enums
2009-04-11 21:22:20 +00:00
pancake
b2e785fc61 * Add 'static-plugin' feature to r_asm module
* Make rabin2 support 'arm' instead of 'asm_arm' for -a (autoprefix 'asm_')
* Some build fixtures
* Static plugins are configurable in libr/config.mk and libr/config.h
2009-03-08 23:49:15 +00:00
Nibble
3d76339cec * Added java plugin for r_asm
* Added java assembly support in rasm2
2009-03-05 16:58:13 +01:00