41 va_start(
args, format);
44 vfprintf(stderr, format,
args);
47 fprintf(stderr,
"[ ] ");
48 vfprintf(stderr, format,
args);
49 fprintf(stderr,
"\r[");
68 va_start(
args, format);
71 vfprintf(stderr, format,
args);
72 fprintf(stderr,
"\n");
74 fprintf(stderr,
"\r[x] ");
75 vfprintf(stderr, format,
args);
76 fprintf(stderr,
"\n");
95 va_start(
args, format);
98 vfprintf(stderr, format,
args);
99 fprintf(stderr,
"\n");
101 fprintf(stderr,
"\r[!] ");
102 vfprintf(stderr, format,
args);
103 fprintf(stderr,
"\n");
150 const bool cmdbp_exists = (cmdbp && *cmdbp);
151 const bool bpcmd_exists = (bpi->
data && bpi->
data[0]);
152 const bool may_output = (cmdbp_exists || bpcmd_exists);
172 if (cmdhit && cmdhit[0] != 0) {
183 if (!bf || !bf->
o || !bf->
o->
relocs) {
192 if (!bf || !bf->
o || !bf->
o->
relocs) {
210 for (
i = 0;
i <
len - 1;
i++) {
222 if (pos < core->asmqjmps_count) {
225 }
else if (
str[0] >
'0' &&
str[1] <=
'9') {
227 if (pos <= core->asmqjmps_count) {
291 if (div > 0 && j <
len) {
292 str[j++] =
'A' + div - 1;
297 str[j++] =
'a' + div;
415 if (
r->type ==
type) {
432 rz_list_foreach (fcn->
bbs,
iter, bb) {
443 rz_list_foreach (fcn->
bbs,
iter, bb) {
454 rz_list_foreach (fcn->
bbs,
iter, bb) {
465 rz_list_foreach (fcn->
bbs,
iter, bb) {
476 rz_list_foreach (fcn->
bbs,
iter, bb) {
547 const char *
p =
NULL;
548 if (strlen(
str) > 5) {
549 p = strchr(
str + 5,
':');
552 refsz = atoi(
str + 1);
591 eprintf(
"Invalid reference size: %d (%s)\n", refsz,
str);
608 eprintf(
"Expected '{' after 'k'.\n");
612 ptr = strchr(bptr,
'}');
622 if (strstr(
out,
"$k{")) {
623 eprintf(
"Recursivity is not permitted here\n");
633 ptr = strchr(bptr,
'}');
648 ptr = strchr(bptr,
'}');
666 int flagLength = strlen(flagName);
667 if (flagLength > 0) {
668 flagName[flagLength - 1] = 0;
707 const int clear_bits = 16;
708 lower >>= clear_bits;
709 lower <<= clear_bits;
714 return (lower ==
UT64_MAX) ? 0LL : lower;
725 ptr = strchr(bptr,
'}');
733 ret = flag ? flag->
size : 0LL;
737 }
else if (core->
file) {
747 return (
str[2] ==
'S' ?
s->size :
s->vaddr);
761 return (
str[2] ==
'D') ?
map->size :
map->addr;
791 case 'B':
return fcn->
addr;
794 case 'I':
return fcn->
ninstr;
875 #define rizin_argc (sizeof(rizin_argv) / sizeof(const char *) - 1)
878 "whereis",
"which",
"ls",
"rm",
"mkdir",
"pwd",
"cat",
"sort",
"uniq",
"join",
"less",
"exit",
"quit",
879 "#?",
"#!",
"#sha1",
"#crc32",
"#pcprint",
"#sha256",
"#sha512",
"#md4",
"#md5",
880 "#!python",
"#!vala",
"#!pipe",
882 "(",
"(*",
"(-",
"()",
".?",
".",
"..",
"...",
".:",
".--",
".-",
".!",
".(",
"./",
".*",
884 "R?",
"R",
"R<",
"R!",
"R+",
"R-",
"R=",
"R!=",
"R=!",
"R:",
"R&:",
885 "Rg?",
"Rg",
"Rg!",
"Rh?",
"Rh",
"Rh-",
"Rh--",
"Rh*",
"Rh&",
"RH?",
"RH",
"RH&",
887 "/?",
"/",
"/j",
"/j!",
"/j!x",
"/+",
"//",
"/a",
"/a1",
"/ab",
"/ad",
"/aa",
"/as",
"/asl",
"/at",
"/atl",
"/af",
"/afl",
"/ae",
"/aej",
"/ai",
"/aij",
888 "/c",
"/ca",
"/car",
"/d",
"/e",
"/E",
"/Ej",
"/f",
"/F",
"/g",
"/gg",
"/h",
"/ht",
"/i",
"/m",
"/mb",
"/mm",
889 "/o",
"/O",
"/p",
"/P",
"/s",
"/s*",
"/r?",
"/r",
"/ra",
"/rc",
"/re",
"/rr",
"/rw",
"/rc",
891 "/v?",
"/v",
"/v1",
"/v2",
"/v4",
"/v8",
892 "/V?",
"/V",
"/V1",
"/V2",
"/V4",
"/V8",
893 "/w",
"/wi",
"/x",
"/z",
894 "!?",
"!",
"!!",
"!!!",
"!!!-",
"!-",
"!-*",
"!=!",
895 "a?",
"a",
"aa",
"aa*",
896 "aaa",
"aac",
"aac*",
"aad",
"aae",
"aaf",
"aai",
"aaij",
"aan",
"aang",
"aao",
"aap",
897 "aar?",
"aar",
"aar*",
"aarj",
"aas",
"aat",
"aaT",
"aau",
"aav",
899 "acl",
"acll",
"aclj",
"acl*",
"ac?",
"ac",
"ac-",
"acn",
"acv",
"acvf",
"acv-",
"acb",
"acb-",
"acm",
"acm-",
"acmn",
900 "aC?",
"ad",
"ad4",
"ad8",
"adf",
"adfg",
"adt",
"adk",
901 "ae?",
"ae??",
"ae",
"aea",
"aeA",
"aeaf",
"aeAf",
"aeC",
"aec?",
"aec",
"aecb",
"aecs",
"aecc",
"aecu",
"aecue",
903 "aei",
"aeim",
"aeip",
"aek",
"aek-",
"aeli",
"aelir",
"aep?",
"aep",
"aep-",
"aepc",
904 "aets?",
"aets+",
"aets-",
"aes",
"aesp",
"aesb",
"aeso",
"aesou",
"aess",
"aesu",
"aesue",
"aetr",
"aex",
906 "ag?",
"ag",
"aga",
"agA",
"agc",
"agC",
"agd",
"agf",
"agi",
"agr",
"agR",
"agx",
"agg",
"ag-",
907 "agn?",
"agn",
"agn-",
"age?",
"age",
"age-",
909 "ah?",
"ah",
"ah.",
"ah-",
"ah*",
"aha",
"ahb",
"ahc",
"ahe",
"ahf",
"ahh",
"ahi?",
"ahi",
"ahj",
"aho",
910 "ahp",
"ahr",
"ahs",
"ahS",
"aht",
912 "ao?",
"ao",
"aoj",
"aoe",
"aor",
"aos",
"aom",
"aod",
"aoda",
"aoc",
"ao*",
914 "ar?",
"ar",
"ar0",
"ara?",
"ara",
"ara+",
"ara-",
"aras",
"arA",
"arC",
"arr",
"arrj",
"ar=",
915 "arb",
"arc",
"ard",
"arn",
"aro",
"arp?",
"arp",
"arpi",
"arpg",
"arp.",
"arpj",
917 "as?",
"as",
"asc",
"asca",
"asf",
"asj",
"asl",
"ask",
918 "av?",
"av",
"avj",
"av*",
"avr",
"avra",
"avraj",
"avrr",
"avrD",
920 "b?",
"b",
"b+",
"b-",
"bf",
"bm",
921 "c?",
"c",
"c1",
"c2",
"c4",
"c8",
"cc",
"ccd",
"cf",
"cg?",
"cg",
"cgf",
"cgff",
"cgfc",
"cgfn",
"cgo",
922 "cu?",
"cu",
"cu1",
"cu2",
"cu4",
"cu8",
"cud",
923 "cv",
"cv1",
"cv2",
"cv4",
"cv8",
924 "cV",
"cV1",
"cV2",
"cV4",
"cV8",
925 "cw?",
"cw",
"cw*",
"cwr",
"cwu",
927 "cl",
"cls",
"clear",
928 "d?",
"db ",
"db-",
"db-*",
"db.",
"dbj",
"dbc",
"dbC",
"dbd",
"dbe",
"dbs",
"dbf",
"dbm",
"dbn",
929 "db?",
"dbi",
"dbi.",
"dbix",
"dbic",
"dbie",
"dbid",
"dbis",
"dbite",
"dbitd",
"dbits",
"dbh",
"dbh-",
930 "dbt",
"dbt*",
"dbt=",
"dbtv",
"dbtj",
"dbta",
"dbte",
"dbtd",
"dbts",
"dbx",
"dbw",
931 "dc?",
"dc",
"dca",
"dcb",
"dcc",
"dccu",
"dcf",
"dck",
"dcp",
"dcr",
"dcs",
"dcs*",
"dct",
"dcu",
"dcu.",
932 "dd?",
"dd",
"dd-",
"dd*",
"dds",
"ddd",
"ddr",
"ddw",
936 "di?",
"di",
"di*",
"diq",
"dij",
937 "dk?",
"dk",
"dko",
"dkj",
938 "dL?",
"dL",
"dLq",
"dLj",
939 "dm?",
"dm",
"dm=",
"dm.",
"dm*",
"dm-",
"dmd",
940 "dmh?",
"dmh",
"dmha",
"dmhb",
"dmhbg",
"dmhc",
"dmhf",
"dmhg",
"dmhi",
"dmhm",
"dmht",
941 "dmi?",
"dmi",
"dmi*",
"dmi.",
"dmiv",
944 "dmm?",
"dmm",
"dmm*",
"dmm.",
"dmmj",
946 "dms?",
"dms",
"dmsj",
"dms*",
"dms-",
"dmsA",
"dmsC",
"dmsd",
"dmsw",
"dmsa",
"dmsf",
"dmst",
948 "do?",
"do",
"dor",
"doo",
949 "dp?",
"dp",
"dpj",
"dpl",
"dplj",
"dp-",
"dp=",
"dpa",
"dpc",
"dpc*",
"dpe",
"dpf",
"dpk",
"dpn",
"dptn",
"dpt",
950 "dr?",
"dr",
"drpj",
"drr",
"drrj",
"drs",
"drs+",
"drs-",
"drt",
"drt*",
"drtj",
"drw",
"drx",
"drx-",
952 "ds?",
"ds",
"dsb",
"dsf",
"dsi",
"dsl",
"dso",
"dsp",
"dss",
"dsu",
"dsui",
"dsuo",
"dsue",
"dsuf",
953 "dt?",
"dt",
"dt%",
"dt*",
"dt+",
"dt-",
"dt=",
"dtD",
"dta",
"dtc",
"dtd",
"dte",
"dte-*",
"dtei",
"dtek",
954 "dtg",
"dtg*",
"dtgi",
956 "dts?",
"dts",
"dts+",
"dts-",
"dtsf",
"dtst",
"dtsC",
"dtt",
958 "dx?",
"dx",
"dxa",
"dxe",
"dxr",
"dxs",
959 "e?",
"e",
"e-",
"e*",
"e!",
"ec",
"ee?",
"ee",
"?ed",
"ed",
"ej",
"env",
"er",
"es"
962 "ec?",
"ec",
"ec*",
"ecd",
"ecr",
"ecs",
"ecj",
"ecc",
"eco",
"ecp",
"ecn",
963 "ecH?",
"ecH",
"ecHi",
"ecHw",
"ecH-",
964 "f?",
"f",
"f.",
"f*",
"f-",
"f--",
"f+",
"f=",
"fa",
"fb",
"fc?",
"fc",
"fC",
"fe-",
"fe",
965 "ff",
"fi",
"fg",
"fj",
966 "fl",
"fla",
"fm",
"fn",
"fnj",
"fo",
"fO",
"fr",
"fR",
"fR?",
968 "g?",
"g",
"gw",
"gc",
"gl?",
"gl",
"gs",
"gi",
"gp",
"ge",
"gr",
"gS",
969 "i?",
"i",
"ij",
"iA",
"ia",
"ib",
"ic",
"icc",
"iC",
970 "id?",
"id",
"idp",
"idpi",
"idpi*",
"idpd",
"iD",
"ie",
"iee",
"iE",
"iE.",
971 "ih",
"iHH",
"ii",
"iI",
"ik",
"il",
"iL",
"im",
"iM",
"io",
"iO?",
"iO",
972 "ir",
"iR",
"is",
"is.",
"iS",
"iS.",
"iS=",
"iSS",
973 "it",
"iV",
"iX",
"iz",
"izj",
"izz",
"izzz",
"iz-",
"iZ",
974 "k?",
"k",
"ko",
"kd",
"ks",
"kj",
976 "L?",
"L",
"L-",
"Ll",
"LL",
"La",
"Lc",
"Ld",
"Lh",
"Li",
"Lo",
977 "o?",
"o",
"o-",
"o--",
"o+",
"oa",
"oa-",
"oq",
"o*",
"o.",
"o=",
978 "ob?",
"ob",
"ob*",
"obo",
"oba",
"obf",
"obj",
"obr",
"ob-",
"ob-*",
979 "oc",
"of",
"oi",
"oj",
"oL",
"om",
"on",
980 "oo?",
"oo",
"oo+",
"oob",
"ood",
"oom",
"oon",
"oon+",
"oonn",
"oonn+",
981 "op",
"opn",
"opp",
"opr",
"ox",
982 "p?",
"p-",
"p=",
"p2",
"p3",
"p6?",
"p6",
"p6d",
"p6e",
"p8?",
"p8",
"p8f",
"p8j",
983 "pa?",
"paD",
"pad",
"pade",
"pae",
"pA",
984 "pb?",
"pb",
"pB",
"pxb",
"pB?",
985 "pc?",
"pc",
"pc*",
"pca",
"pcA",
"pcd",
"pch",
"pcj",
"pcp",
"pcs",
"pcS",
"pcw",
986 "pC?",
"pC",
"pCa",
"pCA",
"pCc",
"pCd",
"pCD",
"pCx",
"pCw",
987 "pd?",
"pd",
"pd--",
"pD",
"pda",
"pdb",
"pdC",
"pdf",
"pdi",
"pdj",
"pdJ",
988 "pdk",
"pdl",
"pdp",
"pdr",
"pdr.",
"pdR",
"pds?",
"pds",
"pdsb",
"pdsf",
"pdt",
990 "pf?",
"pf",
"pf??",
"pf???",
"pf.",
"pfj",
"pfj.",
"pf*",
"pf*.",
"pfd",
"pfd.",
991 "pfo",
"pfq",
"pfv",
"pfv.",
"pfs",
"pfs.",
992 "pF?",
"pF",
"pFa",
"pFaq",
"pFo",
"pFp",
"pFx",
993 "pg?",
"pg",
"pg*",
"pg-*",
995 "pi?",
"pi",
"pia",
"pib",
"pie",
"pif?",
"pif",
"pifc",
"pifcj",
"pifj",
"pir",
996 "pI?",
"pI",
"pIa",
"pIb",
"pIe",
"pIf?",
"pIf",
"pIfc",
"pIfcj",
"pIfj",
"pIr",
997 "pj?",
"pj",
"pj.",
"pj..",
998 "pk?",
"pk",
"pK?",
"pK",
1000 "pr?",
"pr",
"prc",
"prx",
"prg?",
"prg",
"prgi",
"prgo",
"prz",
1001 "ps?",
"ps",
"psb",
"psi",
"psj",
"psp",
"pss",
"psu",
"psw",
"psW",
"psx",
"psz",
"ps+",
1002 "pt?",
"pt",
"pt.",
"ptd",
"pth",
"ptn",
1003 "pu?",
"pu",
"puw",
"pU",
1004 "pv?",
"pv",
"pv1",
"pv2",
"pv4",
"pv8",
"pvz",
"pvj",
"pvh",
"pv1j",
"pv2j",
"pv4j",
"pv8j",
1005 "pv1h",
"pv2h",
"pv4h",
"pv8h",
1006 "px?",
"px",
"px/",
"px0",
"pxa",
"pxA?",
"pxA",
"pxb",
"pxc",
"pxd?",
"pxd",
"pxd2",
"pxd4",
"pxd8",
1007 "pxe",
"pxf",
"pxh",
"pxH",
"pxi",
"pxl",
"pxo",
"pxq",
"pxq",
"pxQ",
"pxQq",
"pxr",
"pxrj",
1008 "pxs",
"pxt",
"pxt*",
"pxt.",
"pxw",
"pxW",
"pxWq",
"pxx",
"pxX",
1009 "pz?",
"pz",
"pzp",
"pzf",
"pzs",
"pz0",
"pzF",
"pze",
"pzh",
1010 "P?",
"P",
"Pc",
"Pd",
"Pi",
"Pn",
"Pnj",
"Po",
"Ps",
"PS",
"P-",
1011 "q?",
"q",
"q!",
"q!!",
"q!!!",
"qy",
"qn",
"qyy",
"qyn",
"qny",
"qnn",
1012 "r?",
"r",
"r-",
"r+",
"rh",
1013 "s?",
"s",
"s:",
"s-",
"s-*",
"s--",
"s+",
"s++",
"sj",
"s*",
"s=",
"s!",
"s/",
"s/x",
"s.",
"sa",
"sb",
1015 "sf",
"sf.",
"sg",
"sG",
"sl?",
"sn",
"sp",
"so",
"sr",
"ss",
1016 "t?",
"t",
"tj",
"t*",
"t-",
"t-*",
"ta",
"tb",
"tc",
"te?",
"te",
"tej",
"teb",
"tec",
1017 "td?",
"td",
"td-",
"tf",
"tk",
"tl",
"tn",
"to",
"tos",
"tp",
"tpx",
"ts?",
"ts",
"tsj",
"ts*",
"tsc",
"tss",
1018 "tu?",
"tu",
"tuj",
"tu*",
"tuc",
"tt?",
"tt",
"ttj",
"ttc",
1019 "T?",
"T",
"T*",
"T-",
"Tl",
"Tj",
"Tm",
"Ts",
"TT",
"T=",
"T=.",
"T=&",
1020 "u?",
"u",
"uw",
"us",
"uc",
1021 "v",
"V",
"v!",
"vv",
"vV",
"vVV",
"VV",
1022 "w?",
"w",
"w1+",
"w1-",
"w2+",
"w2-",
"w4+",
"w4-",
"w8+",
"w8-",
1023 "w0",
"w",
"w6",
"w6d",
"w6e",
"wa",
"wa*",
"waf",
"wao?",
"wao",
1024 "wA?",
"wA",
"wB",
"wB-",
"wc",
"wcj",
"wc-",
"wc+",
"wc*",
"wcr",
"wci",
"wcp",
"wcp*",
"wcpi",
1025 "wd",
"we?",
"we",
"wen",
"weN",
"wes",
"wex",
"weX",
1026 "wf?",
"wf",
"wff",
"wfs",
"wF",
"wh",
"wm",
1027 "wo?",
"wo",
"wo2",
"wo4",
"woa",
"woA",
"wod",
"woD",
"woe",
"woE",
"wol",
"wom",
"woo",
1028 "wop?",
"wop",
"wopD",
"wopD*",
"wopO",
1029 "wp?",
"wp",
"wr",
"ws",
1030 "wt?",
"wt",
"wta",
"wtf",
"wtf!",
"wtff",
"wts",
1032 "wv?",
"wv",
"wv1",
"wv2",
"wv4",
"wv8",
1034 "wx?",
"wx",
"wxf",
"wxs",
1036 "x?",
"x",
"x/",
"x0",
"xa",
"xA?",
"xA",
"xb",
"xc",
"xd?",
"xd",
"xd2",
"xd4",
"xd8",
1037 "xe",
"xf",
"xh",
"xH",
"xi",
"xl",
"xo",
"xq",
"xq",
"xQ",
"xQq",
"xr",
"xrj",
1038 "xs",
"xt",
"xt*",
"xt.",
"xw",
"xW",
"xWq",
"xx",
"xX",
1039 "y?",
"y",
"yz",
"yp",
"yx",
"ys",
"yt",
"ytf",
"yf",
"yfa",
"yfx",
"yw",
"ywx",
"yy",
1040 "z?",
"z",
"z*",
"zj",
"z-",
"z-*",
1041 "za?",
"za??",
"za",
"zaf",
"zaF",
"zg",
1042 "zo?",
"zo",
"zoz",
"zos",
1043 "zf?",
"zfd",
"zfs",
"zfz",
1046 "zs?",
"zs",
"zs-",
"zs-*",
"zs+",
"zsr",
1048 "?",
"?v",
"?$?",
"?@?",
"?>?",
1072 dirname =
strdup(
"\\.\\");
1076 }
else if (lpath[0] ==
'~' && lpath[1]) {
1078 }
else if (lpath[0] ==
'~') {
1084 }
else if (lpath[0] ==
'.' || lpath[0] ==
RZ_SYS_DIR[0]) {
1087 char *fmt =
".%s%s%s";
1089 if (strchr(
path,
':')) {
1107 bool chgdir = !strncmp(
str,
"cd ", 3);
1119 }
else if (!chgdir) {
1136 char *
pipe = strchr(
buf->data,
'>');
1159 if (
input[0] ==
'/' ||
input[0] ==
'.' || !extra_paths) {
1163 for (
i = 0; extra_paths[
i];
i++) {
1177 if (!strncmp(buf->data + chr, x, strlen(buf->data + chr))) { \
1178 rz_line_completion_push(completion, x); \
1185 for (
i = 0;
i <
a->n_subcmds;
i++) {
1186 if (
buf->data[0] == 0 || !strncmp(
a->subcmds[
i]->cmd,
buf->data,
a->subcmds[
i]->length)) {
1204 const char *
tmp = strrchr(
str,
' ');
1208 size_t n = strlen(
str);
1237 int n = strlen(
str);
1238 rz_list_foreach (bp->
bps,
iter,
b) {
1255 int n = strlen(
str);
1262 char *
pipe = strchr(
str,
'>');
1265 char *cur_pos =
NULL, *cur_cmd =
NULL, *next_cmd =
NULL;
1271 p1 = strchr(lpath,
'/');
1275 p2 = strchr(ns,
'/');
1278 int n = strlen(
tmp);
1284 cur_pos = strchr(
out,
'\n');
1289 if (!strncmp(
tmp, cur_cmd,
n)) {
1290 char *cmplt =
rz_str_newf(
"analysis/%s/", cur_cmd);
1294 out += cur_pos -
out + 1;
1299 int n = strlen(
tmp);
1300 char *spltr = strchr(ns,
'/');
1309 temp_pos = strchr(
out,
'\n');
1314 key = strchr(temp_cmd,
'=');
1316 if (!strncmp(
tmp, temp_cmd,
n)) {
1317 char *cmplt =
rz_str_newf(
"analysis/%s/%s", ns, temp_cmd);
1321 out += temp_pos -
out + 1;
1325 int n = strlen(lpath);
1326 if (!strncmp(lpath,
"analysis",
n)) {
1338 rz_flag_space_foreach(flag, it,
s) {
1344 if (strlen(
msg) == 0) {
1353 int n = strlen(
str);
1367 size_t n = strlen(
str);
1369 char *
p = item->
name;
1370 if (!*
str || !strncmp(
str,
p,
n)) {
1382 char *
pipe = strchr(
str,
'>');
1400 rz_list_foreach (themes,
iter, theme) {
1401 if (!
len || !strncmp(
str, theme,
len)) {
1409 const char *pattern =
"e (.*)=";
1411 const size_t nmatch = 2;
1420 for (
i = pmatch[1].rm_so;
i < pmatch[1].
rm_eo;
i++) {
1426 if ((
sp = strchr(
str,
' '))) {
1440 char *
p = (
char *)strchr(
buf->data,
'=');
1448 completion->
opt =
true;
1459 const char *
p =
buf->data;
1467 if (!
e || (
e -
p) >= 256 ||
e ==
p) {
1488 switch (parent->
type) {
1556 char *
pipe = strchr(
buf->data,
'>');
1557 char *ptr = strchr(
buf->data,
'@');
1560 }
else if (ptr && strchr(ptr + 1,
' ') &&
buf->data +
buf->index >= ptr) {
1564 sdelta = (
int)(
size_t)(ptr -
buf->data);
1566 }
else if (!strncmp(
buf->data,
"#!pipe ", 7)) {
1567 if (strchr(
buf->data + 7,
' ')) {
1578 }
else if (!strncmp(
buf->data,
"ec ", 3)) {
1579 if (strchr(
buf->data + 3,
' ')) {
1642 ADDARG(
"gui.alt_background")
1645 }
else if ((!strncmp(
buf->data,
"afvn ", 5)) || (!strncmp(
buf->data,
"afan ", 5))) {
1648 if (!strncmp(
buf->data,
"afvn ", 5)) {
1653 const char *f_ptr, *l_ptr;
1655 int len = strlen(
buf->data);
1658 f_ptr = f_ptr !=
NULL ? f_ptr + 1 :
buf->data;
1664 rz_list_foreach (vars,
iter, var) {
1665 if (!strncmp(f_ptr, var->
name, l_ptr - f_ptr)) {
1670 }
else if (!strncmp(
buf->data,
"$", 1)) {
1672 for (
i = 0;
i < core->rcmd->aliases.count;
i++) {
1673 const char *
key = core->rcmd->aliases.keys[
i];
1674 int len = strlen(
buf->data);
1726 return item ? item->
size : -1;
1808 const int hex_depth = 1;
1826 if (
v > -
h &&
v <
h) {
1833 if (
v > -
h &&
v <
h) {
1840 if (
v > -
h &&
v <
h) {
1893 if (sect && sect->
name[0]) {
1953 pj_s(pj,
"program");
1960 pj_s(pj,
"library");
1974 pj_s(pj,
"sequence");
2011 (value < map->addr_end)) {
2033 ut8 buf[128], widebuf[256];
2038 buf[
sizeof(
buf) - 1] = 0;
2042 pj_ks(pj,
"string", (
const char *)
buf);
2050 eprintf(
"Something was wrong with refs\n");
2053 pj_ks(pj,
"string", (
const char *)widebuf);
2075 if (!pj && rrstr[0]) {
2172 for (
i = 0; cmds[
i];
i++) {
2178 const char *fcns[] = {
2181 const char *seeks[] = {
2184 const char *
flags[] = {
2185 "*",
"s",
"s+",
"b",
"f",
"fg",
"?",
"?v",
"ad",
"bf",
"c1",
"db",
"dbw",
2186 "f-",
"fr",
"tf",
"/a",
"/v",
"/r",
"/re",
"aav",
"aep",
"aef",
2187 "afc",
"axg",
"axt",
"axf",
"dcu",
"ag",
"agfl",
"aecu",
"aesu",
"aeim",
NULL
2189 const char *evals[] = {
2190 "e",
"ee",
"et",
"e?",
"e!",
"ev",
"evj",
NULL
2192 const char *breaks[] = {
2193 "db-",
"dbc",
"dbC",
"dbd",
"dbe",
"dbs",
"dbi",
"dbte",
"dbtd",
"dbts",
NULL
2195 const char *
files[] = {
2196 ".",
"..",
".*",
"/F",
"/m",
"!",
"!!",
"#!c",
"#!v",
"#!cpipe",
"#!vala",
2197 "#!rust",
"#!zig",
"#!pipe",
"#!python",
"aeli",
"arp",
"arpg",
"dmd",
"drp",
"drpg",
"o",
2198 "idp",
"idpi",
"L",
"obf",
"o+",
"oc",
2199 "rizin",
"rz-agent",
"rz-asm",
"rz-ax",
"rz-bin",
"rz-diff",
"rz-find",
"rz-gg",
"rz-hash",
"rz-pm",
"rz-run",
"rz-sign",
2200 "cd",
"ls",
"on",
"op",
"wf",
"rm",
"wF",
"wp",
"Sd",
"Sl",
"to",
"pm",
2201 "/m",
"zos",
"zfd",
"zfs",
"zfz",
"cat",
"wta",
"wtf",
"wxf",
"dml",
"vi",
2202 "less",
"head",
"Ps",
"Pl",
NULL
2256 rz_flag_space_pop(
f);
2263 rz_flag_space_pop(
f);
2270 rz_flag_space_pop(
f);
2298 static int win_eprintf(
const char *format, ...) {
2300 va_start(ap, format);
2301 rz_cons_win_vhprintf(STD_ERROR_HANDLE,
false, format, ap);
2318 if (perm <= 0 || (
map->perm & perm)) {
2370 RzEventBinFileDel *bev = data;
2433 core->
vmode =
false;
2740 if (
f->offset < core->
offset) {
2757 a = ((core->
offset >> 16) << (16 - seggrn));
2772 const char *BEGIN =
"";
2773 const char *END =
"";
2774 const char *remote =
"";
2776 if (cmdprompt && *cmdprompt) {
2788 BEGIN =
r->cons->context->pal.prompt;
2789 END =
r->cons->context->pal.reset;
2808 int rnv =
r->num->value;
2817 r->num->value = rnv;
2823 if (
r->scr_gadgets && *
line && *
line !=
'q') {
2826 r->num->value =
r->rc;
2832 r->rc =
r->num->value;
2836 if (
r->cons &&
r->cons->line &&
r->cons->line->zerosep) {
2859 RZ_LOG_ERROR(
"Oops. cannot allocate that much (%u)\n", bsize);
2911 if (!rior || !rior->
fd) {
2912 eprintf(
"rap: cannot listen.\n");
2916 eprintf(
"RAP Server started (rap.loop=%s)\n",
2926 goto out_of_function;
2929 eprintf(
"rap: cannot accept\n");
2931 goto out_of_function;
2933 eprintf(
"rap: client connected\n");
2936 eprintf(
"rap: connection closed\n");
2938 eprintf(
"rap: waiting for new connection\n");
2942 goto out_of_function;
2951 goto out_of_function;
2955 eprintf(
"Cannot malloc in rmt-open len = %d\n",
cmd);
2973 eprintf(
"(flags: %d) len: %d filename: '%s'\n",
2976 eprintf(
"Cannot open file (%s)\n", ptr);
2979 eprintf(
"rap: waiting for new connection\n");
2983 goto out_of_function;
3014 eprintf(
"Cannot read %d byte(s)\n",
i);
3017 goto out_of_function;
3022 char bufr[8], *bufw =
NULL;
3039 eprintf(
"rap: cannot malloc\n");
3042 eprintf(
"rap: invalid length '%d'\n",
i);
3046 cmd_len = strlen(cmd_output) + 1;
3051 #if DEMO_SERVER_SENDS_CMD_TO_CLIENT
3052 static bool once =
true;
3055 const char *
cmd =
"pd 4";
3056 int cmd_len = strlen(
cmd) + 1;
3060 strcpy((
char *)
b + 5,
cmd);
3072 eprintf(
"RESPONSE(%s)\n", (
const char *)res);
3081 bufw =
malloc(cmd_len + 5);
3084 memcpy(bufw + 5, cmd_output, cmd_len);
3139 char line[256] = { 0 };
3141 if (!strncmp(
line,
"ET /cmd/", 8)) {
3143 char *http = strstr(
cmd,
"HTTP");
3155 "Connection: close\r\nContent-Length: %d\r\n\r\n",
3164 eprintf(
"[rap] unknown command 0x%02x\n",
cmd);
3169 eprintf(
"rap: waiting for new connection\n");
3173 goto out_of_function;
3176 eprintf(
"client: disconnected\n");
3188 eprintf(
"Cannot allocate blocksize\n");
3200 for (ret = 0; ret <
len;) {
3222 RZ_LOG_ERROR(
"Please set \"cfg.editor\" to run the editor");
3228 bool readonly =
false;
3247 eprintf(
"Opening in read-only\n");
3250 const size_t str_len = strlen(
str);
3268 if (
len && ret[
len - 1] ==
'\n') {
3312 eprintf(
"architecture not yet supported!\n");
3321 if (strcmp(
name,
"setup") && !
num) {
3322 eprintf(
"syscall not found!\n");
3327 if (strcmp(
name,
"read") && !
num) {
3328 eprintf(
"syscall not found!\n");
3333 eprintf(
"syscall not found!\n");
3339 "main@global(0) { sc(%s);\n"
3351 eprintf(
"rz_egg_assemble: invalid assembly\n");
3355 if (
b->length > 0) {
3356 for (
i = 0;
i <
b->length;
i++) {
3404 if (!parent || !
cmd) {
3420 if (!parent || !
cmd) {
3431 for (j =
i + 1; j < parent->
n_subcmds; j++) {
3437 if (!updated && (parent->
n_subcmds - 1) > 0) {
3438 eprintf(
"Something really bad has happen.. this should never ever happen..\n");
3459 switch (
state->mode) {
3466 pj_ks(pj,
"license", license);
3492 const char *license = cp->
license
RZ_API void rz_agraph_free(RzAGraph *g)
RZ_API RzAGraph * rz_agraph_new(RzConsCanvas *can)
RZ_API RzAnalysisFunction * rz_analysis_get_function_at(RzAnalysis *analysis, ut64 addr)
RZ_API ut64 rz_analysis_function_max_addr(RzAnalysisFunction *fcn)
RZ_API ut64 rz_analysis_function_linear_size(RzAnalysisFunction *fcn)
RZ_API ut64 rz_analysis_function_realsize(const RzAnalysisFunction *fcn)
RZ_API RzAnalysis * rz_analysis_free(RzAnalysis *a)
RZ_API void rz_analysis_bind(RzAnalysis *analysis, RzAnalysisBind *b)
RZ_API RzAnalysis * rz_analysis_new(void)
RZ_API bool rz_analysis_use(RzAnalysis *analysis, const char *name)
RZ_API bool rz_analysis_op_is_eob(RzAnalysisOp *op)
RZ_API void rz_asm_op_fini(RzAsmOp *op)
RZ_API char * rz_asm_op_get_asm(RzAsmOp *op)
RZ_API void rz_asm_free(RzAsm *a)
RZ_API RzAsm * rz_asm_new(void)
RZ_API int rz_asm_set_pc(RzAsm *a, ut64 pc)
RZ_API bool rz_asm_use(RzAsm *a, const char *name)
Puts an Asm plugin in use and disables the previous one.
RZ_API int rz_asm_disassemble(RzAsm *a, RzAsmOp *op, const ut8 *buf, int len)
RZ_API RzBin * rz_bin_new(void)
RZ_API RzBinObject * rz_bin_cur_object(RzBin *bin)
RZ_API void rz_bin_bind(RzBin *bin, RzBinBind *b)
RZ_API void rz_bin_set_user_ptr(RzBin *bin, void *user)
RZ_API RZ_BORROW RzBinSection * rz_bin_get_section_at(RzBinObject *o, ut64 off, int va)
Find the binary section at offset off.
RZ_API RzBinFile * rz_bin_cur(RzBin *bin)
RZ_API void rz_bin_free(RzBin *bin)
static ut64 baddr(RzBinFile *bf)
int bits(struct state *s, int need)
const lzma_allocator const uint8_t size_t uint8_t * out
RZ_API RzBinReloc * rz_bin_reloc_storage_get_reloc_to(RzBinRelocStorage *storage, ut64 vaddr)
Get a reloc that points exactly to vaddr or NULL.
RZ_API RzBinReloc * rz_bin_reloc_storage_get_reloc_in(RzBinRelocStorage *storage, ut64 vaddr, ut64 size)
Get the reloc with the lowest vaddr that starts inside the given interval.
RZ_API int rz_bp_use(RZ_NONNULL RzBreakpoint *bp, RZ_NONNULL const char *name)
RZ_API char * rz_core_analysis_fcn_name(RzCore *core, RzAnalysisFunction *fcn)
RZ_API ut64 rz_core_analysis_address(RzCore *core, ut64 addr)
RZ_API void rz_core_analysis_type_init(RzCore *core)
RZ_API RzConsCanvas * rz_cons_canvas_new(int w, int h)
RZ_API RzLineNSCompletionResult * rz_core_autocomplete_rzshell(RzCore *core, RzLineBuffer *buf, RzLinePromptType prompt_type)
RZ_API bool rz_core_bin_apply_info(RzCore *r, RzBinFile *binfile, ut32 mask)
RZ_API int rz_core_config_init(RzCore *core)
RZ_IPI void rz_core_debug_print_status(RzCore *core)
RZ_API bool rz_core_is_debug(RzCore *core)
Check whether the core is in debug mode (equivalent to cfg.debug)
RZ_API RZ_BORROW RzCoreFile * rz_core_file_open(RZ_NONNULL RzCore *r, RZ_NONNULL const char *file, int flags, ut64 loadaddr)
Tries to open the file as is, otherwise tries as is a compilation of files.
RZ_API bool rz_core_bin_load(RZ_NONNULL RzCore *r, RZ_NULLABLE const char *filenameuri, ut64 baddr)
RZ_API bool rz_core_write_at(RzCore *core, ut64 addr, const ut8 *buf, int size)
RZ_API void rz_core_arch_bits_at(RzCore *core, ut64 addr, RZ_OUT RZ_NULLABLE int *bits, RZ_OUT RZ_BORROW RZ_NULLABLE const char **arch)
RZ_API void rz_core_seek_arch_bits(RzCore *core, ut64 addr)
RZ_API int rz_core_block_read(RzCore *core)
RZ_API int rz_core_cmd0(RzCore *core, const char *cmd)
RZ_API void rz_core_cmd_help(const RzCore *core, const char *help[])
RZ_API int rz_core_cmd(RzCore *core, const char *cstr, int log)
RZ_API bool rz_core_run_script(RzCore *core, RZ_NONNULL const char *file)
RZ_API char * rz_core_cmd_strf(RzCore *core, const char *fmt,...)
RZ_API void rz_core_cmd_init(RzCore *core)
RZ_API int rz_core_cmdf(RzCore *core, const char *fmt,...)
RZ_API char * rz_core_cmd_str(RzCore *core, const char *cmd)
Executes a rizin command and returns the stdout as a string.
RZ_API void rz_cmd_state_output_array_start(RzCmdStateOutput *state)
Mark the start of an array of elements in the output.
RZ_API RzCmd * rz_cmd_free(RzCmd *cmd)
RZ_API void rz_cmd_state_output_array_end(RzCmdStateOutput *state)
Mark the end of an array of elements in the output.
RZ_API char ** rz_cmd_alias_keys(RzCmd *cmd, int *sz)
RZ_API RZ_OWN RzList * rz_core_theme_list(RZ_NONNULL RzCore *core)
Returns the list of the rizin themes.
RZ_API void rz_core_gadget_free(RzCoreGadget *g)
Frees a visual print gadget.
RZ_API void rz_core_gadget_print(RzCore *core)
Prints or displays the print gadgets while in visual mode.
RZ_API ut64 rz_config_get_i(RzConfig *cfg, RZ_NONNULL const char *name)
RZ_API bool rz_config_get_b(RzConfig *cfg, RZ_NONNULL const char *name)
RZ_API RzConfigNode * rz_config_set(RzConfig *cfg, RZ_NONNULL const char *name, const char *value)
RZ_API RZ_BORROW RzConfigNode * rz_config_node_get(RzConfig *cfg, RZ_NONNULL const char *name)
RZ_API RzConfigNode * rz_config_set_i(RzConfig *cfg, RZ_NONNULL const char *name, const ut64 i)
RZ_API RZ_BORROW const char * rz_config_get(RzConfig *cfg, RZ_NONNULL const char *name)
RZ_API void rz_config_free(RzConfig *cfg)
RZ_API void rz_cons_zero(void)
RZ_API int rz_cons_get_size(int *rows)
RZ_API int rz_cons_memcat(const char *str, int len)
RZ_API RzCons * rz_cons_singleton(void)
RZ_API void rz_cons_strcat(const char *str)
RZ_API void rz_cons_break_pop(void)
RZ_API void rz_cons_bind(RzConsBind *bind)
RZ_API void rz_cons_break_push(RzConsBreak cb, void *user)
RZ_API RzCons * rz_cons_new(void)
RZ_API int rz_cons_printf(const char *format,...)
RZ_API void rz_cons_echo(const char *msg)
RZ_API bool rz_cons_is_interactive(void)
RZ_API void rz_cons_flush(void)
RZ_API bool rz_cons_is_breaked(void)
RZ_API void rz_cons_set_flush(bool flush)
Set whether RzCons should flush content to screen or not.
RZ_API RzCons * rz_cons_free(void)
RZ_API void rz_cons_pop(void)
RZ_API void rz_cons_push(void)
RZ_API bool rz_core_plugin_init(RzCore *core)
RZ_API bool rz_core_plugin_fini(RzCore *core)
RZ_API RzReg * rz_core_reg_default(RzCore *core)
Get the currently relevant RzReg.
RZ_API ut64 rz_core_reg_getv_by_role_or_name(RzCore *core, const char *name)
rz_reg_getv_by_role_or_name() on rz_core_reg_default()
static static fork const void static count static fd const char const char static newpath const char static path const char path
static static fork const void static count close
static static sync static getppid static getegid const char static filename char static len const char char static bufsiz static mask static vfork const void static prot static getpgrp const char static swapflags static arg static fd static protocol static who struct sockaddr static addrlen static backlog struct timeval struct timezone static tz const struct iovec static count static mode const void const struct sockaddr static tolen const char static pathname void count
static static sync static getppid static getegid const char static filename char static len const char char static bufsiz static mask static vfork const void static prot static getpgrp const char static swapflags cmd
static static sync static getppid static getegid const char static filename char static len const char char static bufsiz static mask static vfork const void static prot static getpgrp const char static swapflags static arg static fd static protocol static who struct sockaddr static addrlen static backlog struct timeval struct timezone static tz const struct iovec static count static mode const void const struct sockaddr static tolen const char static pathname void static offset struct stat static buf void long static basep static whence static length const void static len key
static static sync static getppid static getegid const char static filename char static len const char char static bufsiz static mask static vfork const void static prot static getpgrp const char static swapflags static arg static fd static protocol static who struct sockaddr static addrlen static backlog struct timeval struct timezone static tz const struct iovec static count static mode const void const struct sockaddr static tolen const char static pathname void static offset struct stat static buf void long static basep static whence static length const void static len static semflg const void static shmflg const struct timespec struct timespec static rem const char static group const void length
RZ_API const char * rz_line_readline(void)
RZ_API int rz_line_hist_load(RZ_NONNULL const char *path)
Load the history of commands from path.
RZ_API const char * rz_core_get_section_name(RzCore *core, ut64 addr)
RZ_API int rz_core_print_disasm_instructions(RzCore *core, int nb_bytes, int nb_opcodes)
RZ_API RzDebugMap * rz_debug_map_get(RzDebug *dbg, ut64 addr)
RZ_API bool rz_debug_map_sync(RzDebug *dbg)
RZ_API ut64 rz_debug_reg_get(RzDebug *dbg, const char *name)
RZ_API void rz_egg_reset(RzEgg *egg)
RZ_API void rz_egg_free(RzEgg *egg)
RZ_API RzEgg * rz_egg_new(void)
RZ_API int rz_egg_compile(RzEgg *egg)
RZ_API RzBuffer * rz_egg_get_bin(RzEgg *egg)
RZ_API void rz_egg_load(RzEgg *egg, const char *code, int format)
RZ_API bool rz_egg_assemble(RzEgg *egg)
RZ_API bool rz_egg_setup(RzEgg *egg, const char *arch, int bits, int endian, const char *os)
size_t map(int syms, int left, int len)
RZ_DEPRECATE RZ_API RzAnalysisFunction * rz_analysis_get_fcn_in(RzAnalysis *analysis, ut64 addr, int type)
RZ_API RzAnalysisFunction * rz_analysis_get_function_byname(RzAnalysis *a, const char *name)
RZ_API void rz_analysis_update_analysis_range(RzAnalysis *analysis, ut64 addr, int size)
checking print the parsed form of the magic use in n conjunction with m to debug a new magic file n before installing it n output MIME type special files
RZ_API void rz_flag_bind(RzFlag *f, RzFlagBind *fb)
RZ_API RzFlagItem * rz_flag_get_i(RzFlag *f, ut64 off)
RZ_API RzFlag * rz_flag_free(RzFlag *f)
RZ_API const RzList * rz_flag_get_list(RzFlag *f, ut64 off)
RZ_API void rz_flag_foreach_prefix(RzFlag *f, const char *pfx, int pfx_len, RzFlagItemCb cb, void *user)
RZ_API RzFlagItem * rz_flag_get_at(RzFlag *f, ut64 off, bool closest)
RZ_API char * rz_flag_get_liststr(RzFlag *f, ut64 off)
RZ_API RzFlagItem * rz_flag_get(RzFlag *f, const char *name)
RZ_API RzFlagItem * rz_flag_set(RzFlag *f, const char *name, ut64 off, ut32 size)
RZ_API RzFlagItem * rz_flag_get_by_spaces(RzFlag *f, ut64 off,...)
RZ_API RzFlag * rz_flag_new(void)
RZ_API void rz_core_cmpwatch_free(RzCoreCmpWatcher *w)
RZ_API void rz_hash_free(RzHash *rh)
RZ_API RzHash * rz_hash_new(void)
RZ_API void Ht_() free(HtName_(Ht) *ht)
RZ_API const KEY_TYPE bool * found
RZ_API const char * rz_analysis_function_get_label_at(RzAnalysisFunction *fcn, ut64 addr)
RZ_API ut64 rz_analysis_function_get_label(RzAnalysisFunction *fcn, const char *name)
RZ_API void rz_lang_free(RzLang *lang)
RZ_API RzLang * rz_lang_new(void)
RZ_API void rz_lang_set_user_ptr(RzLang *lang, void *user)
RZ_API bool rz_lang_define(RzLang *lang, const char *type, const char *name, void *value)
return memset(p, 0, total)
memcpy(mem, inblock.get(), min(CONTAINING_RECORD(inblock.get(), MEMBLOCK, data) ->size, size))
RZ_API RzAnalysisOp * rz_core_op_analysis(RzCore *core, ut64 addr, RzAnalysisOpMask mask)
static const char * cfgget(RzCore *core, const char *k)
RZ_API int rz_core_prompt(RzCore *r, int sync)
RZ_API RzCmdStatus rz_core_core_plugin_print(RzCorePlugin *cp, RzCmdStateOutput *state, const char *license)
static char * getvalue(ut64 value, int bits)
RZ_API RZ_OWN char * rz_core_editor(const RzCore *core, RZ_NULLABLE const char *file, RZ_NULLABLE const char *str)
static void autocomplete_flags(RzCore *core, RzLineCompletion *completion, const char *str)
static ut64 numget(RzCore *core, const char *k)
static RzFlagItem * core_flg_class_set(RzFlag *f, const char *name, ut64 addr, ut32 size)
RZ_API RzTable * rz_core_table(RzCore *core)
static ut64 getref(RzCore *core, int n, char t, int type)
RZ_API RzBinReloc * rz_core_getreloc(RzCore *core, ut64 addr, int size)
static const char * str_callback(RzNum *user, ut64 off, int *ok)
static void set_prompt(RzCore *r)
RZ_IPI RzIOPlugin rz_core_io_plugin_vfile
IO Plugin that opens RzBinVirtualFiles supplied by the plugin of an RzBinFile.
static void autocomplete_theme(RzCore *core, RzLineCompletion *completion, const char *str)
RZ_IPI void rz_core_file_io_desc_closed(RzCore *core, RzIODesc *desc)
static const char * rizin_argv[]
RZ_API ut64 rz_core_get_asmqjmps(RzCore *core, const char *str)
static int on_fcn_new(RzAnalysis *_analysis, void *_user, RzAnalysisFunction *fcn)
static ut64 bbSize(RzAnalysisFunction *fcn, ut64 addr)
static ut64 letter_divs[RZ_CORE_ASMQJMPS_LEN_LETTERS - 1]
static void ev_iomapdel_cb(RzEvent *ev, int type, void *user, void *data)
RZ_API void rz_core_autocomplete_reload(RzCore *core)
static ut64 bbJump(RzAnalysisFunction *fcn, ut64 addr)
RZ_API const char * rz_core_analysis_optype_colorfor(RzCore *core, ut64 addr, bool verbose)
static void autocomplete_process_path(RzLineCompletion *completion, const char *str, const char *path)
static void autocomplete_file(RzLineCompletion *completion, const char *str)
RZ_API int rz_core_bind(RzCore *core, RzCoreBind *bnd)
static int __disasm(void *_core, ut64 addr)
RZ_API int rz_core_search_cb(RzCore *core, ut64 from, ut64 to, RzCoreSearchCallback cb)
static bool rz_core_analysis_read_at(struct rz_analysis_t *analysis, ut64 addr, ut8 *buf, int len)
RZ_API void rz_core_autocomplete_free(RzCoreAutocomplete *obj)
static void autocomplete_default(RZ_NULLABLE RzCore *core, RzLineCompletion *completion, RzLineBuffer *buf)
static bool exists_var(RzPrint *print, ut64 func_addr, char *str)
RZ_API void rz_core_notify_begin(RZ_NONNULL RzCore *core, RZ_NONNULL const char *format,...)
Prints a message definining the beginning of a task.
bool rz_core_is_project(RzCore *core, const char *name)
static bool cfgseti(RzCore *core, const char *k, ut64 v)
static void setab(RzCore *core, const char *arch, int bits)
static const char * getName(RzCore *core, ut64 addr)
RZ_API RzCoreAutocomplete * rz_core_autocomplete_find(RzCoreAutocomplete *parent, const char *cmd, bool exact)
RZ_API void rz_core_prompt_loop(RzCore *r)
static void bp_maps_sync(void *user)
RZ_API void rz_core_bind_cons(RzCore *core)
RZ_IPI void rz_core_task_ctx_switch(RzCoreTask *next, void *user)
RZ_API RzBuffer * rz_core_syscall(RzCore *core, const char *name, const char *args)
RZ_API void rz_core_fini(RzCore *c)
static ut64 bbInstructions(RzAnalysisFunction *fcn, ut64 addr)
RZ_API RzCore * rz_core_ncast(ut64 p)
static RzLineNSCompletionResult * rzshell_autocomplete(RzLineBuffer *buf, RzLinePromptType prompt_type, void *user)
static char * get_comments_cb(void *user, ut64 addr)
static void rap_break(void *u)
RZ_API void rz_core_autocomplete(RZ_NULLABLE RzCore *core, RzLineCompletion *completion, RzLineBuffer *buf, RzLinePromptType prompt_type)
static ut64 cfggeti(RzCore *core, const char *k)
static int bp_bits_at(ut64 addr, void *user)
static ut64 bbBegin(RzAnalysisFunction *fcn, ut64 addr)
static void autocomplete_minus(RzCore *core, RzLineCompletion *completion, const char *str)
RZ_API RzCmdStatus rz_core_core_plugins_print(RzCore *core, RzCmdStateOutput *state)
static void __init_autocomplete_default(RzCore *core)
RZ_API RzBuffer * rz_core_syscallf(RzCore *core, const char *name, const char *fmt,...)
static void update_sdb(RzCore *core)
static bool prompt_add_section(RzCore *core, RzStrBuf *sb, bool add_sep)
RZ_API RzFlagItem * rz_core_flag_get_by_spaces(RzFlag *f, ut64 off)
RZ_API bool rz_core_block_size(RzCore *core, ut32 bsize)
static const RzList * __flagsGet(RzCore *core, ut64 offset)
RZ_API RzCoreAutocomplete * rz_core_autocomplete_add(RzCoreAutocomplete *parent, const char *cmd, int type, bool lock)
static void autocomplete_functions(RzCore *core, RzLineCompletion *completion, const char *str)
static int on_fcn_rename(RzAnalysis *_analysis, void *_user, RzAnalysisFunction *fcn, const char *oname)
RZ_API char * rz_core_analysis_get_comments(RzCore *core, ut64 addr)
RZ_API void rz_core_free(RzCore *c)
RZ_IPI void rz_core_vfile_bin_file_deleted(RzCore *core, RzBinFile *bf)
RZ_API void rz_core_notify_done(RZ_NONNULL RzCore *core, RZ_NONNULL const char *format,...)
Prints a message definining the end of a task which succeeded.
static void autocomplete_flagspaces(RzCore *core, RzLineCompletion *completion, const char *msg)
static ut64 num_callback(RzNum *userptr, const char *str, int *ok)
static void ev_binfiledel_cb(RzEvent *ev, int type, void *user, void *data)
RZ_API int rz_core_fgets(char *buf, int len, void *user)
static bool cfgset(RzCore *core, const char *k, const char *v)
static void autocompleteFilename(RzLineCompletion *completion, RzLineBuffer *buf, char **extra_paths, int narg)
static const char * get_section_name(void *user, ut64 addr)
static int rz_core_print_offsize(void *p, ut64 addr)
static void * rz_core_sleep_begin(RzCore *core)
RZ_API bool rz_core_autocomplete_remove(RzCoreAutocomplete *parent, const char *cmd)
RZ_API void rz_core_notify_error(RZ_NONNULL RzCore *core, RZ_NONNULL const char *format,...)
Prints a message definining the end of a task which errored.
static void rz_core_debug_breakpoint_hit(RzCore *core, RzBreakpointItem *bpi)
static bool prompt_add_offset(RzCore *core, RzStrBuf *sb, bool add_sep)
RZ_IPI void rz_core_file_io_map_deleted(RzCore *core, RzIOMap *map)
static void ev_iowrite_cb(RzEvent *ev, int type, void *user, void *data)
static const char * colorfor_cb(void *user, ut64 addr, bool verbose)
static int on_fcn_delete(RzAnalysis *_analysis, void *_user, RzAnalysisFunction *fcn)
static void autocomplete_evals(RzCore *core, RzLineCompletion *completion, const char *str)
RZ_API bool rz_core_init(RzCore *core)
static int mywrite(const ut8 *buf, int len)
RZ_IPI void rz_core_file_bin_file_deleted(RzCore *core, RzBinFile *bf)
RZ_API char * rz_core_op_str(RzCore *core, ut64 addr)
RZ_API RzCons * rz_core_get_cons(RzCore *core)
static RzFlagItem * core_flg_fcn_set(RzFlag *f, const char *name, ut64 addr, ut32 size)
static bool find_e_opts(RzCore *core, RzLineCompletion *completion, RzLineBuffer *buf)
RZ_API RzCore * rz_core_cast(void *p)
RZ_API void rz_core_set_asmqjmps(RzCore *core, char *str, size_t len, int pos)
static void rz_core_break(RzCore *core)
RZ_API void __cons_cb_fkey(RzCore *core, int fkey)
RZ_API RzBin * rz_core_get_bin(RzCore *core)
static void __init_autocomplete(RzCore *core)
RZ_API RzConfig * rz_core_get_config(RzCore *core)
RZ_API char * rz_core_analysis_hasrefs(RzCore *core, ut64 value, int mode)
static const char * rz_core_print_offname(void *p, ut64 addr)
RZ_API char * rz_core_add_asmqjmp(RzCore *core, ut64 addr)
static int is_string(const ut8 *buf, int size, int *len)
static void ev_iodescclose_cb(RzEvent *ev, int type, void *user, void *data)
static void archbits(RzCore *core, ut64 addr)
static void autocomplete_macro(RzCore *core, RzLineCompletion *completion, const char *str)
static ut64 bbFail(RzAnalysisFunction *fcn, ut64 addr)
static bool find_autocomplete(RzCore *core, RzLineCompletion *completion, RzLineBuffer *buf)
RZ_IPI void rz_core_task_break_cb(RzCoreTask *task, void *user)
RZ_API RzCore * rz_core_new(void)
static bool add_argv(RzFlagItem *fi, void *user)
static void __foreach(RzCore *core, const char **cmds, int type)
RZ_API RzBinReloc * rz_core_get_reloc_to(RzCore *core, ut64 addr)
RZ_API char * rz_core_analysis_hasrefs_to_depth(RzCore *core, ut64 value, PJ *pj, int depth)
static char * getNameDelta(RzCore *core, ut64 addr)
static bool bp_is_mapped(ut64 addr, int perm, void *user)
static char * hasrefs_cb(void *user, ut64 addr, int mode)
static void rz_core_sleep_end(RzCore *core, void *user)
static RzFlagItem * core_flg_class_get(RzFlag *f, const char *name)
RZ_IPI void rz_core_file_free(RzCoreFile *cf)
RZ_API int rz_core_prompt_exec(RzCore *r)
static bool prompt_add_file(RzCore *core, RzStrBuf *sb, bool add_sep)
RZ_API bool rz_core_serve(RzCore *core, RzIODesc *file)
static void rz_core_debug_syscall_hit(RzCore *core)
static void autocomplete_breakpoints(RzCore *core, RzLineCompletion *completion, const char *str)
static void autocomplete_sdb(RzCore *core, RzLineCompletion *completion, const char *str)
RZ_API RZ_OWN RzDebug * rz_debug_new(RZ_BORROW RZ_NONNULL RzBreakpointContext *bp_ctx)
RZ_API RzDebug * rz_debug_free(RzDebug *dbg)
RZ_API ut64 rz_debug_get_baddr(RzDebug *dbg, const char *file)
static void list(RzEgg *egg)
RZ_API RZ_OWN RzList * rz_list_newf(RzListFree f)
Returns a new initialized RzList pointer and sets the free method.
RZ_API RZ_OWN RzList * rz_list_new(void)
Returns a new initialized RzList pointer (free method is not initialized)
RZ_API void rz_list_free(RZ_NONNULL RzList *list)
Empties the list and frees the list pointer.
RZ_API char * sdb_querys(Sdb *r, char *buf, size_t len, const char *_cmd)
RZ_API void rz_core_loadlibs_init(RzCore *core)
void * realloc(void *ptr, size_t size)
void * malloc(size_t size)
void * calloc(size_t number, size_t size)
RZ_API void rz_line_set_prompt(const char *prompt)
RZ_API void rz_line_completion_push(RzLineCompletion *completion, const char *str)
RZ_API void rz_line_completion_set(RzLineCompletion *completion, int argc, const char **argv)
RZ_API void rz_line_completion_clear(RzLineCompletion *completion)
static static fork const void static count static fd const char const char static newpath char char char static envp time_t static t const char static mode static whence const char static dir time_t static t unsigned static seconds const char struct utimbuf static buf static inc static sig const char static mode static oldfd struct tms static buf static getgid static geteuid const char static filename static arg static mask struct ustat static ubuf static getppid static setsid static egid sigset_t static set struct timeval struct timezone static tz fd_set fd_set fd_set struct timeval static timeout const char char static bufsiz const char static swapflags void static offset const char static length static mode static who const char struct statfs static buf unsigned unsigned num
return strdup("=SP r13\n" "=LR r14\n" "=PC r15\n" "=A0 r0\n" "=A1 r1\n" "=A2 r2\n" "=A3 r3\n" "=ZF zf\n" "=SF nf\n" "=OF vf\n" "=CF cf\n" "=SN or0\n" "gpr lr .32 56 0\n" "gpr pc .32 60 0\n" "gpr cpsr .32 64 0 ____tfiae_________________qvczn\n" "gpr or0 .32 68 0\n" "gpr tf .1 64.5 0 thumb\n" "gpr ef .1 64.9 0 endian\n" "gpr jf .1 64.24 0 java\n" "gpr qf .1 64.27 0 sticky_overflow\n" "gpr vf .1 64.28 0 overflow\n" "gpr cf .1 64.29 0 carry\n" "gpr zf .1 64.30 0 zero\n" "gpr nf .1 64.31 0 negative\n" "gpr itc .4 64.10 0 if_then_count\n" "gpr gef .4 64.16 0 great_or_equal\n" "gpr r0 .32 0 0\n" "gpr r1 .32 4 0\n" "gpr r2 .32 8 0\n" "gpr r3 .32 12 0\n" "gpr r4 .32 16 0\n" "gpr r5 .32 20 0\n" "gpr r6 .32 24 0\n" "gpr r7 .32 28 0\n" "gpr r8 .32 32 0\n" "gpr r9 .32 36 0\n" "gpr r10 .32 40 0\n" "gpr r11 .32 44 0\n" "gpr r12 .32 48 0\n" "gpr r13 .32 52 0\n" "gpr r14 .32 56 0\n" "gpr r15 .32 60 0\n" "gpr r16 .32 64 0\n" "gpr r17 .32 68 0\n")
static static fork const void static count static fd const char static mode const char static pathname const char static path const char static dev const char static group static getpid static getuid void void static data static pause const char static mode static sync const char const char static newpath const char static pathname pipe
static const char struct stat static buf struct stat static buf static vhangup int status
RZ_API int sdb_ns_set(Sdb *s, const char *name, Sdb *r)
RZ_API Sdb * sdb_ns(Sdb *s, const char *name, int create)
RZ_API bool rz_analysis_op_fini(RzAnalysisOp *op)
RZ_API int rz_analysis_op(RzAnalysis *analysis, RzAnalysisOp *op, ut64 addr, const ut8 *data, int len, RzAnalysisOpMask mask)
static struct @218 keys[]
RZ_API char * rz_cons_rainbow_get(int idx, int last, bool bg)
RZ_API void rz_parse_set_user_ptr(RzParse *p, void *user)
RZ_API void rz_parse_free(RzParse *p)
RZ_API RzParse * rz_parse_new(void)
RZ_API RzPrint * rz_print_new(void)
RZ_API RzPrint * rz_print_free(RzPrint *p)
RZ_API RzRegItem * rz_reg_get(RzReg *reg, const char *name, int type)
RZ_API const char * rz_reg_get_name(RzReg *reg, int role)
RZ_API int rz_reg_get_name_idx(const char *type)
RZ_API bool rz_core_rtr_init(RZ_NONNULL RzCore *core)
Allocates core rtr structure.
RZ_API void rz_core_wait(RzCore *core)
RZ_API ut64 rz_reg_get_value(RzReg *reg, RzRegItem *item)
#define RZ_ANALYSIS_ADDR_TYPE_STACK
#define RZ_ANALYSIS_ADDR_TYPE_SEQUENCE
#define RZ_ANALYSIS_ADDR_TYPE_ASCII
#define RZ_ANALYSIS_ADDR_TYPE_EXEC
@ RZ_ANALYSIS_XREF_TYPE_CODE
@ RZ_ANALYSIS_XREF_TYPE_CALL
@ RZ_ANALYSIS_XREF_TYPE_DATA
#define RZ_ANALYSIS_ADDR_TYPE_HEAP
#define RZ_ANALYSIS_ADDR_TYPE_LIBRARY
#define RZ_ANALYSIS_ADDR_TYPE_WRITE
@ RZ_ANALYSIS_OP_MASK_BASIC
@ RZ_ANALYSIS_VAR_KIND_BPV
#define RZ_ANALYSIS_ADDR_TYPE_READ
#define RZ_ANALYSIS_ADDR_TYPE_PROGRAM
#define rz_warn_if_reached()
#define rz_return_if_fail(expr)
#define rz_return_val_if_fail(expr, val)
const char *(* RzCoreGetName)(void *core, ut64 off)
ut64(* RzCoreNumGet)(void *core, const char *str)
ut64(* RzCoreConfigGetI)(void *core, const char *key)
char *(* RzCoreGetNameDelta)(void *core, ut64 off)
char *(* RzCoreCmdStr)(void *core, const char *cmd)
void(* RzCorePuts)(const char *cmd)
int(* RzCoreCmd)(void *core, const char *cmd)
bool(* RzCoreConfigSet)(void *core, const char *key, const char *value)
bool(* RzCoreBinApplyInfo)(void *core, void *binfile, ut32 mask)
char *(* RzCoreCmdStrF)(void *core, const char *cmd,...)
void(* RzCoreSetArchBits)(void *core, const char *arch, int bits)
void(* RzCoreSeekArchBits)(void *core, ut64 addr)
bool(* RzCoreConfigSetI)(void *core, const char *key, ut64 value)
const char *(* RzCoreConfigGet)(void *core, const char *key)
void(* RzCoreDebugSyscallHit)(void *core)
int(* RzCoreCmdF)(void *user, const char *fmt,...)
const RzList *(* RzCoreFlagsGet)(void *core, ut64 offset)
int(* RzCoreDebugBpHit)(void *core, void *bp)
RZ_API void rz_buf_free(RzBuffer *b)
Free all internal data hold by the buffer and the buffer.
RZ_API RZ_OWN RzBuffer * rz_buf_new_with_bytes(RZ_NULLABLE RZ_BORROW const ut8 *bytes, ut64 len)
Creates a new buffer with a bytes array.
enum rz_cmd_status_t RzCmdStatus
@ RZ_CMD_STATUS_OK
command handler exited in the right way
@ RZ_CMD_STATUS_NONEXISTINGCMD
command does not exist
@ RZ_CMD_STATUS_ERROR
command handler had issues while running (e.g. allocation error, etc.)
void(* RzConsQueueTaskOneshot)(void *core, void *task, void *user)
#define RZ_CONS_CMD_DEPTH
void(* RzConsFunctionKey)(void *core, int fkey)
void *(* RzConsSleepBeginCallback)(void *core)
void(* RzConsSleepEndCallback)(void *core, void *user)
char *(* RzLineEditorCb)(void *core, const char *str)
char *(* RzConsEditorCallback)(void *core, const char *file, const char *str)
void(* RzConsBreakCallback)(void *core)
#define RZ_FLAGS_FS_IMPORTS
#define RZ_CORE_BLOCKSIZE_MAX
#define RZ_CORE_ASMQJMPS_MAX_LETTERS
#define RZ_FLAGS_FS_SYMBOLS_SECTIONS
#define RZ_CORE_BLOCKSIZE
#define RZ_CORE_ASMQJMPS_NUM
#define RZ_CORE_ASMQJMPS_LETTERS
#define RZ_FLAGS_FS_STRINGS
int(* RzCoreSearchCallback)(RzCore *core, ut64 from, ut8 *buf, int len)
#define RZ_FLAGS_FS_CLASSES
#define RZ_FLAGS_FS_SECTIONS
#define RZ_FLAGS_FS_RELOCS
#define RZ_FLAGS_FS_SYMBOLS
#define RZ_FLAGS_FS_SEGMENTS
struct rz_core_task_t RzCoreTask
#define RZ_FLAGS_FS_SIGNS
#define RZ_CORE_ASMQJMPS_LEN_LETTERS
#define RZ_FLAGS_FS_RESOURCES
#define RZ_FLAGS_FS_FUNCTIONS
static ut64 rz_read_ble64(const void *src, bool big_endian)
static ut8 rz_read_ble8(const void *src)
static void rz_write_be64(void *dest, ut64 val)
static ut64 rz_read_at_be64(const void *src, size_t offset)
static ut32 rz_read_ble32(const void *src, bool big_endian)
static ut16 rz_read_ble16(const void *src, bool big_endian)
static ut32 rz_read_at_be32(const void *src, size_t offset)
static ut32 rz_read_be32(const void *src)
static void rz_write_be32(void *dest, ut32 val)
RZ_API void rz_event_free(RzEvent *ev)
RZ_API RzEvent * rz_event_new(void *user)
RZ_API RzEventCallbackHandle rz_event_hook(RzEvent *ev, int type, RzEventCallback cb, void *user)
RZ_API const char * rz_file_basename(const char *path)
RZ_API bool rz_file_is_directory(const char *str)
RZ_API int rz_file_mkstemp(RZ_NULLABLE const char *prefix, char **oname)
RZ_API RZ_OWN char * rz_file_slurp(const char *str, RZ_NULLABLE size_t *usz)
RZ_API bool rz_file_rm(const char *file)
RZ_API RZ_OWN char * rz_file_path_join(RZ_NONNULL const char *s1, RZ_NULLABLE const char *s2)
Concatenate two paths to create a new one with s1+s2 with the correct path separator.
RZ_API ut64 rz_io_fd_size(RzIO *io, int fd)
RZ_API bool rz_io_read_at(RzIO *io, ut64 addr, ut8 *buf, int len)
RZ_API void rz_io_free(RzIO *io)
RZ_API RzIOMap * rz_io_map_get(RzIO *io, ut64 addr)
RZ_API void rz_io_bind(RzIO *io, RzIOBind *bnd)
RZ_API bool rz_io_map_is_mapped(RzIO *io, ut64 addr)
RZ_API int rz_io_fd_get_current(RzIO *io)
RZ_API RzIOMap * rz_io_map_add(RzIO *io, int fd, int flags, ut64 delta, ut64 addr, ut64 size)
RZ_API RzIO * rz_io_new(void)
RZ_API bool rz_io_plugin_add(RzIO *io, RZ_BORROW RzIOPlugin *plugin)
static ut64 rz_itv_begin(RzInterval itv)
static ut64 rz_itv_size(RzInterval itv)
RZ_API void rz_lib_free(RzLib *lib)
void(* RzListFree)(void *ptr)
#define RZ_LOG_ERROR(fmtstr,...)
RZ_API ut64 rz_num_tail(RzNum *num, ut64 addr, const char *hex)
RZ_API RzNum * rz_num_new(RzNumCallback cb, RzNumCallback2 cb2, void *ptr)
RZ_API ut64 rz_num_math(RzNum *num, const char *str)
RZ_API const char * rz_num_calc_index(RzNum *num, const char *p)
RZ_API void rz_num_free(RzNum *num)
RZ_API RZ_OWN char * rz_path_system(RZ_NULLABLE const char *path)
Return the full system path of the given subpath path.
RZ_API RZ_OWN char * rz_path_home_history(void)
Return the path for the command history file.
RZ_API PJ * pj_ka(PJ *j, const char *k)
RZ_API char * pj_drain(PJ *j)
RZ_API PJ * pj_k(PJ *j, const char *k)
RZ_API PJ * pj_end(PJ *j)
RZ_API PJ * pj_s(PJ *j, const char *k)
RZ_API PJ * pj_ks(PJ *j, const char *k, const char *v)
RZ_API PJ * pj_kn(PJ *j, const char *k, ut64 n)
#define RZ_PRINT_FLAGS_COLOR
RZ_API RzRegex * rz_regex_new(const char *pattern, const char *cflags)
RZ_API int rz_regex_exec(const RzRegex *preg, const char *string, size_t nmatch, RzRegexMatch __pmatch[], int eflags)
RZ_API void rz_regex_free(RzRegex *)
RZ_API int rz_socket_close(RzSocket *s)
RZ_API int rz_socket_read_block(RzSocket *s, unsigned char *buf, int len)
RZ_API RzSocket * rz_socket_accept(RzSocket *s)
RZ_API int rz_socket_flush(RzSocket *s)
RZ_API void rz_socket_printf(RzSocket *s, const char *fmt,...) RZ_PRINTF_CHECK(2
RZ_API int rz_socket_free(RzSocket *s)
RZ_API int rz_socket_write(RzSocket *s, void *buf, int len)
RZ_API const char * rz_str_lchr(const char *str, char chr)
RZ_API char * rz_str_newf(const char *fmt,...) RZ_PRINTF_CHECK(1
RZ_API char * rz_str_ndup(RZ_NULLABLE const char *ptr, int len)
Create new copy of string ptr limited to size len.
RZ_API char * rz_str_new(const char *str)
RZ_API RZ_BORROW char * rz_str_trim_tail(RZ_NONNULL char *str)
Removes whitespace characters (space, tab, newline etc.) from the end of a string and replaces them w...
RZ_API const char * rz_str_trim_head_wp(const char *str)
RZ_API char * rz_str_ichr(char *str, char chr)
RZ_API size_t rz_str_ncpy(char *dst, const char *src, size_t n)
Secure string copy with null terminator.
RZ_API char * rz_str_home(const char *str)
RZ_API bool rz_str_glob(const char *str, const char *glob)
RZ_API const char * rz_str_last(const char *in, const char *ch)
#define RZ_STR_ISEMPTY(x)
RZ_API char RZ_API char * rz_str_appendch(char *x, char y)
RZ_API const char * rz_str_trim_head_ro(const char *str)
RZ_API int rz_str_replace_ch(char *s, char a, char b, bool g)
RZ_API const char * rz_sub_str_rchr(const char *str, int start, int end, char chr)
RZ_API int rz_str_word_set0(char *str)
RZ_API int rz_str_replace_char(char *s, int a, int b)
RZ_API const char * rz_sub_str_lchr(const char *str, int start, int end, char chr)
RZ_API const char * rz_str_word_get0(const char *str, int idx)
RZ_API void rz_str_uri_decode(char *buf)
RZ_API char * rz_str_escape_sh(const char *buf)
RZ_API RZ_OWN char * rz_strbuf_drain(RzStrBuf *sb)
RZ_API RZ_OWN char * rz_strbuf_drain_nofree(RzStrBuf *sb)
RZ_API char * rz_strbuf_get(RzStrBuf *sb)
RZ_API bool rz_strbuf_append(RzStrBuf *sb, const char *s)
RZ_API RzStrBuf * rz_strbuf_new(const char *s)
RZ_API bool rz_strbuf_appendf(RzStrBuf *sb, const char *fmt,...) RZ_PRINTF_CHECK(2
RZ_API void rz_strbuf_init(RzStrBuf *sb)
RZ_API int rz_sys_cmdf(const char *fmt,...) RZ_PRINTF_CHECK(1
RZ_API int rz_sys_open(const char *path, int perm, int mode)
RZ_API RzList * rz_sys_dir(const char *path)
RZ_API int rz_sys_getpid(void)
RZ_API RzTable * rz_table_new(void)
int(* PrintfCallback)(const char *str,...) RZ_PRINTF_CHECK(1
#define RZ_FREE_CUSTOM(x, y)
@ RZ_OUTPUT_MODE_STANDARD
#define RZ_BETWEEN(x, y, z)
#define UT8_ADD_OVFCHK(x, y)
RZ_API int rz_utf8_encode_str(const RzRune *str, ut8 *dst, const int dst_length)
RZ_API Sdb * sdb_new(const char *path, const char *name, int lock)
RZ_API bool sdb_free(Sdb *s)
RZ_API RzSearch * rz_search_new(int mode)
RZ_API RzSearch * rz_search_free(RzSearch *s)
RZ_API void rz_core_seek_reset(RzCore *core)
RZ_API void rz_core_seek_free(RzCore *core)
RZ_API bool rz_core_seek(RzCore *core, ut64 addr, bool rb)
Seek to addr.
static struct sockaddr static addrlen static backlog const void static flags void struct sockaddr from
static struct sockaddr static addrlen static backlog const void static flags void struct sockaddr socklen_t static fromlen const void const struct sockaddr to
static struct sockaddr static addrlen static backlog const void static flags void flags
static struct sockaddr static addrlen static backlog const void msg
int(* on_fcn_delete)(struct rz_analysis_t *, void *user, RzAnalysisFunction *fcn)
int(* on_fcn_rename)(struct rz_analysis_t *, void *user, RzAnalysisFunction *fcn, const char *oldname)
int(* on_fcn_new)(struct rz_analysis_t *, void *user, RzAnalysisFunction *fcn)
bool(* read_at)(struct rz_analysis_t *analysis, ut64 addr, ut8 *buf, int len)
struct rz_analysis_plugin_t * cur
XX curplugin == o->plugin.
RZ_DEPRECATE RZ_BORROW Sdb * kv
deprecated, put info in C structures instead of this (holds a copy of another pointer....
RzBinRelocStorage * relocs
Outer context of mappings/etc. in which the RzBreakpoint instance will operate in....
Represent the output state of a command handler.
RzConsPrintablePalette pal
RzConsSleepBeginCallback cb_sleep_begin
RzConsSleepEndCallback cb_sleep_end
RzConsBreakCallback cb_break
RzConsQueueTaskOneshot cb_task_oneshot
RzConsEditorCallback cb_editor
RzConsFunctionKey cb_fkey
int(* user_fgets)(char *buf, int len, void *user)
struct rz_core_autocomplete_t ** subcmds
RzCoreBinApplyInfo applyBinInfo
RzCoreDebugSyscallHit syshit
RzCoreGetNameDelta getNameDelta
RzCoreSeekArchBits archbits
RzCoreAutocomplete * autocomplete
RzCoreVisualMode printidx
RzCmdDescriptor root_cmd_descriptor
RzList * plugins
List of registered core plugins.
RzCoreTaskScheduler tasks
struct rz_io_desc_t * desc
RzCoreCmdStrCallback cmd_str
void * run_user
User data that can be passed to the callback.
RzLineNSCompletionCb run
Callback function that is called when autocompletion is required. (e.g. TAB is pressed)
RzLineCompletion completion
RzLineNSCompletion ns_completion
RzConsFunctionKey cb_fkey
RzNumCalcValue number_value
RzNumCalc nc
division by zero happened
RzAnalysisLabelAt label_get
RzAnalysisVarList varlist
RzPrintNameCallback offname
RzPrintSectionGet get_section_name
int(* write)(const unsigned char *buf, int len)
int(* disasm)(void *p, ut64 addr)
RzPrintSizeCallback offsize
bool(* exists_var)(struct rz_print_t *print, ut64 func_addr, char *str)
PrintfCallback cb_eprintf
RzPrintCommentCallback get_comments
char *(* cb_color)(int idx, int last, bool bg)
RZ_API RzSyscall * rz_syscall_ref(RzSyscall *sc)
RZ_API int rz_syscall_get_num(RzSyscall *s, const char *str)
RZ_API void rz_core_task_join(RzCoreTaskScheduler *scheduler, RzCoreTask *current, int id)
RZ_API void rz_core_task_scheduler_init(RzCoreTaskScheduler *sched, RzCoreTaskContextSwitch ctx_switch, void *ctx_switch_user, RzCoreTaskBreak break_cb, void *break_cb_user)
RZ_API void rz_core_task_break_all(RzCoreTaskScheduler *scheduler)
RZ_API void rz_core_task_scheduler_fini(RzCoreTaskScheduler *tasks)
RZ_API void rz_core_task_enqueue_oneshot(RzCoreTaskScheduler *scheduler, RzCoreTaskOneShot func, void *user)
RZ_API void rz_core_task_sleep_end(RzCoreTask *task)
RZ_API void rz_core_task_sleep_begin(RzCoreTask *task)
RZ_API RzCoreTask * rz_core_task_self(RzCoreTaskScheduler *scheduler)
static void lock(volatile int *lk)
RZ_API RzList * rz_analysis_var_list(RzAnalysis *a, RzAnalysisFunction *fcn, int kind)
RZ_API RZ_BORROW RzAnalysisVar * rz_analysis_function_get_var_byname(RzAnalysisFunction *fcn, const char *name)
RZ_DEPRECATE RZ_API RzList * rz_analysis_function_get_var_fields(RzAnalysisFunction *fcn, int kind)
if(dbg->bits==RZ_SYS_BITS_64)
ut64(WINAPI *w32_GetEnabledXStateFeatures)()
RZ_API RzList * rz_analysis_function_get_xrefs_to(RzAnalysisFunction *fcn)
RZ_API RzList * rz_analysis_function_get_xrefs_from(RzAnalysisFunction *fcn)
static const z80_opcode fd[]
static bool input(void *ud, zip_uint8_t *data, zip_uint64_t length)