diff --git a/Doxyfile b/Doxyfile index 1f068ec22a..98ecbaeb56 100644 --- a/Doxyfile +++ b/Doxyfile @@ -32,7 +32,7 @@ DOXYFILE_ENCODING = UTF-8 # title of most generated pages and in a few other places. # The default value is: My Project. -PROJECT_NAME = Radare2 +PROJECT_NAME = Rizin # The PROJECT_NUMBER tag can be used to enter a project or revision number. This # could be handy for archiving the generated documentation or if some version @@ -51,7 +51,7 @@ PROJECT_BRIEF = "unix-like reverse engineering framework and cli tools" # pixels and the maximum width should not exceed 200 pixels. Doxygen will copy # the logo to the output directory. -#PROJECT_LOGO = doc/images/r2.svg +#PROJECT_LOGO = doc/images/rizin.svg # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path # into which the generated documentation will be written. If a relative path is diff --git a/binrz/rizin/rizin.c b/binrz/rizin/rizin.c index 44e8e1a812..88f0418853 100644 --- a/binrz/rizin/rizin.c +++ b/binrz/rizin/rizin.c @@ -7,15 +7,15 @@ #include static RzCore *core = NULL; -void *r2_asmjs_new(const char *cmd) { +void *rz_asmjs_new(const char *cmd) { return rz_core_new (); } -void r2_asmjs_free(void *core) { +void rz_asmjs_free(void *core) { rz_core_free (core); } -char *r2_asmjs_cmd(void *kore, const char *cmd) { +char *rz_asmjs_cmd(void *kore, const char *cmd) { if (kore) { if (!cmd) { rz_core_free (kore); @@ -34,7 +34,7 @@ static void wget_cb(const char *f) { rz_core_cmdf (core, "o %s", f); } -void r2_asmjs_openurl(void *kore, const char *url) { +void rz_asmjs_openurl(void *kore, const char *url) { const char *file = rz_str_lchr (url, '/'); if (kore) { core = kore; diff --git a/binrz/rz-test/run.c b/binrz/rz-test/run.c index 65a88beeed..2c5812db97 100644 --- a/binrz/rz-test/run.c +++ b/binrz/rz-test/run.c @@ -897,7 +897,7 @@ static RzTestProcessOutput *run_rz_test(RzTestRunConfig *config, ut64 timeout_ms #else size_t env_size = load_plugins ? 0 : 1; #endif - RzTestProcessOutput *out = runner (config->r2_cmd, args.v.a, rz_pvector_len (&args), envvars, envvals, env_size, timeout_ms, user); + RzTestProcessOutput *out = runner (config->rz_cmd, args.v.a, rz_pvector_len (&args), envvars, envvals, env_size, timeout_ms, user); rz_pvector_clear (&args); #if __WINDOWS__ free (wcmds); diff --git a/binrz/rz-test/rz-test.c b/binrz/rz-test/rz-test.c index 8905827efa..bc4afd0567 100644 --- a/binrz/rz-test/rz-test.c +++ b/binrz/rz-test/rz-test.c @@ -284,7 +284,7 @@ int main(int argc, char **argv) { ut64 time_start = rz_time_now_mono (); RzTestState state = {{0}}; - state.run_config.r2_cmd = rizin_cmd ? rizin_cmd : RIZIN_CMD_DEFAULT; + state.run_config.rz_cmd = rizin_cmd ? rizin_cmd : RIZIN_CMD_DEFAULT; state.run_config.rz_asm_cmd = rz_asm_cmd ? rz_asm_cmd : RZ_ASM_CMD_DEFAULT; state.run_config.json_test_file = json_test_file ? json_test_file : JSON_TEST_FILE_DEFAULT; state.run_config.timeout_ms = timeout_sec > UT64_MAX / 1000 ? UT64_MAX : timeout_sec * 1000; diff --git a/binrz/rz-test/rz_test.h b/binrz/rz-test/rz_test.h index 3262e12cfa..92c7807160 100644 --- a/binrz/rz-test/rz_test.h +++ b/binrz/rz-test/rz_test.h @@ -125,7 +125,7 @@ typedef struct rz_test_test_database_t { } RzTestDatabase; typedef struct rz_test_run_config_t { - const char *r2_cmd; + const char *rz_cmd; const char *rz_asm_cmd; const char *json_test_file; ut64 timeout_ms; diff --git a/doc/iphone.md b/doc/iphone.md index 34b621b779..2400f5cdc8 100644 --- a/doc/iphone.md +++ b/doc/iphone.md @@ -9,7 +9,7 @@ Crosscompiling from OSX: export IOSVER=7.1 ./configure --prefix=/usr --with-ostype=darwin --with-compiler=ios-sdk --target=arm-unknown-darwin make -j4 - make install DESTDIR=/tmp/r2ios + make install DESTDIR=/tmp/rzios Natively compiling on iOS @@ -43,7 +43,7 @@ Setup SDK for ARMv6 5) Get the varinclude tarball - wget lolcathost.org/b/varinclude.tar.gz + wget lolcathost.org/b/varinclude.tar.gz tar xzvf varinclude.tar.gz -C / Compilation @@ -57,30 +57,30 @@ Compilation Usage ----- - export R2DIR=/private/var/rizin - export PATH=${R2DIR}/bin:$PATH - export DYLD_LIBRARY_PATH=${R2DIR}/lib - r2 ... + export RZDIR=/private/var/rizin + export PATH=${RZDIR}/bin:$PATH + export DYLD_LIBRARY_PATH=${RZDIR}/lib + rizin ... Building with the ARMv7 SDK --------------------------- From coolstar repo we get the ios toolchain apt-get coreutils install wget inetutils - apt-get install basename git make expat + apt-get install basename git make expat apt-get install org.coolstar.iostoolchain * Copy crt1.o and dylib1.o from your iOS SDK into /usr/lib /Applications//Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk/ -* Current r2 build requires 'gcc' as native compiler to +* Current rizin build requires 'gcc' as native compiler to build a standalone 'sdb' to precompile some files. This dependency will be probably cd /usr/bin ln -fs clang gcc - + Build ----- export CC=clang @@ -94,17 +94,17 @@ Packaging --------- Make a fake install in a temporary directory: - rm -rf /tmp/r2 - make install DESTDIR=/tmp/r2 - cd /tmp/r2 - tar czvpf ../r2.tgz * + rm -rf /tmp/rizin + make install DESTDIR=/tmp/rizin + cd /tmp/rizin + tar czvpf ../rizin.tgz * Clone the cydia repo from rizin's github git clone https://github.com/rizin/cydia cd cydia/rizin* mkdir root - tar xzvf r2.tgz -C root + tar xzvf rizin.tgz -C root vim CONFIG # bump version make diff --git a/doc/macos.md b/doc/macos.md index cf54953520..34211d9348 100644 --- a/doc/macos.md +++ b/doc/macos.md @@ -14,14 +14,10 @@ By default it is installed in /usr/local, you can specify a different prefix lik $ sys/install.sh /custom/prefix -To install bindings you will need to install r2, valac, valabind and swig. The whole process can be automated by using scripts under sys/ - - $ rz_pm -s python - Code Signing ------------ -After Mac OS X 10.6, binaries that need permissions to debug require to be signed and include a .plist describing them. The aforementioned `install.sh` script will install a new code signing certificate into the system keychain and sign r2 with it. Alternatively, you can manually create a code signing certificate by following the following steps: +After Mac OS X 10.6, binaries that need permissions to debug require to be signed and include a .plist describing them. The aforementioned `install.sh` script will install a new code signing certificate into the system keychain and sign rizin with it. Alternatively, you can manually create a code signing certificate by following the following steps: (Based on https://llvm.org/svn/llvm-project/lldb/trunk/docs/code-signing.txt) @@ -52,11 +48,11 @@ As said before, the signing process can also be done manually following the next $ make -C binrz/rizin macossign -But this is not enough. As long as r2 code is split into several libraries, you should sign every single dependency (librz*). +But this is not enough. As long as rizin code is split into several libraries, you should sign every single dependency (librz*). $ make -C binrz/rizin macos-sign-libs -Another alternative is to build a static version of r2 and just sign it. +Another alternative is to build a static version of rizin and just sign it. $ sys/static.sh $ make -C binrz/rizin macossign @@ -71,7 +67,7 @@ Additionally, you can run the following command to add the non-privileged user ( After doing it you should be able to debug on macOS without root permissions! - $ r2 -d mybin + $ rizin -d mybin Note: Apple-signed binaries cannot be debugged, since Apple's SIP (System Integrity Protection) prevents attaching to an Apple-signed binary. If you want to debug an Apple-signed binary, either remove its certificate (https://github.com/steakknife/unsign; WARNING: this cannot be reversed!) or disable SIP (`csrutil enable --without debug`). @@ -87,7 +83,7 @@ To create a macOS .pkg just run the following command: Uninstall --------- -To uninstall the .pkg downloaded from the r2 website or the one you have generated with `sys/osx-pkg.sh`, run the following as root: +To uninstall the .pkg downloaded from the rizin website or the one you have generated with `sys/osx-pkg.sh`, run the following as root: $ pkgutil --only-files --files org.rizin.rizin | sed 's/^/\//' | tr '\n' '\0' | xargs -o -n 1 -0 rm -i diff --git a/librz/core/cfile.c b/librz/core/cfile.c index 6be79db98e..d2df6acdbd 100644 --- a/librz/core/cfile.c +++ b/librz/core/cfile.c @@ -219,11 +219,11 @@ RZ_API void rz_core_sysenv_end(RzCore *core, const char *cmd) { rz_sys_setenv ("RZ_OFFSET", NULL); // remove temporary RZ_CONFIG file - char *r2_config = rz_sys_getenv ("RZ_CONFIG"); - if (r2_config) { - rz_file_rm (r2_config); + char *rz_config = rz_sys_getenv ("RZ_CONFIG"); + if (rz_config) { + rz_file_rm (rz_config); rz_sys_setenv ("RZ_CONFIG", NULL); - free (r2_config); + free (rz_config); } } diff --git a/librz/core/cmd_anal.c b/librz/core/cmd_anal.c index 7c1ef6f11e..be56f88f64 100644 --- a/librz/core/cmd_anal.c +++ b/librz/core/cmd_anal.c @@ -8359,12 +8359,12 @@ end: return result; } -static bool convert_dotcmd_to_image(RzCore *core, char *r2_cmd, const char *save_path) { +static bool convert_dotcmd_to_image(RzCore *core, char *rz_cmd, const char *save_path) { if (save_path && *save_path) { rz_cons_printf ("Saving to file '%s'...\n", save_path); rz_cons_flush (); } - rz_core_cmdf (core, "%s > a.dot", r2_cmd); // TODO: check error here + rz_core_cmdf (core, "%s > a.dot", rz_cmd); // TODO: check error here return convert_dot_to_image (core, "a.dot", save_path); } diff --git a/librz/include/rz_socket.h b/librz/include/rz_socket.h index 9dad40de4c..2f7df84be1 100644 --- a/librz/include/rz_socket.h +++ b/librz/include/rz_socket.h @@ -55,7 +55,7 @@ typedef struct { int output[2]; #endif RzCoreBind coreb; -} R2Pipe; +} RzPipe; typedef struct rz_socket_t { #ifdef _MSC_VER @@ -261,24 +261,24 @@ RZ_API bool rz_run_parsefile(RRunProfile *p, const char *b); RZ_API char *rz_run_get_environ_profile(char **env); /* rapipe */ -RZ_API R2Pipe *rap_open(const char *cmd); -RZ_API R2Pipe *rap_open_corebind(RzCoreBind *coreb); -RZ_API int rap_close(R2Pipe *rap); +RZ_API RzPipe *rap_open(const char *cmd); +RZ_API RzPipe *rap_open_corebind(RzCoreBind *coreb); +RZ_API int rap_close(RzPipe *rap); -RZ_API char *rap_cmd(R2Pipe *rap, const char *str); -RZ_API char *rap_cmdf(R2Pipe *rap, const char *fmt, ...) RZ_PRINTF_CHECK(2, 3); +RZ_API char *rap_cmd(RzPipe *rap, const char *str); +RZ_API char *rap_cmdf(RzPipe *rap, const char *fmt, ...) RZ_PRINTF_CHECK(2, 3); -RZ_API int rap_write(R2Pipe *rap, const char *str); -RZ_API char *rap_read(R2Pipe *rap); +RZ_API int rap_write(RzPipe *rap, const char *str); +RZ_API char *rap_read(RzPipe *rap); -RZ_API int rzpipe_write(R2Pipe *rzpipe, const char *str); -RZ_API char *rzpipe_read(R2Pipe *rzpipe); -RZ_API int rzpipe_close(R2Pipe *rzpipe); -RZ_API R2Pipe *rzpipe_open_corebind(RzCoreBind *coreb); -RZ_API R2Pipe *rzpipe_open(const char *cmd); -RZ_API R2Pipe *rzpipe_open_dl(const char *file); -RZ_API char *rzpipe_cmd(R2Pipe *rzpipe, const char *str); -RZ_API char *rzpipe_cmdf(R2Pipe *rzpipe, const char *fmt, ...) RZ_PRINTF_CHECK(2, 3); +RZ_API int rzpipe_write(RzPipe *rzpipe, const char *str); +RZ_API char *rzpipe_read(RzPipe *rzpipe); +RZ_API int rzpipe_close(RzPipe *rzpipe); +RZ_API RzPipe *rzpipe_open_corebind(RzCoreBind *coreb); +RZ_API RzPipe *rzpipe_open(const char *cmd); +RZ_API RzPipe *rzpipe_open_dl(const char *file); +RZ_API char *rzpipe_cmd(RzPipe *rzpipe, const char *str); +RZ_API char *rzpipe_cmdf(RzPipe *rzpipe, const char *fmt, ...) RZ_PRINTF_CHECK(2, 3); #endif #ifdef __cplusplus diff --git a/librz/include/sflib/darwin-arm-64/ios-syscalls.py b/librz/include/sflib/darwin-arm-64/ios-syscalls.py index 01b5accb7f..9baf33ac1c 100644 --- a/librz/include/sflib/darwin-arm-64/ios-syscalls.py +++ b/librz/include/sflib/darwin-arm-64/ios-syscalls.py @@ -1,23 +1,25 @@ import rzpipe import json + def chk(x): - if x[1]['opcode'] == 'svc 0x80': - name = x[0]['flags'][0][8:] - sysnum = int(x[0]['opcode'].split(' ')[2], 16) - print ("%d\t%s"%(sysnum, name)) - + if x[1]["opcode"] == "svc 0x80": + name = x[0]["flags"][0][8:] + sysnum = int(x[0]["opcode"].split(" ")[2], 16) + print("%d\t%s" % (sysnum, name)) + + dev_pid = "23f88587e12c30376f8ab0b05236798fdfa4e853/4903" -r2 = rzpipe.open("frida://" + dev_pid) +rz = rzpipe.open("frida://" + dev_pid) print("Importing symbols from libSystem...") -r2.cmd(".=!i*") -r2.cmd(".=!ie* libSystem.B.dylib") +rz.cmd(".=!i*") +rz.cmd(".=!ie* libSystem.B.dylib") print("Finding syscalls...") -funcs = r2.cmd("pdj 2 @@ sym.fun.*") +funcs = rz.cmd("pdj 2 @@ sym.fun.*") -for doc in funcs.split('\n'): - if len(doc) > 1: - chk(json.loads(doc)) -r2.quit() +for doc in funcs.split("\n"): + if len(doc) > 1: + chk(json.loads(doc)) +rz.quit() print("Thanks for waiting") diff --git a/librz/io/p/io_rzpipe.c b/librz/io/p/io_rzpipe.c index 14d31ca32e..b008ce76ff 100644 --- a/librz/io/p/io_rzpipe.c +++ b/librz/io/p/io_rzpipe.c @@ -8,7 +8,7 @@ #include /* --------------------------------------------------------- */ -#define R2P(x) ((R2Pipe*)(x)->data) +#define RZP(x) ((RzPipe*)(x)->data) // TODO: add rzpipe_assert @@ -34,12 +34,12 @@ static int __write(RzIO *io, RzIODesc *fd, const ut8 *buf, int count) { eprintf ("rzpipe_write: error, fmt string has been truncated\n"); return -1; } - rv = rzpipe_write (R2P (fd), fmt); + rv = rzpipe_write (RZP (fd), fmt); if (rv < 1) { eprintf ("rzpipe_write: error\n"); return -1; } - res = rzpipe_read (R2P (fd)); + res = rzpipe_read (RZP (fd)); /* TODO: parse json back */ r = strstr (res, "result"); if (r) { @@ -63,12 +63,12 @@ static int __read(RzIO *io, RzIODesc *fd, ut8 *buf, int count) { snprintf (fmt, sizeof (fmt), "{\"op\":\"read\",\"address\":%"PFMT64d",\"count\":%d}", io->off, count); - rv = rzpipe_write (R2P (fd), fmt); + rv = rzpipe_write (RZP (fd), fmt); if (rv < 1) { eprintf ("rzpipe_write: error\n"); return -1; } - res = rzpipe_read (R2P (fd)); + res = rzpipe_read (RZP (fd)); /* TODO: parse json back */ r = strstr (res, "result"); @@ -143,12 +143,12 @@ static bool __check(RzIO *io, const char *pathname, bool many) { } static RzIODesc *__open(RzIO *io, const char *pathname, int rw, int mode) { - R2Pipe *r2p = NULL; + RzPipe *rzp = NULL; if (__check (io, pathname, 0)) { - r2p = rzpipe_open (pathname + 9); + rzp = rzpipe_open (pathname + 9); } - return r2p? rz_io_desc_new (io, &rz_io_plugin_rzpipe, - pathname, rw, mode, r2p): NULL; + return rzp? rz_io_desc_new (io, &rz_io_plugin_rzpipe, + pathname, rw, mode, rzp): NULL; } static char *__system(RzIO *io, RzIODesc *fd, const char *msg) { @@ -159,13 +159,13 @@ static char *__system(RzIO *io, RzIODesc *fd, const char *msg) { pj_ks (pj, "cmd", msg); pj_end (pj); const char *fmt = pj_string (pj); - int rv = rzpipe_write (R2P (fd), fmt); + int rv = rzpipe_write (RZP (fd), fmt); pj_free (pj); if (rv < 1) { eprintf ("rzpipe_write: error\n"); return NULL; } - char *res = rzpipe_read (R2P (fd)); + char *res = rzpipe_read (RZP (fd)); //eprintf ("%s\n", res); /* TODO: parse json back */ char *r = strstr (res, "result"); diff --git a/librz/io/p/io_w32dbg.c b/librz/io/p/io_w32dbg.c index ef9dcec171..fbee5507a7 100644 --- a/librz/io/p/io_w32dbg.c +++ b/librz/io/p/io_w32dbg.c @@ -96,7 +96,7 @@ static bool __plugin_open(RzIO *io, const char *file, bool many) { } // mingw32 toolchain doesnt have this symbol -static HANDLE (WINAPI *r2_OpenThread)( +static HANDLE (WINAPI *rz_OpenThread)( DWORD dwDesiredAccess, BOOL bInheritHandle, DWORD dwThreadId @@ -119,9 +119,9 @@ static int __w32_first_thread(int pid) { do { /* get all threads of process */ if (te32.th32OwnerProcessID == pid) { - r2_OpenThread = OpenThread; - thid = r2_OpenThread - ? r2_OpenThread (THREAD_ALL_ACCESS, 0, te32.th32ThreadID) : NULL; + rz_OpenThread = OpenThread; + thid = rz_OpenThread + ? rz_OpenThread (THREAD_ALL_ACCESS, 0, te32.th32ThreadID) : NULL; if (!thid) { rz_sys_perror ("__w32_first_thread/OpenThread"); goto err_first_th; @@ -152,7 +152,7 @@ static int __open_proc(RzIO *io, int pid, bool attach) { W32DbgWInst *wrap = (W32DbgWInst *)io->w32dbg_wrap; wrap->pi.dwProcessId = pid; if (attach) { - /* Attach to the process */ + /* Attach to the process */ wrap->params.type = W32_ATTACH; w32dbg_wrap_wait_ret (wrap); if (!w32dbgw_ret (wrap)) { diff --git a/librz/lang/p/cpipe.c b/librz/lang/p/cpipe.c index ca80565fe2..c1b2ab278f 100644 --- a/librz/lang/p/cpipe.c +++ b/librz/lang/p/cpipe.c @@ -80,7 +80,7 @@ static int lang_cpipe_run(RzLang *lang, const char *code, int len) { fputs ("#include \n\n" "#define R2P(x,y...) rzpipe_cmdf(r2p,x,##y)\n" "int main() {\n" - " R2Pipe *r2p = rzpipe_open(NULL);", fd); + " RzPipe *r2p = rzpipe_open(NULL);", fd); fputs (code, fd); fputs ("\n}\n", fd); fclose (fd); diff --git a/librz/lang/p/pipe-node.js b/librz/lang/p/pipe-node.js index a168948b7d..5572de8216 100644 --- a/librz/lang/p/pipe-node.js +++ b/librz/lang/p/pipe-node.js @@ -1,5 +1,5 @@ #!/usr/bin/node -// $ r2 -qc '#!pipe node pipe-node.js' - +// $ rizin -qc '#!pipe node pipe-node.js' - var isMain = process.argv[1] == __filename; @@ -9,17 +9,17 @@ function langPipe () { var IN = +process.env.RZ_PIPE_IN; var OUT = +process.env.RZ_PIPE_OUT; - var r2io = { + var rzio = { r: fs.createReadStream (null, {fd: IN}), w: fs.createWriteStream (null, {fd: OUT}) }; var replies = []; - r2io.cmd = function(cmd, cb) { + rzio.cmd = function(cmd, cb) { replies.push (cb); - r2io.w.write (cmd); + rzio.w.write (cmd); } - r2io.r.on ('data', function (foo) { + rzio.r.on ('data', function (foo) { if (replies.length>0) { var cb = replies[0]; replies = replies.slice(1); @@ -27,9 +27,9 @@ function langPipe () { } }); - r2io.repl = function () { - /* r2 repl implemented in pipe-node.js */ - r2io.r.pipe (process.stdout); + rzio.repl = function () { + /* rizin repl implemented in pipe-node.js */ + rzio.r.pipe (process.stdout); process.stdin.on ('data', function (chunk) { if (replies.length>0) { var cb = replies[0]; @@ -37,10 +37,10 @@ function langPipe () { var cb = replies.pop (); if (cb) cb (''+chunk); } - r2io.w.write (chunk); + rzio.w.write (chunk); }); } - return r2io; + return rzio; } // Example: diff --git a/librz/lang/p/zig.c b/librz/lang/p/zig.c index eb3fbbf64a..36d90b147b 100644 --- a/librz/lang/p/zig.c +++ b/librz/lang/p/zig.c @@ -85,7 +85,7 @@ static int lang_zig_run(RzLang *lang, const char *code, int len) { "export fn entry(core: &u8) void {\n"; const char *zig_footer = \ "\n}\n" \ -"pub fn r2cmd(core: &u8, cmd: u8) &u8 {\n" \ +"pub fn rzcmd(core: &u8, cmd: u8) &u8 {\n" \ " return rz_core_cmd_str(core, cmd);\n" \ "}\n"; fputs (zig_header, fd); diff --git a/librz/socket/run.c b/librz/socket/run.c index 6be3bc1f4d..d4b57b3661 100644 --- a/librz/socket/run.c +++ b/librz/socket/run.c @@ -544,9 +544,9 @@ RZ_API bool rz_run_parseline(RRunProfile *p, const char *b) { p->_libpath = strdup (e); } else if (!strcmp (b, "preload")) { p->_preload = strdup (e); - } else if (!strcmp (b, "r2preload")) { + } else if (!strcmp (b, "rzpreload")) { p->_rzpreload = parseBool (e); - } else if (!strcmp (b, "r2preweb")) { + } else if (!strcmp (b, "rzpreweb")) { rz_sys_setenv ("RZ_RUN_WEB", "yes"); } else if (!strcmp (b, "setuid")) { p->_setuid = strdup (e); @@ -661,7 +661,7 @@ RZ_API const char *rz_run_help(void) { "# chdir=/\n" "# chroot=/mnt/chroot\n" "# libpath=$PWD:/tmp/lib\n" - "# r2preload=yes\n" + "# rzpreload=yes\n" "# preload=/lib/libfoo.so\n" "# setuid=2000\n" "# seteuid=2000\n" diff --git a/librz/socket/rzpipe.c b/librz/socket/rzpipe.c index d2359ad5bf..34ad1906c5 100644 --- a/librz/socket/rzpipe.c +++ b/librz/socket/rzpipe.c @@ -20,9 +20,9 @@ Usage Example: #include #include -#define R2P_PID(x) (((R2Pipe*)(x)->data)->pid) -#define R2P_INPUT(x) (((R2Pipe*)(x)->data)->input[0]) -#define R2P_OUTPUT(x) (((R2Pipe*)(x)->data)->output[1]) +#define RZP_PID(x) (((RzPipe*)(x)->data)->pid) +#define RZP_INPUT(x) (((RzPipe*)(x)->data)->input[0]) +#define RZP_OUTPUT(x) (((RzPipe*)(x)->data)->output[1]) #if !__WINDOWS__ static void env(const char *s, int f) { @@ -32,7 +32,7 @@ static void env(const char *s, int f) { } #endif -RZ_API int rzpipe_write(R2Pipe *rzpipe, const char *str) { +RZ_API int rzpipe_write(RzPipe *rzpipe, const char *str) { char *cmd; int ret, len; if (!rzpipe || !str) { @@ -57,7 +57,7 @@ RZ_API int rzpipe_write(R2Pipe *rzpipe, const char *str) { } /* TODO: add timeout here ? */ -RZ_API char *rzpipe_read(R2Pipe *rzpipe) { +RZ_API char *rzpipe_read(RzPipe *rzpipe) { int bufsz = 0; char *buf = NULL; if (!rzpipe) { @@ -106,7 +106,7 @@ RZ_API char *rzpipe_read(R2Pipe *rzpipe) { return buf; } -RZ_API int rzpipe_close(R2Pipe *rzpipe) { +RZ_API int rzpipe_close(RzPipe *rzpipe) { if (!rzpipe) { return 0; } @@ -151,7 +151,7 @@ RZ_API int rzpipe_close(R2Pipe *rzpipe) { } #if __WINDOWS__ -static int w32_createPipe(R2Pipe *rzpipe, const char *cmd) { +static int w32_createPipe(RzPipe *rzpipe, const char *cmd) { CHAR buf[1024]; rzpipe->pipe = CreateNamedPipe (TEXT ("\\\\.\\pipe\\RZ_PIPE_IN"), PIPE_ACCESS_DUPLEX,PIPE_TYPE_MESSAGE | \ @@ -167,8 +167,8 @@ static int w32_createPipe(R2Pipe *rzpipe, const char *cmd) { } #endif -static R2Pipe* r2p_open_spawn(R2Pipe* r2p, const char *cmd) { - rz_return_val_if_fail (r2p, NULL); +static RzPipe* rzp_open_spawn(RzPipe* rzp, const char *cmd) { + rz_return_val_if_fail (rzp, NULL); #if __UNIX__ || defined(__CYGWIN__) char *out = rz_sys_getenv ("RZ_PIPE_IN"); char *in = rz_sys_getenv ("RZ_PIPE_OUT"); @@ -177,26 +177,26 @@ static R2Pipe* r2p_open_spawn(R2Pipe* r2p, const char *cmd) { int i_in = atoi (in); int i_out = atoi (out); if (i_in >= 0 && i_out >= 0) { - r2p->input[0] = r2p->input[1] = i_in; - r2p->output[0] = r2p->output[1] = i_out; + rzp->input[0] = rzp->input[1] = i_in; + rzp->output[0] = rzp->output[1] = i_out; done = true; } } if (!done) { eprintf ("Cannot find RZ_PIPE_IN or RZ_PIPE_OUT environment\n"); - RZ_FREE (r2p); + RZ_FREE (rzp); } free (in); free (out); - return r2p; + return rzp; #else eprintf ("rzpipe_open(NULL) not supported on windows\n"); return NULL; #endif } -static R2Pipe *rzpipe_new(void) { - R2Pipe *rzpipe = RZ_NEW0 (R2Pipe); +static RzPipe *rzpipe_new(void) { + RzPipe *rzpipe = RZ_NEW0 (RzPipe); if (rzpipe) { #if __UNIX__ rzpipe->input[0] = rzpipe->input[1] = -1; @@ -207,21 +207,21 @@ static R2Pipe *rzpipe_new(void) { return rzpipe; } -RZ_API R2Pipe *rzpipe_open_corebind(RzCoreBind *coreb) { - R2Pipe *rzpipe = rzpipe_new (); +RZ_API RzPipe *rzpipe_open_corebind(RzCoreBind *coreb) { + RzPipe *rzpipe = rzpipe_new (); if (rzpipe) { memcpy (&rzpipe->coreb, coreb, sizeof (RzCoreBind)); } return rzpipe; } -RZ_API R2Pipe *rzpipe_open_dl(const char *libr_path) { +RZ_API RzPipe *rzpipe_open_dl(const char *libr_path) { void *librz = rz_lib_dl_open (libr_path); void* (*rnew)() = rz_lib_dl_sym (librz, "rz_core_new"); char* (*rcmd)(void *c, const char *cmd) = rz_lib_dl_sym (librz, "rz_core_cmd_str"); if (rnew && rcmd) { - R2Pipe *rzpipe = rzpipe_new (); + RzPipe *rzpipe = rzpipe_new (); if (rzpipe) { rzpipe->coreb.core = rnew (); rzpipe->coreb.cmdstr = rcmd; @@ -233,101 +233,101 @@ RZ_API R2Pipe *rzpipe_open_dl(const char *libr_path) { return NULL; } -RZ_API R2Pipe *rzpipe_open(const char *cmd) { - R2Pipe *r2p = rzpipe_new (); - if (!r2p) { +RZ_API RzPipe *rzpipe_open(const char *cmd) { + RzPipe *rzp = rzpipe_new (); + if (!rzp) { return NULL; } if (RZ_STR_ISEMPTY (cmd)) { - r2p->child = -1; - return r2p_open_spawn (r2p, cmd); + rzp->child = -1; + return rzp_open_spawn (rzp, cmd); } #if __WINDOWS__ - w32_createPipe (r2p, cmd); - r2p->child = (int)(r2p->pipe); + w32_createPipe (rzp, cmd); + rzp->child = (int)(rzp->pipe); #else - int r = pipe (r2p->input); + int r = pipe (rzp->input); if (r != 0) { eprintf ("pipe failed on input\n"); - rzpipe_close (r2p); + rzpipe_close (rzp); return NULL; } - r = pipe (r2p->output); + r = pipe (rzp->output); if (r != 0) { eprintf ("pipe failed on output\n"); - rzpipe_close (r2p); + rzpipe_close (rzp); return NULL; } #if LIBC_HAVE_FORK - r2p->child = fork (); + rzp->child = fork (); #else - r2p->child = -1; + rzp->child = -1; #endif - if (r2p->child == -1) { - rzpipe_close (r2p); + if (rzp->child == -1) { + rzpipe_close (rzp); return NULL; } - env ("RZ_PIPE_IN", r2p->input[0]); - env ("RZ_PIPE_OUT", r2p->output[1]); + env ("RZ_PIPE_IN", rzp->input[0]); + env ("RZ_PIPE_OUT", rzp->output[1]); - if (r2p->child) { + if (rzp->child) { signed char ch = -1; // eprintf ("[+] rzpipeipe child is %d\n", rzpipe->child); - if (read (r2p->output[0], &ch, 1) != 1) { + if (read (rzp->output[0], &ch, 1) != 1) { eprintf ("Failed to read 1 byte\n"); - rzpipe_close (r2p); + rzpipe_close (rzp); return NULL; } if (ch == -1) { eprintf ("[+] rzpipe link error.\n"); - rzpipe_close (r2p); + rzpipe_close (rzp); return NULL; } // Close parent's end of pipes - close (r2p->input[0]); - close (r2p->output[1]); - r2p->input[0] = -1; - r2p->output[1] = -1; + close (rzp->input[0]); + close (rzp->output[1]); + rzp->input[0] = -1; + rzp->output[1] = -1; } else { int rc = 0; if (cmd && *cmd) { close (0); close (1); - dup2 (r2p->input[0], 0); - dup2 (r2p->output[1], 1); - close (r2p->input[1]); - close (r2p->output[0]); - r2p->input[1] = -1; - r2p->output[0] = -1; + dup2 (rzp->input[0], 0); + dup2 (rzp->output[1], 1); + close (rzp->input[1]); + close (rzp->output[0]); + rzp->input[1] = -1; + rzp->output[0] = -1; rc = rz_sandbox_system (cmd, 1); if (rc != 0) { eprintf ("return code %d for %s\n", rc, cmd); } // trigger the blocking read write (1, "\xff", 1); - close (r2p->output[1]); + close (rzp->output[1]); close (0); close (1); } - r2p->child = -1; - rzpipe_close (r2p); + rzp->child = -1; + rzpipe_close (rzp); exit (rc); return NULL; } #endif - return r2p; + return rzp; } -RZ_API char *rzpipe_cmd(R2Pipe *r2p, const char *str) { - rz_return_val_if_fail (r2p && str, NULL); - if (!*str || !rzpipe_write (r2p, str)) { +RZ_API char *rzpipe_cmd(RzPipe *rzp, const char *str) { + rz_return_val_if_fail (rzp && str, NULL); + if (!*str || !rzpipe_write (rzp, str)) { perror ("rzpipe_write"); return NULL; } - return rzpipe_read (r2p); + return rzpipe_read (rzp); } -RZ_API char *rzpipe_cmdf(R2Pipe *r2p, const char *fmt, ...) { +RZ_API char *rzpipe_cmdf(RzPipe *rzp, const char *fmt, ...) { int ret, ret2; char *p, string[1024]; va_list ap, ap2; @@ -348,10 +348,10 @@ RZ_API char *rzpipe_cmdf(R2Pipe *r2p, const char *fmt, ...) { va_end (ap); return NULL; } - fmt = rzpipe_cmd (r2p, p); + fmt = rzpipe_cmd (rzp, p); free (p); } else { - fmt = rzpipe_cmd (r2p, string); + fmt = rzpipe_cmd (rzp, string); } va_end (ap2); va_end (ap); diff --git a/man/rz-gg.1 b/man/rz-gg.1 index 7563c26b00..a22b2340af 100644 --- a/man/rz-gg.1 +++ b/man/rz-gg.1 @@ -35,7 +35,7 @@ Programs generated by r_egg are relocatable and can be injected in a running pro Since the rz-gg-cc merge, rz-gg can now generate shellcodes from C code. The final code can be linked with rz-bin and it is relocatable, so it can be used to inject it on any remote process. This feature is conceptually based on shellforge4, but only linux/osx x86-32/64 platforms are supported. .Sh DIRECTIVES .Pp -The rr2 (rz-gg) configuration file accepts the following directives, described as key=value entries and comments defined as lines starting with '#'. +The rrz (rz-gg) configuration file accepts the following directives, described as key=value entries and comments defined as lines starting with '#'. .Bl -tag -width Fl .It Fl a Ar arch set architecture x86, arm diff --git a/man/rz-run.1 b/man/rz-run.1 index 211de8e97b..5091cdef5a 100644 --- a/man/rz-run.1 +++ b/man/rz-run.1 @@ -68,10 +68,10 @@ use execve instead of posix_spawn (osx tricks) path to the library to be executed .It Ar runlib.fcn function name to call from runlib library -.It Ar r2preload -preload with librz, kill -USR1 to get an rizin shell or -USR2 to spawn a webserver in a thread -.It Ar r2preweb -run the webserver in a thread just at starting the r2preload +.It Ar rzpreload +preload with librz, kill -USR1 to get an rizin shell or -USRZ to spawn a webserver in a thread +.It Ar rzpreweb +run the webserver in a thread just at starting the rzpreload .It Ar setenv set value for given environment variable .It Ar setegid diff --git a/man/rz-test.1 b/man/rz-test.1 index 5b0bbce566..38bcd42333 100644 --- a/man/rz-test.1 +++ b/man/rz-test.1 @@ -11,7 +11,7 @@ .Op Fl v .Op Fl V .Op Fl j Ar threads -.Op Fl r Ar r2-path +.Op Fl r Ar rz-path .Op Fl m Ar rz-asm-pth .Op Fl f Ar bin-for-json-tests .Op Fl C Ar chdir @@ -36,7 +36,7 @@ Show version number Be verbose .It Fl j Ar threads Specify the number of tasks to run in parallel -.It Fl r Ar r2-path +.It Fl r Ar rz-path Set path to rizin executable .It Fl n Ar rz-asm-path Set path to rz-asmexecutable diff --git a/sys/docker_build_alpine_image.sh b/sys/docker_build_alpine_image.sh deleted file mode 100755 index 7d13eaf413..0000000000 --- a/sys/docker_build_alpine_image.sh +++ /dev/null @@ -1,330 +0,0 @@ -#!/bin/sh -# r2docker -# ======== -# -# Requires ~140MB of free disk space -# -# Build docker image with: -# $ ./sys/docker_build_alpine_image.sh -# -# Run the docker image: -# -# $ r2d() { -# local rm -# case "$1" in -# "-r"|"--rm") rm="--rm" && shift ;; -# esac -# docker run --cap-drop=ALL --cap-add=SYS_PTRACE -i \ -# `--name r2_$(date +%F_%H%M%S%N) $rm -tv $(pwd):/r2 \ -# r2_alpine:latest $@ -# } -# $ r2d # Optional --rm -# -# Once you quit the session, get the container id with something like: -# -# $ containerid="$(docker ps -a | awk '/r2_alpine/ {print $NF}')" -# -# To get into that shell again just type: -# -# $ docker start -ai $containerid -# -# To share those images: -# -# $ docker export $containerid | xz >container.tar.xz -# $ xz -d $tmp_docker_dir/Dockerfile <>/root/.bashrc && \ - echo "alias ll=\"\\ls -Fhl\"" >>/root/.bashrc && \ - echo "alias ls=\"\\ls -F\"" >>/root/.bashrc && \ - echo "alias q=\"exit\"" >>/root/.bashrc \ - ) \ - ) && ( \ - [ "$gname" == "root" ] || \ - ( \ - groupadd -f $gname && \ - (groupmod -g $gid $gname 2>/dev/null || true) && \ - useradd -g $gid -mou $uid $uname && \ - echo "$uname ALL=(ALL) NOPASSWD: ALL" \ - >/etc/sudoers.d/$uname && \ - echo "alias la=\"\\ls -AF\"" >>/home/$uname/.bashrc && \ - echo "alias ll=\"\\ls -Fhl\"" >>/home/$uname/.bashrc && \ - echo "alias ls=\"\\ls -F\"" >>/home/$uname/.bashrc && \ - echo "alias q=\"exit\"" >>/home/$uname/.bashrc \ - ) \ - ) && ( \ - cd /mnt && \ - git clone -b $r2branch --depth 1 $github && \ - cd rizin && \ - git checkout $r2commit && \ - ./sys/install.sh && \ - make install \ - ) && ( \ - apk del --purge -r \ - g++ \ - gcc \ - linux-headers \ - make \ - npm \ - py2-pip && \ - rm -rf /tmp/* /var/cache/apk/* /var/tmp/* \ - ) - -# Initialize env -USER $(id -nu) -WORKDIR /r2 - -# Setup rz-pm -RUN set -o pipefail && \ - rz-pm init && \ - rz-pm update - -CMD ["/bin/bash"] -EOF - -# Tag old images -echo "[*] Tagging any old r2_alpine images" -docker images | awk '{print $1":"$3}' | while read -r tag; do - case "$tag" in - "r2_alpine:"*) docker image tag "${tag#*:}" "$tag" ;; - esac -done -unset tag - -findbase="$( - docker images | grep -E "^(docker\.io\/)?alpine +latest " -)" - -# Build image (may take a while) -echo "[*] Building image..." -echo "[*] This may take a long time..." - -# Pull newest base image and build r2_alpine image -docker pull alpine:latest -( - if [ ! -d "$tmp_docker_dir" ]; then - echo "$tmp_docker_dir not found" - fi - cd $tmp_docker_dir || exit 3 - # shellcheck disable=SC2154 - docker build \ - ${http_proxy:+--build-arg http_proxy=$http_proxy} \ - ${https_proxy:+--build-arg https_proxy=$https_proxy} \ - -t r2_alpine:latest . -) - -# Only remove base image if it didn't already exist -[ -n "$findbase" ] || docker rmi alpine:latest - -echo "[*] done" - -old_base="^(docker\.io\/)?alpine +" -old_rz="^r2_alpine +[^l ]" -found="$( - docker images | grep -E "($old_base)|($old_rz)" -)" -if [ -n "$found" ]; then - # List old images - echo - echo "[*] Old images:" - docker images | head -n 1 - - docker images | grep -E "($old_base)|($old_rz)" | \ - while read -r line; do - echo "$line" - done - unset line - - # Prompt to remove old images - unset remove - echo - while :; do - echo "Remove old images (y/N/q)?" - read -r ans - echo - case "$ans" in - ""|"n"|"N"|"q"|"Q") break ;; - "y"|"Y") remove="true"; break ;; - *) echo "Invalid choice" ;; - esac - done - - if [ -n "$remove" ]; then - # Remove old images - docker images | awk "/$old_rz/ {print \$1\":\"\$3}" | \ - while read -r tag; do - docker rmi "$tag" - done - unset tag - - docker images | awk "/$old_base/ {print \$3}" | \ - while read -r id; do - docker rmi "$id" - done - unset id - fi -fi -unset found - -cleanup 0 - -cat <