Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

ragg2(1) [debian man page]

RAGG2(1)						    BSD General Commands Manual 						  RAGG2(1)

NAME
ragg2 -- radare2 utility to run programs in exotic environments SYNOPSIS
ragg2 [-a arch] [-b bits] [-k kernel] [-f format] [-o file] [-i shellcode] [-I path] [-e encoder] [-B hexpairs] [-c k=v] [-C file] [-d off:dword] [-D off:qword] [-w off:hexpair] [-p padding] [-FOLsrxvh] DESCRIPTION
ragg2 is a frontend for r_egg, compile programs into tiny binaries for x86-32/64 and arm. This tool is experimental and it is a rewrite of the old rarc2 and rarc2-tool programs as a library and integrated with r_asm and r_bin. Programs generated by r_egg are relocatable and can be injected in a running process or on-disk binary file. ragg2-cc is another tool that comes with r2 and it is used to generate shellcodes from C code. The final code can be linked with rabin2 and it is relocatable, so it can be used to inject it on any remote process. ragg2-cc is conceptually based on shellforge4, but only linux/osx x86-32/64 platforms are supported. DIRECTIVES
The rr2 (ragg2) configuration file accepts the following directives, described as key=value entries and comments defined as lines starting with '#'. -a arch set architecture x86, arm -b bits 32 or 64 -k kernel windows, linux or osx -f format select binary format (pe, elf, mach0) -o file output file to write result of compilation -i shellcode specify shellcode name to be used (see -L) -e encoder specify encoder name to be used (see -L) -B hexpair specify shellcode as hexpairs -c k=v set configure option for the shellcode encoder. The argument must be key=value. -C file include contents of file -d off:dword Patch final buffer with given dword at specified offset -D off:qword Patch final buffer with given qword at specified offset -w off:hexpairs Patch final buffer with given hexpairs at specified offset -p padding Specify generic paddings with a format string. -F autodetect native file format (osx=mach0, linux=elf, ..) -O use default output file (filename without extension or a.out) -I path add include path -s show assembler code -x execute (just-in-time) EXAMPLE
$ cat hi.r /* hello world in r_egg */ write@syscall(4); exit@syscall(1); main@global(128) { .var0 = "hi!0; write(1,.var0, 4); exit(0); } $ ragg2 -O -F hi.r $ ./hi hi! $ cat hi.c main() { write(1, "Hello0, 6); exit(0); } $ ragg2 hi.c $ ./hi.c.bin Hello SEE ALSO
radare2(1), rahash2(1), rafind2(1), rabin2(1), rafind2(1), ranal2(1), radiff2(1), rasm2(1), AUTHORS
pancake <pancake@nopcode.org> BSD
Oct 11, 2011 BSD

Check Out this Related Man Page

LINUX(4)						   BSD Kernel Interfaces Manual 						  LINUX(4)

NAME
linux -- Linux ABI support SYNOPSIS
To compile support for this ABI into an i386 kernel place the following line in your kernel configuration file: options COMPAT_LINUX for an amd64 kernel use: options COMPAT_LINUX32 Alternatively, to load the ABI as a module at boot time, place the following line in loader.conf(5): linux_load="YES" DESCRIPTION
The linux module provides limited Linux ABI (application binary interface) compatibility for userland applications. The module provides the following significant facilities: o An image activator for correctly branded elf(5) executable images o Special signal handling for activated images o Linux to native system call translation It is important to note that the Linux ABI support it not provided through an emulator. Rather, a true (albeit limited) ABI implementation is provided. The following sysctl(8) tunable variables are available: compat.linux.osname Linux kernel operating system name. compat.linux.osrelease Linux kernel operating system release. Changing this to something else is discouraged on non-development systems, because it may change the way Linux programs work. Recent versions of GNU libc are known to use different syscalls depending on the value of this sysctl. compat.linux.oss_version Linux Open Sound System version. The linux module can be linked into the kernel statically with the COMPAT_LINUX kernel configuration option or loaded as required. The fol- lowing command will load the module if it is neither linked into the kernel nor already loaded as a module: if ! kldstat -v | grep -E 'linux(aout|elf)' > /dev/null; then kldload linux > /dev/null 2>&1 fi Note that dynamically linked Linux executables will require a suitable environment in /compat/linux. Specifically, the Linux run-time linker's hints files should be correctly initialized. For this reason, it is common to execute the following commands to prepare the system to correctly run Linux executables: if [ -x /compat/linux/sbin/ldconfig ]; then /compat/linux/sbin/ldconfig -r /compat/linux fi For information on loading the linux kernel loadable module automatically on system startup, see rc.conf(5). This information applies regardless of whether the linux module is statically linked into the kernel or loaded as a module. FILES
/compat/linux minimal Linux run-time environment /compat/linux/proc limited Linux process file system /compat/linux/sys limited Linux system file system SEE ALSO
brandelf(1), elf(5), linprocfs(5), linsysfs(5) HISTORY
Linux ABI support first appeared in FreeBSD 2.1. BSD
February 8, 2010 BSD
Man Page

Featured Tech Videos