本文整理汇总了C++中r_core_cmd_help函数的典型用法代码示例。如果您正苦于以下问题:C++ r_core_cmd_help函数的具体用法?C++ r_core_cmd_help怎么用?C++ r_core_cmd_help使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了r_core_cmd_help函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: r_comment_var_help
void r_comment_var_help(RCore *core, char type) {
const char *help_bp[] = {
"Usage:", "Cvb", "[name] [comment]",
"Cvb?", "", "show this help",
"Cvb", "", "list all base pointer args/vars comments in human friendly format",
"Cvb*", "", "list all base pointer args/vars comments in r2 format",
"Cvb-", "[name]", "delete comments for var/arg at current offset for base pointer",
"Cvb", " [name]", "Show comments for var/arg at current offset for base pointer",
"Cvb", " [name] [comment]", "add/append comment for the variable with the current name",
"Cvb!", "[name]", "edit comment using cfg editor",
NULL
};
const char *help_sp[] = {
"Usage:", "Cvs", "[name] [comment]",
"Cvs?", "", "show this help",
"Cvs", "", "list all stack based args/vars comments in human friendly format",
"Cvs*", "", "list all stack based args/vars comments in r2 format",
"Cvs-", "[name]", "delete comments for stack pointer var/arg with that name",
"Cvs", "[name]", "Show comments for stack pointer var/arg with that name",
"Cvs", "[name] [comment]", "add/append comment for the variable",
"Cvs!", "[name]", "edit comment using cfg editor",
NULL
};
const char *help_reg[] = {
"Usage:", "Cvr", "[name] [comment]",
"Cvr?", "", "show this help",
"Cvr", "", "list all register based args comments in human friendly format",
"Cvr*", "", "list all register based args comments in r2 format",
"Cvr-", "[name]", "delete comments for register based arg for that name",
"Cvr", "[name]", "Show comments for register based arg for that name",
"Cvr", "[name] [comment]", "add/append comment for the variable",
"Cvr!", "[name]", "edit comment using cfg editor",
NULL
};
switch (type) {
case 'b':
r_core_cmd_help (core, help_bp);
break;
case 's':
r_core_cmd_help (core, help_sp);
break;
case 'r':
r_core_cmd_help (core, help_reg);
break;
default:
r_cons_printf("See Cvb, Cvs and Cvr\n");
}
}
示例2: cmd_type_noreturn
static void cmd_type_noreturn(RCore *core, const char *input) {
const char *help_msg[] = {
"Usage:", "tn [-][0xaddr|symname]", " manage no-return marks",
"tn[a]", " 0x3000", "stop function analysis if call/jmp to this address",
"tn[n]", " sym.imp.exit", "same as above but for flag/fcn names",
"tn", "-*", "remove all no-return references",
"tn", "", "list them all",
NULL };
switch (input[0]) {
case '-': // "tn-"
r_anal_noreturn_drop (core->anal, input + 1);
break;
case ' ': // "tn"
if (input[1] == '0' && input[2] == 'x') {
r_anal_noreturn_add (core->anal, NULL,
r_num_math (core->num, input + 1));
} else {
r_anal_noreturn_add (core->anal, input + 1,
r_num_math (core->num, input + 1));
}
break;
case 'a': // "ta"
if (input[1] == ' ') {
r_anal_noreturn_add (core->anal, NULL,
r_num_math (core->num, input + 1));
} else {
r_core_cmd_help (core, help_msg);
}
break;
case 'n': // "tnn"
if (input[1] == ' ') {
/* do nothing? */
} else {
r_core_cmd_help (core, help_msg);
}
break;
case '*':
case 'r': // "tn*"
r_anal_noreturn_list (core->anal, 1);
break;
case 0: // "tn"
r_anal_noreturn_list (core->anal, 0);
break;
default:
case '?':
r_core_cmd_help (core, help_msg);
break;
}
}
示例3: show_help
static void show_help(RCore *core) {
const char *help_message[] = {
"Usage: t", "", "# cparse types commands",
"t", "", "List all loaded types",
"t", " <type>", "Show type in 'pf' syntax",
"t*", "", "List types info in r2 commands",
"t-", " <name>", "Delete types by its name",
"t-*", "", "Remove all types",
//"t-!", "", "Use to open $EDITOR",
"tb", " <enum> <value>", "Show matching enum bitfield for given number",
"te", "", "List all loaded enums",
"te", " <enum> <value>", "Show name for given enum number",
"td", " <string>", "Load types from string",
"tf", "", "List all loaded functions signatures",
"tk", " <sdb-query>", "Perform sdb query",
"tl", "[?]", "Show/Link type to an address",
//"to", "", "List opened files",
"to", " -", "Open cfg.editor to load types",
"to", " <path>", "Load types from C header file",
"tos", " <path>", "Load types from parsed Sdb database",
"tp", " <type> = <address>", "cast data at <adress> to <type> and print it",
"ts", "", "print loaded struct types",
"tu", "", "print loaded union types",
//"| ts k=v k=v @ link.addr set fields at given linked type\n"
NULL };
r_core_cmd_help (core, help_message);
}
示例4: cmd_fz
static void cmd_fz(RCore *core, const char *input) {
switch (*input) {
case '?':
r_core_cmd_help (core, help_msg_fz);
break;
case '.':
{
const char *a = NULL, *b = NULL;
r_flag_zone_around (core->flags, core->offset, &a, &b);
r_cons_printf ("%s %s\n", a?a:"~", b?b:"~");
}
break;
case ':':
{
const char *a, *b;
int a_len = 0;
int w = r_cons_get_size (NULL);
r_flag_zone_around (core->flags, core->offset, &a, &b);
if (a) {
r_cons_printf ("[<< %s]", a);
a_len = strlen (a) + 4;
}
int padsize = (w / 2) - a_len;
int title_size = 12;
if (a || b) {
char *title = r_str_newf ("[ 0x%08"PFMT64x" ]", core->offset);
title_size = strlen (title);
padsize -= strlen (title) / 2;
const char *halfpad = r_str_pad (' ', padsize);
r_cons_printf ("%s%s", halfpad, title);
free (title);
}
if (b) {
padsize = (w / 2) - title_size - strlen (b) - 4;
const char *halfpad = padsize > 1? r_str_pad (' ', padsize): "";
r_cons_printf ("%s[%s >>]", halfpad, b);
}
if (a || b) {
r_cons_newline();
}
}
break;
case ' ':
r_flag_zone_add (core->flags, r_str_trim_ro (input + 1), core->offset);
break;
case '-':
if (input[1] == '*') {
r_flag_zone_reset (core->flags);
} else {
r_flag_zone_del (core->flags, input + 1);
}
break;
case '*':
r_flag_zone_list (core->flags, '*');
break;
case 0:
r_flag_zone_list (core->flags, 0);
break;
}
}
示例5: show_help
static void show_help(RCore *core) {
const char * help_message[] = {
"Usage: t", "", "# cparse types commands",
"t", "", "List all loaded types",
"t", " <type>", "Show type in 'pf' syntax",
"t*", "", "List types info in r2 commands",
"t-", " <name>", "Delete types by its name",
"t-*", "", "Remove all types",
//"t-!", "", "Use to open $EDITOR",
"tb", " <enum> <value>","Show matching enum bitfield for given number",
"te", " <enum> <value>","Show name for given enum number",
"td", " <string>","Load types from string",
"td-", "<name>", "Undefine type by name",
"tf", " <addr>", "View linked type at given address",
"tl", "[?]", "Show/Link type to a address",
//"to", "", "List opened files",
"to", " -", "Open cfg.editor to load types",
"to", " <path>", "Load types from C header file",
"tk", " <sdb-query>", "Perform sdb query",
"ts", " <k>=<v>", "Set fields at curseek linked type",
//"| ts k=v k=v @ link.addr set fields at given linked type\n"
NULL
};
r_core_cmd_help (core, help_message);
}
示例6: cmd_quit
static int cmd_quit(void *data, const char *input) {
RCore *core = (RCore *)data;
const char* help_msg[] = {
"Usage:", "q[!] [retval]", "",
"q","","quit program",
"q!","","force quit (no questions)",
"q"," 1","quit with return value 1",
"q"," a-b","quit with return value a-b",
NULL};
if (input)
switch (*input) {
case '?':
r_core_cmd_help (core, help_msg);
break;
case ' ':
case '!':
input++;
case '\0':
// TODO
default:
r_line_hist_save (R2_HOMEDIR"/history");
if (*input)
r_num_math (core->num, input);
else core->num->value = 0LL;
//exit (*input?r_num_math (core->num, input+1):0);
//if (core->http_up) return R_FALSE; // cancel quit when http is running
return -2;
}
return R_FALSE;
}
示例7: cmd_quit
static int cmd_quit(void *data, const char *input) {
RCore *core = (RCore *)data;
const char* help_msg[] = {
"Usage:", "q[!][!] [retval]", "",
"q","","quit program",
"q!","","force quit (no questions)",
"q!!","","force quit without saving history",
"q"," 1","quit with return value 1",
"q"," a-b","quit with return value a-b",
NULL};
if (input)
switch (*input) {
case '?':
r_core_cmd_help (core, help_msg);
break;
case '!':
if (input[1] == '!')
r_config_set (core->config, "scr.histsave", "false");
core->num->value = -1;
return -2;
case '\0':
core->num->value = 0LL;
return -2;
default:
if (*input == ' ')
input++;
if (*input)
r_num_math (core->num, input);
else core->num->value = 0LL;
//exit (*input?r_num_math (core->num, input+1):0);
//if (core->http_up) return R_FALSE; // cancel quit when http is running
return -2;
}
return R_FALSE;
}
示例8: cmd_wf
static bool cmd_wf(RCore *core, const char *input) {
if (!core || !*input) {
return false;
}
if (input[1] == '?') {
eprintf ("Usage: wf [file] ([size] ([offset]))\n");
r_core_cmd_help (core, help_msg_wf);
return false;
}
if (input[1] == 's') { // "wfs"
return cmd_wfs (core, input + 1);
}
if (input[1] == 'f') { // "wff"
return cmd_wff (core, input + 1);
}
char *args = r_str_trim (strdup (input + 1));
char *arg = strchr (args, ' ');
int len = core->blocksize;
if (arg) {
*arg++ = 0;
len = r_num_math (core->num, arg);
}
ut64 addr = r_num_math (core->num, args);
ioMemcpy (core, core->offset, addr, len);
free (args);
r_core_block_read (core);
return true;
}
示例9: cmd_meta
static int cmd_meta(void *data, const char *input) {
RCore *core = (RCore*)data;
int i;
RAnalFunction *f;
switch (*input) {
case 'j':
case '*':
r_meta_list (core->anal, R_META_TYPE_ANY, *input);
break;
case 'L':
cmd_meta_lineinfo (core, input + 1);
break;
case 'C':
cmd_meta_comment (core, input);
break;
case 'h': /* comment */
case 's': /* string */
case 'd': /* data */
case 'm': /* magic */
case 'f': /* formatted */
cmd_meta_hsdmf (core, input);
break;
case '-':
if (input[1]!='*') {
i = r_num_math (core->num, input+((input[1]==' ')?2:1));
r_meta_del (core->anal, R_META_TYPE_ANY, core->offset, i, "");
} else r_meta_cleanup (core->anal, 0LL, UT64_MAX);
break;
case '\0':
case '?':{
const char* help_msg[] = {
"Usage:", "C[-LCvsdfm?] [...]", " # Metadata management",
"C*", "", "list meta info in r2 commands",
"C-", " [len] [[@]addr]", "delete metadata at given address range",
"CL", "[-][*] [file:line] [addr]", "show or add 'code line' information (bininfo)",
"CC", "[-] [comment-text] [@addr]", "add/remove comment",
"CC!", " [@addr]", "edit comment with $EDITOR",
"CCa", "[-at]|[at] [text] [@addr]", "add/remove comment at given address",
"CCu", " [comment-text] [@addr]", "add unique comment",
"Cs", "[-] [size] [@addr]", "add string",
"Ch", "[-] [size] [@addr]", "hide data",
"Cd", "[-] [size] [@addr]", "hexdump data",
"Cf", "[-] [sz] [fmt..] [@addr]", "format memory (see pf?)",
"Cm", "[-] [sz] [fmt..] [@addr]", "magic parse (see pm?)",
NULL};
r_core_cmd_help (core, help_msg);
}
break;
case 'F':
f = r_anal_get_fcn_in (core->anal, core->offset,
R_ANAL_FCN_TYPE_FCN|R_ANAL_FCN_TYPE_SYM);
if (f) r_anal_str_to_fcn (core->anal, f, input+2);
else eprintf ("Cannot find function here\n");
break;
}
return R_TRUE;
}
示例10: r_core_hack_help
void r_core_hack_help(const RCore *core) {
const char* help_msg[] = {
"wao", " [op]", "performs a modification on current opcode",
"wao", " nop", "nop current opcode",
"wao", " jz", "make current opcode conditional (zero)",
"wao", " jnz", "make current opcode conditional (not zero)",
"wao", " ret1", "make the current opcode return 1",
"wao", " ret0", "make the current opcode return 0",
"wao", " retn", "make the current opcode return -1",
"wao", " nocj", "remove conditional operation from branch (make it unconditional)",
"wao", " trap", "make the current opcode a trap",
"wao", " recj", "reverse (swap) conditional branch instruction",
"NOTE:", "", "those operations are only implemented for x86 and arm atm.", //TODO
NULL
};
r_core_cmd_help (core, help_msg);
}
示例11: main
int main (int argc, char **argv) {
r_anal_esil_set_pc (core->anal->esil, fcn ? fcn->addr : core->offset);
switch (*input) {
case '\0': // "aft"
{
seek = core->offset;
r_anal_esil_set_pc (core->anal->esil, fcn ? fcn->addr : core->offset);
r_core_anal_type_match (core, fcn);
r_core_seek (core, seek, true);
break;
}
case '?':
default:
r_core_cmd_help (core, help_msg_aft);
break;
}
return 0;
}
示例12: r_core_rtr_help
R_API void r_core_rtr_help(RCore *core) {
const char* help_msg[] = {
"Usage:", " =[:!+-=hH] [...]", " # radare remote command execution protocol",
"=", ":port", "listen on given port using rap protocol (o rap://9999)",
"=", ":host:port cmd", "run 'cmd' command on remote server",
"\nrap commands:", "", "",
"=", "", "list all open connections",
"=<", "[fd] cmd", "send output of local command to remote fd",
"=", "[fd] cmd", "exec cmd at remote 'fd' (last open is default one)",
"=!", " cmd", "run command via r_io_system",
"=+", " [proto://]host", "add host (default=rap://, tcp://, udp://)",
"=-", "[fd]", "remove all hosts or host 'fd'",
"==", "[fd]", "open remote session with host 'fd', 'q' to quit",
"\nhttp server:", "", "",
"=h", "", "listen for http connections (r2 -qc=H /bin/ls)",
"=H", "", "launch browser and listen for http",
NULL};
r_core_cmd_help (core, help_msg);
}
示例13: cmd_hash
static int cmd_hash(void *data, const char *input) {
RCore *core = (RCore *)data;
if (*input == '!') {
return cmd_hash_bang (core, input);
}
if (*input == '?') {
const char *helpmsg3[] = {
"Usage #!interpreter [<args>] [<file] [<<eof]","","",
" #", "", "comment - do nothing",
" #!","","list all available interpreters",
" #!python","","run python commandline",
" #!python"," foo.py","run foo.py python script (same as '. foo.py')",
//" #!python <<EOF get python code until 'EOF' mark\n"
" #!python"," arg0 a1 <<q","set arg0 and arg1 and read until 'q'",
NULL};
r_core_cmd_help (core, helpmsg3);
return false;
}
/* this is a comment - captain obvious
should not be reached, see r_core_cmd_subst() */
return 0;
}
示例14: cmd_meta_comment
static int cmd_meta_comment(RCore *core, const char *input) {
ut64 addr = core->offset;
switch (input[1]) {
case '?': {
const char* help_msg[] = {
"Usage:", "CC[-+!*au] [base64:..|str] @ addr", "",
"CC", "", "list all comments in human friednly form",
"CC*", "", "list all comments in r2 commands",
"CC.", "", "show comment at current offset",
"CC", " or maybe not", "append comment at current address",
"CC+", " same as above", "append comment at current address",
"CC!", "", "edit comment using cfg.editor (vim, ..)",
"CC-", " @ cmt_addr", "remove comment at given address",
"CCu", " good boy @ addr", "add good boy comment at given address",
"CCu", " base64:AA== @ addr", "add comment in base64",
NULL};
r_core_cmd_help (core, help_msg);
} break;
case '.':
{
char *comment = r_meta_get_string (
core->anal, R_META_TYPE_COMMENT, addr);
if (comment) {
r_cons_printf ("%s\n", comment);
free (comment);
}
}
break;
case 0:
r_meta_list (core->anal, R_META_TYPE_COMMENT, 0);
break;
case '!':
{
char *out, *comment = r_meta_get_string (
core->anal, R_META_TYPE_COMMENT, addr);
out = r_core_editor (core, NULL, comment);
if (out) {
//r_meta_add (core->anal->meta, R_META_TYPE_COMMENT, addr, 0, out);
r_core_cmdf (core, "[email protected]%08"PFMT64x, addr);
//r_meta_del (core->anal->meta, input[0], addr, addr+1, NULL);
r_meta_set_string (core->anal,
R_META_TYPE_COMMENT, addr, out);
free (out);
}
free (comment);
}
break;
case '+':
case ' ':
{
const char* newcomment = input+2;
char *text, *nc;
while (*newcomment==' ') newcomment++;
char *comment = r_meta_get_string (
core->anal, R_META_TYPE_COMMENT, addr);
nc = strdup (newcomment);
r_str_unescape (nc);
if (comment) {
text = malloc (strlen (comment)+strlen (newcomment)+2);
strcpy (text, comment);
strcat (text, "\n");
strcat (text, nc);
r_meta_set_string (core->anal, R_META_TYPE_COMMENT,
addr, text);
free (text);
} else {
r_meta_set_string (core->anal, R_META_TYPE_COMMENT,
addr, nc);
}
free (nc);
}
break;
case '*':
r_meta_list (core->anal, R_META_TYPE_COMMENT, 1);
break;
case '-':
r_meta_del (core->anal, R_META_TYPE_COMMENT, core->offset, 1, NULL);
break;
case 'u':
//
{
char *newcomment;
const char *arg = input+2;
while (*arg && *arg == ' ') arg++;
if (!strncmp (arg, "base64:", 7)) {
char *s = (char *)sdb_decode (arg+7, NULL);
if (s) {
newcomment = s;
} else {
newcomment = NULL;
}
} else {
newcomment = strdup (arg);
}
if (newcomment) {
char *comment = r_meta_get_string (
core->anal, R_META_TYPE_COMMENT, addr);
if (!comment || (comment && !strstr (comment, newcomment))) {
r_meta_set_string (core->anal, R_META_TYPE_COMMENT,
addr, newcomment);
//.........这里部分代码省略.........
示例15: cmd_meta
static int cmd_meta(void *data, const char *input) {
RCore *core = (RCore*)data;
int i;
RAnalFunction *f;
switch (*input) {
case 'j':
case '*':
r_meta_list (core->anal, R_META_TYPE_ANY, *input);
break;
case 'L':
cmd_meta_lineinfo (core, input + 1);
break;
case 'C':
cmd_meta_comment (core, input);
break;
case 'h': /* comment */
case 's': /* string */
case 'd': /* data */
case 'm': /* magic */
case 'f': /* formatted */
cmd_meta_hsdmf (core, input);
break;
case '-':
if (input[1]!='*') {
i = r_num_math (core->num, input+((input[1]==' ')?2:1));
r_meta_del (core->anal, R_META_TYPE_ANY, core->offset, i, "");
} else r_meta_cleanup (core->anal, 0LL, UT64_MAX);
break;
case '\0':
case '?':{
const char* help_msg[] = {
"Usage:", "C[-LCvsdfm?] [...]", " # Metadata management",
"C*", "", "list meta info in r2 commands",
"C-", " [len] [[@]addr]", "delete metadata at given address range",
"CL", "[-][*] [file:line] [addr]", "show or add 'code line' information (bininfo)",
"CS", "[-][space]", "manage meta-spaces to filter comments, etc..",
"CC", "[-] [comment-text] [@addr]", "add/remove comment",
"CC!", " [@addr]", "edit comment with $EDITOR",
"CCa", "[-at]|[at] [text] [@addr]", "add/remove comment at given address",
"CCu", " [comment-text] [@addr]", "add unique comment",
"Cs", "[-] [size] [@addr]", "add string",
"Ch", "[-] [size] [@addr]", "hide data",
"Cd", "[-] [size] [@addr]", "hexdump data",
"Cf", "[-] [sz] [fmt..] [@addr]", "format memory (see pf?)",
"Cm", "[-] [sz] [fmt..] [@addr]", "magic parse (see pm?)",
NULL};
r_core_cmd_help (core, help_msg);
}
break;
case 'F':
f = r_anal_get_fcn_in (core->anal, core->offset,
R_ANAL_FCN_TYPE_FCN|R_ANAL_FCN_TYPE_SYM);
if (f) r_anal_str_to_fcn (core->anal, f, input+2);
else eprintf ("Cannot find function here\n");
break;
case 'S':
{
RSpaces *ms = &core->anal->meta_spaces;
/** copypasta from `fs`.. this must be refactorized to be shared */
switch (input[1]) {
case '?':
{
const char *help_msg[] = {
"Usage: CS","[*] [+-][metaspace|addr]", " # Manage metaspaces",
"CS","","display metaspaces",
"CS"," *","select all metaspaces",
"CS"," metaspace","select metaspace or create if it doesn't exist",
"CS","-metaspace","remove metaspace",
"CS","-*","remove all metaspaces",
"CS","+foo","push previous metaspace and set",
"CS","-","pop to the previous metaspace",
// "CSm"," [addr]","move metas at given address to the current metaspace",
"CSr"," newname","rename selected metaspace",
NULL};
r_core_cmd_help (core, help_msg);
}
break;
case '+':
r_space_push (ms, input+2);
break;
case 'r':
if (input[2]==' ')
r_space_rename (ms, NULL, input+2);
else eprintf ("Usage: CSr [newname]\n");
break;
case '-':
if (input[2]) {
if (input[2]=='*') {
r_space_unset (ms, NULL);
} else {
r_space_unset (ms, input+2);
}
} else {
r_space_pop (ms);
}
break;
case 'j':
case '\0':
case '*':
//.........这里部分代码省略.........