Commit Graph

53 Commits

Author SHA1 Message Date
pancake
3f1d3ba146 Better r_str_hash(), Fixes in CCa, Added ?h, Better rbin for BEOS bins
Identify Haiku binaries as 'beos' with noodle()
Fix CCa for non numeric offsets
Use sdb's r_str_hash() instead of old one (much less collisions)
Added ?h command to hash strings
CCa now appends instead of replacing comments
Do not mark as static if bin links to libs
2013-06-07 10:26:37 +02:00
pancake
3540924f40 Better paralelization of build system 2012-10-04 01:20:00 +02:00
pancake
69a12884ed Simplify the build system
doc.sw has been moved to radare2-extras
2012-10-03 14:31:35 +02:00
pancake
850045c329 Fix many bugs noticed during the training course
Fixed ragg2 -e segfault
Fix use of ragg2 -p
Fix memleaks and null derefs in rio and rsocket
Fix some build warnings
Fix the segfaults found in the ELF parser
Dwarf parsing is only done if bin.dwarf is true
2012-09-22 20:32:19 +02:00
pancake
884d35027d Fix segfault in ragg2 -e xor 2012-09-22 18:35:02 +02:00
pancake
be247348b5 Rename r_file_exist into r_file_exists 2012-09-06 08:59:13 +02:00
pancake
a8757a695f Fix android build and add r_core->anal_define api
Fix static build (libr.a)
Fix android build farm scripts
Build system is still hacky
2012-09-03 01:27:52 +02:00
pancake
10b4b5546c Fix resize command and more make race conditions 2012-08-14 01:25:50 +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
526a8a66fe Fix function renaming and add some 8bit x86 ops
- 'afl' is now just listing functions
- Use 'afl*' to get also 'loc.' functions (BBs)
- Fix length in cb_hit for search
- Fix infinite build in libr/egg
- Fix 'afr' command to rename function
- Implement 8bit mov, (out,in)sb in x86.nz
- Fix ragg2 -d for one byte writes
- Fix vapi
2012-08-02 02:44:46 +02:00
pancake
aafff4a55a * Initial fix for regdiff colorizer
- dro is working again
* Dummy agt command (analyze graph to destination)
  - Still wip, requires some changes in r_anal api
* Handle ap? command
* Use core->dbg->bits in core_reg
* dbt - backtrace accepts an argument to redefine ebp
* Use r_core_seek_delta in visual (fix Vh = 0xFFFFF..)
2012-06-14 02:18:15 +02:00
pancake
3517420927 * Fix race condition building libr/debug
* Fix libr/egg and plugin's Makefiles
* Honor CPPFLAGS
2012-06-13 01:42:47 +02:00
pancake
fee1dfda07 * Fix some bugs reported by clang-analyzer 2012-05-31 02:41:45 +02:00
pancake
65d1dddfd1 * apply rudi_s patch fixing multiple bugs
- Fix uninitialized variables and other GCC warnings
  - Remove unused variables, fix invalid heap ops
  - ?p print error if VA is not
  - Fix invalid write in r_io_cache_read().
* add support for 'mov reg, [addr]' in x86.nz[32]
2012-02-12 23:45:04 +01:00
pancake
997a6dbd14 * Apply patch from @w_levin fixing lot of memory leaks - Thanks! 2011-12-16 16:33:06 +01:00
pancake
16cf2367b9 * Added unreferenced connect back shellcode for linux/mips
- kidnaped from http://www.exploit-db.com/exploits/18226/
2011-12-13 14:04:11 +01:00
pancake
f908b15fb5 * Fix android compilation
- Fix static build
  - Fix dupped symbols
* Fix all errors reported by clang-analyzer
  - Some null dereferences
  - Some uninitialized variable uses
* Fix all important warnings from the farm
  - Remove *all* uses of alloca
  - Fix many %llx format string portability issues
* Fix manpage typos reported by lintian (thanks sre)
2011-12-06 00:27:57 +01:00
pancake
8edef15e88 * Initial working import of the r_egg_xor encoder
- Fix r_egg and ragg2 accordingly
  - Based on @santitox patch. Thanks! :D
2011-12-01 03:28:12 +01:00
pancake
ec7f601e2c * Add -d -D and -w flags to ragg2
- patch dword/qword and hexpair bytes on finalize
* Initial import of the dummy Shoorisu Yagana shellcode encoder
  - just a wishlist.. do not expect it for this release
2011-11-30 10:27:01 +01:00
pancake
35d535095b * Install includes in windows dist
* Import linux-x86-32/64 and darwin-x86-32 sflib includedirs
* Simplify data installation for magic, egg, syscall and asm
* Set R2_INCDIR in r_userconf
* Make ragg2-cc much smarter
  - use ragg2 -v to get paths and version
  - accept new flags -a -b -k for arch, bits and kernel
  - supports crosscompilation

--HG--
rename : libr/magic/d/OpenBSD => libr/magic/d/default/OpenBSD
rename : libr/magic/d/archive => libr/magic/d/default/archive
rename : libr/magic/d/cafebabe => libr/magic/d/default/cafebabe
rename : libr/magic/d/cisco => libr/magic/d/default/cisco
rename : libr/magic/d/database => libr/magic/d/default/database
rename : libr/magic/d/editors => libr/magic/d/default/editors
rename : libr/magic/d/elf => libr/magic/d/default/elf
rename : libr/magic/d/filesystems => libr/magic/d/default/filesystems
rename : libr/magic/d/flash => libr/magic/d/default/flash
rename : libr/magic/d/freebsd => libr/magic/d/default/freebsd
rename : libr/magic/d/gimp => libr/magic/d/default/gimp
rename : libr/magic/d/images => libr/magic/d/default/images
rename : libr/magic/d/java => libr/magic/d/default/java
rename : libr/magic/d/jpeg => libr/magic/d/default/jpeg
rename : libr/magic/d/linux => libr/magic/d/default/linux
rename : libr/magic/d/mail.news => libr/magic/d/default/mail.news
rename : libr/magic/d/matroska => libr/magic/d/default/matroska
rename : libr/magic/d/mime => libr/magic/d/default/mime
rename : libr/magic/d/msdos => libr/magic/d/default/msdos
rename : libr/magic/d/netbsd => libr/magic/d/default/netbsd
rename : libr/magic/d/pdf => libr/magic/d/default/pdf
rename : libr/magic/d/perl => libr/magic/d/default/perl
rename : libr/magic/d/python => libr/magic/d/default/python
rename : libr/magic/d/riff => libr/magic/d/default/riff
rename : libr/magic/d/sniffer => libr/magic/d/default/sniffer
rename : libr/magic/d/sql => libr/magic/d/default/sql
rename : libr/magic/d/sun => libr/magic/d/default/sun
rename : libr/magic/d/uuencode => libr/magic/d/default/uuencode
2011-11-29 03:14:27 +01:00
pancake
83eed8c94a * Fix dup2 for w32
* Fix r_anal and r_socket vapis
* Split r_egg_run() into r_sys_run()
2011-11-16 00:44:18 +01:00
pancake
a0ed400b2c * Fix build (missing R_ANAL_BB_HAS_OPS somewhere)
- experimental change to save memory..
* Fix warning in R_MEM_ALIGN() macro
* Fix r_db vapi and add RPair vapi
* Add new r_egg vapi and python bindings
  - Add linux x86-32,64-arm shellcodes
  - Requires valabind update
2011-11-15 14:30:52 +01:00
pancake
cd35cf4508 * Added 'g' command to use r_egg api from RCore 2011-11-14 10:10:55 +01:00
pancake
cd96e35ec9 * Add ragg2 -e [encoder] to specify an encoder
- Added dummy 'xor' encoder. needs to be implemented
* Various fixes in libr/egg/p/*.mk -- requires make mrproper
* ragg2 -L list encoder and shellcode plugins

--HG--
rename : libr/egg/p/egg_x86_osx_binsh.c => libr/egg/p/egg_exec.c
rename : libr/egg/p/x86_osx_binsh.mk => libr/egg/p/exec.mk
2011-11-14 02:04:27 +01:00
pancake
33f045c3d6 * Add ragg2 -B to get user-defined hexpair bytes
* Use R_MEM_ALIGN() in r_egg_run() and rasc2
  - Fix execution of shellcode eggs
* r_egg plugins now support multiple architectures and operating systems
2011-11-14 01:17:13 +01:00
pancake
ac7f96bb0c * Add ragg2 -p to specify a padding
- Use the new r_egg_padding function
* Add support for continuations in rapatch2 '+' char
* Fix malloc(0) thanks to llvm's scan-build
* Fix build
2011-11-13 05:26:07 +01:00
pancake
94f905cfe0 * Do not build rasc2 anymore
* ragg2 now works better
  - Show bitsize in ragg2 -L
  - Added a sample plugin for x86-64 osx shellcode
    - command can be configured, suid can be enabled
* Minor fix in r_buf api

--HG--
rename : man/rasc2.1 => binr/rasc2/rasc2.1
2011-11-13 04:47:56 +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
9969f39564 * Initial work merging rasc2 inside r_egg
- Still unusable, but getting shape
2011-11-12 06:16:00 +01:00
pancake
14f85bd76f * Import Glyn Kennington's patch for the build system
- Use absolute paths everywhere and simplify Makefiles
2011-11-03 11:49:50 +01:00
pancake
81727c9c28 * Fix lea in x86.nz
* Some more fixes for r_egg
  - Use more tests cases
  - Warn when stackframe doesnt fits
* Make t.sh unit test tool nicer
  - Accept option flags to show asm, disasm, ..
* Add R2_PREFIX and R2_LIBDIR into r_util.vapi
2011-10-24 10:59:27 +02: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
0217c146ef * Fix x86.nz -> push [esp+N]
* Use pw instead of px in debugger stack view
* Disable stackptr by default
* Add OSX-32bit debugger register map
  - Fix support for debugging 32bit bins in 64bit OSes
* Implement r_egg_run() -- just in time execution
* Fix r_egg string construction and argument passing
  - Still needs more work, but at least some hello worlds work
2011-09-21 19:51:09 +02:00
pancake
fcf67d5cd2 * Fix dup anal issue
* Added sys/farm/README
2011-09-20 09:44:17 +02:00
pancake
1b440bf9d2 * Add ragg2 -I to prepend include path directories
* Enhacements in r_egg library
  - Add support for including files
    - bla.r@include($PATH);
  - Proper support for goto() keyword
  - Add support to get and set environment variables (need more work)
    - PATH@env(/bin);
  - Fix /* */ comment parsing code
2011-09-20 01:53:15 +02:00
pancake
0a14411bc1 * Added README documentation for libr/egg programming language
* Add -O flag to ragg2 as an alias for -o a.out or -o <file> (without extension)
* Add rabin2 -M (get main) for Java Class files
* Add emit_trace (code tracer) for r_egg. useful to debug
  - ragg2 -a trace hello.r
  - Add emit->jmp() function pointer and emit->retvar
  - many fixes in function calls and definitions
  - Added support for 'break;' 'break();' and 'goto();'
  - Added .ret variable as an alias for eax, rax or r0
2011-09-19 02:39:33 +02:00
pancake
838e6b7466 * Fix java class parser for javac -g files
- Show debug information in sdb format
  - Fix null pointer segfault
  - Still work-in-progress for proper debug info
* Some work on r_egg
  - Fix windows and osx default syscall tables
* Export version number in vapi R2_VERSION
* Hide ccache error if not found in sys/install
2011-09-18 18:56:11 +02:00
Nibble
0f8cc36a58 * Fix build
- Add r_db to DEPS in Makefiles
2011-09-04 11:49:32 +02:00
pancake
2c92c7d172 * Merge rapatch2 into rabin2 -p
* Honor bits in r_syscall_setup
  - Initial work on RPair in r_syscall
  - Not yet integrated, but design is mostly done
* Add r_str_split()
* Add python2 and python3 makefile rules in r2-bindings
2011-09-04 03:56:35 +02:00
pancake
f5228044f1 * exit 1 if egg assemble or compilation fails
* Simplify x86nz assembler jumps
  - Fix 'test reg, reg'
* Minor simplification of entropy.c
2011-08-14 14:11:15 +02:00
pancake
de5f4061ee * Add support for jl, jle, jg, jge, jne, je in x86.nz
- support for signed/unsigned values in r_egg
2011-08-13 17:23:24 +02:00
pancake
1424bf9701 * Initial support for 'jb' opcode in x86.nz
- hello.r now is broken because of this use
  - Ignore prefixed '$' in numeric values for r_egg
* Apply @capi_x's patch fixing a bug in 'wb' and rsc/msdn
2011-08-11 17:41:24 +02:00
pancake
b3cefac08b * Make while() and .var0-= statements work in r_egg lang
- Added support for 'add|sub [reg+delta],n' opcodes in x86.nz
* Add emit_init() function pointer to fix entrypoint issues
  - ebp has no valid value defined on entrypoints
2011-08-10 11:24:15 +02:00
pancake
168d38fc44 * Add rax2 -x to calculate string hash
* Use trim to avoid noisy chars in symbol names for egg/lang
* Properly handle osx/w32 os strings in r_egg
* Make string construction works in r_egg
* Initial work on while() constructs
2011-08-09 11:06:50 +02:00
pancake
06e98dadb1 * Add -k flag to ragg2 - select kernel
- ATM only support for linux and osx
  - Do not show asm when -f is passed
  - Added 3 test programs for osx/linux in ragg2
* Add support for 'lea' opcode in x86.nz
  - Support more 'mov [off], reg' opcodes
  - Lot of new test cases in test.nz
* Fix some segfaults and parsing bugs in egg/lang

--HG--
rename : binr/ragg2/exithello.r => binr/ragg2/t/exithello.r
2011-08-09 02:03:12 +02:00
pancake
1f48797bfb * Fix test reg, reg; mov reg, [reg] ; mov reg, [reg+off] in x86.nz
* First hello world working with ragg2 on linux-x86-32
  - Named exithello.r .. run cd binr/ragg2 ; make test
2011-08-09 00:10:12 +02:00
pancake
1733e6d8a9 * Use r_bin from ragg2 to create ELF/PE/MACH0 bins 2011-08-08 15:00:42 +02:00
pancake
429a475ac0 * Deprecate rarc2 and rarc2-tool
- Replaced by ragg2 - the new r_egg based tool for r2
* Add r_egg_assemble as a 2nd step for compilation
* Fix memory leak in r_egg_free
* Add support for 'cmp' and more 'test' variants for x86.nz
  - Ignore 'dword ptr' string
  - More test cases
* Fix SCSIZE issue in rasc2 -s

--HG--
rename : binr/rarc2/Makefile => binr/old.rarc2/Makefile
rename : binr/rarc2/README => binr/old.rarc2/README
rename : binr/rarc2/config.def.h => binr/old.rarc2/config.def.h
rename : binr/rarc2/config.h => binr/old.rarc2/config.h
rename : binr/rarc2/emit_arm.c => binr/old.rarc2/emit_arm.c
rename : binr/rarc2/emit_x64.c => binr/old.rarc2/emit_x64.c
rename : binr/rarc2/emit_x86.c => binr/old.rarc2/emit_x86.c
rename : binr/rarc2/i/libc.r => binr/old.rarc2/i/libc.r
rename : binr/rarc2/i/socket.r => binr/old.rarc2/i/socket.r
rename : binr/rarc2/osxtest.r => binr/old.rarc2/osxtest.r
rename : binr/rarc2/out.c => binr/old.rarc2/out.c
rename : binr/rarc2/rarc2-tool => binr/old.rarc2/rarc2-tool
rename : binr/rarc2/rarc2.c => binr/old.rarc2/rarc2.c
rename : binr/rarc2/rarc2.h => binr/old.rarc2/rarc2.h
rename : binr/rarc2/t/Makefile => binr/old.rarc2/t/Makefile
rename : binr/rarc2/t/argv.r => binr/old.rarc2/t/argv.r
rename : binr/rarc2/t/bytedump.r => binr/old.rarc2/t/bytedump.r
rename : binr/rarc2/t/data.r => binr/old.rarc2/t/data.r
rename : binr/rarc2/t/dump.r => binr/old.rarc2/t/dump.r
rename : binr/rarc2/t/hello.r => binr/old.rarc2/t/hello.r
rename : binr/rarc2/t/hi.r => binr/old.rarc2/t/hi.r
rename : binr/rarc2/t/if.r => binr/old.rarc2/t/if.r
rename : binr/rarc2/t/inline.r => binr/old.rarc2/t/inline.r
rename : binr/rarc2/t/input.r => binr/old.rarc2/t/input.r
rename : binr/rarc2/t/loop.r => binr/old.rarc2/t/loop.r
rename : binr/rarc2/t/ptr.r => binr/old.rarc2/t/ptr.r
rename : binr/rarc2/t/rawsys.r => binr/old.rarc2/t/rawsys.r
rename : binr/rarc2/t/rawsys64.r => binr/old.rarc2/t/rawsys64.r
rename : binr/rarc2/t/regs.r => binr/old.rarc2/t/regs.r
rename : binr/rarc2/t/ret.r => binr/old.rarc2/t/ret.r
rename : binr/rarc2/t/room.r => binr/old.rarc2/t/room.r
rename : binr/rarc2/t/segfault.r => binr/old.rarc2/t/segfault.r
rename : binr/rarc2/t/shell.r => binr/old.rarc2/t/shell.r
rename : binr/rarc2/t/sub.r => binr/old.rarc2/t/sub.r
rename : binr/rarc2/t/syscall.r => binr/old.rarc2/t/syscall.r
rename : binr/rarc2/test.r => binr/old.rarc2/test.r
rename : libr/egg/t/syscall.r => binr/ragg2/syscall.r
2011-08-08 02:07:26 +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
9c2397a994 * Use x86.nz in egg for rarc2
- Adds support for 64bit eggs
2011-08-07 03:53:41 +02:00