mirror of
https://github.com/radareorg/radare2.git
synced 2024-12-02 10:16:21 +00:00
Add r2 -z and r2 -zz: Fix the bin.strings and bin.rawstr logic.
This commit is contained in:
parent
c9aaede4e4
commit
777b26fd6e
@ -97,7 +97,8 @@ static int main_help(int line) {
|
|||||||
" -t load rabin2 info in thread\n"
|
" -t load rabin2 info in thread\n"
|
||||||
#endif
|
#endif
|
||||||
" -v, -V show radare2 version (-V show lib versions)\n"
|
" -v, -V show radare2 version (-V show lib versions)\n"
|
||||||
" -w open file in write mode\n");
|
" -w open file in write mode\n"
|
||||||
|
" -z, -zz do not load strings or load them even in raw\n");
|
||||||
if (line==2)
|
if (line==2)
|
||||||
printf (
|
printf (
|
||||||
"Scripts:\n"
|
"Scripts:\n"
|
||||||
@ -171,6 +172,7 @@ int main(int argc, char **argv, char **envp) {
|
|||||||
const char *prj = NULL;
|
const char *prj = NULL;
|
||||||
//int threaded = R_FALSE;
|
//int threaded = R_FALSE;
|
||||||
int debug = 0;
|
int debug = 0;
|
||||||
|
int zflag = 0;
|
||||||
int do_analysis = 0;
|
int do_analysis = 0;
|
||||||
int do_connect = 0;
|
int do_connect = 0;
|
||||||
int fullfile = 0;
|
int fullfile = 0;
|
||||||
@ -238,7 +240,7 @@ int main(int argc, char **argv, char **envp) {
|
|||||||
argv++;
|
argv++;
|
||||||
} else prefile = 0;
|
} else prefile = 0;
|
||||||
|
|
||||||
while ((c = getopt (argc, argv, "0ACwfhm:e:nk:Ndqs:p:b:B:a:Lui:l:P:c:D:vVS"
|
while ((c = getopt (argc, argv, "0ACwfhm:e:nk:Ndqs:p:b:B:a:Lui:l:P:c:D:vVSz"
|
||||||
#if USE_THREADS
|
#if USE_THREADS
|
||||||
"t"
|
"t"
|
||||||
#endif
|
#endif
|
||||||
@ -253,6 +255,7 @@ int main(int argc, char **argv, char **envp) {
|
|||||||
quiet = R_TRUE;
|
quiet = R_TRUE;
|
||||||
break;
|
break;
|
||||||
case 'a': asmarch = optarg; break;
|
case 'a': asmarch = optarg; break;
|
||||||
|
case 'z': zflag++; break;
|
||||||
case 'A':
|
case 'A':
|
||||||
do_analysis = R_TRUE;
|
do_analysis = R_TRUE;
|
||||||
break;
|
break;
|
||||||
@ -357,6 +360,15 @@ int main(int argc, char **argv, char **envp) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
switch (zflag) {
|
||||||
|
case 1:
|
||||||
|
r_config_set (r.config, "bin.strings", "false");
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
r_config_set (r.config, "bin.rawstr", "true");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
switch (va) {
|
switch (va) {
|
||||||
case 0:
|
case 0:
|
||||||
r_config_set_i (r.config, "io.va", 0);
|
r_config_set_i (r.config, "io.va", 0);
|
||||||
|
@ -116,12 +116,16 @@ static int bin_strings (RCore *r, int mode, ut64 baddr, int va) {
|
|||||||
|
|
||||||
if (!(hasstr = r_config_get_i (r->config, "bin.strings")))
|
if (!(hasstr = r_config_get_i (r->config, "bin.strings")))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (!plugin) return 0;
|
if (!plugin) return 0;
|
||||||
if (!plugin->info) {
|
if (plugin->info && plugin->name) {
|
||||||
|
if (!strcmp (plugin->name, "any")) {
|
||||||
if (!rawstr) {
|
if (!rawstr) {
|
||||||
eprintf ("WARN: Use '-e bin.rawstr=true' or 'rabin2 -zz'"
|
eprintf ("NOTE: Use '-e bin.rawstr=true' or 'r2 -zz' or '.!rabin2 -zz $FILE'"
|
||||||
" to find strings on unknown file types\n");
|
" to find strings on unknown file types\n");
|
||||||
return R_FALSE;
|
return R_FALSE;
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -263,11 +263,13 @@ static int r_core_file_do_load_for_debug (RCore *r, ut64 loadaddr, const char *f
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!r_bin_load (r->bin, filenameuri, baseaddr, loadaddr, xtr_idx, desc->fd, treat_as_rawstr)) {
|
if (!r_bin_load (r->bin, filenameuri, baseaddr, loadaddr, xtr_idx, desc->fd, treat_as_rawstr)) {
|
||||||
treat_as_rawstr ++;
|
if (r_config_get_i (r->config, "bin.rawstr")) {
|
||||||
|
treat_as_rawstr = R_TRUE;
|
||||||
if (!r_bin_load (r->bin, filenameuri, baseaddr, loadaddr, xtr_idx, desc->fd, treat_as_rawstr)) {
|
if (!r_bin_load (r->bin, filenameuri, baseaddr, loadaddr, xtr_idx, desc->fd, treat_as_rawstr)) {
|
||||||
return R_FALSE;
|
return R_FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
binfile = r_bin_cur (r->bin);
|
binfile = r_bin_cur (r->bin);
|
||||||
r_core_bin_set_env (r, binfile);
|
r_core_bin_set_env (r, binfile);
|
||||||
@ -275,7 +277,7 @@ static int r_core_file_do_load_for_debug (RCore *r, ut64 loadaddr, const char *f
|
|||||||
if ( plugin && strncmp (plugin->name, "any", 5)==0 ) {
|
if ( plugin && strncmp (plugin->name, "any", 5)==0 ) {
|
||||||
// set use of raw strings
|
// set use of raw strings
|
||||||
r_config_set_i (r->config, "io.va", 0);
|
r_config_set_i (r->config, "io.va", 0);
|
||||||
r_config_set (r->config, "bin.rawstr", "true");
|
//\\ r_config_set (r->config, "bin.rawstr", "true");
|
||||||
// get bin.minstr
|
// get bin.minstr
|
||||||
r->bin->minstrlen = r_config_get_i (r->config, "bin.minstr");
|
r->bin->minstrlen = r_config_get_i (r->config, "bin.minstr");
|
||||||
} else if (binfile) {
|
} else if (binfile) {
|
||||||
@ -313,7 +315,7 @@ static int r_core_file_do_load_for_io_plugin (RCore *r, ut64 baseaddr, ut64 load
|
|||||||
if ( plugin && strncmp (plugin->name, "any", 5)==0 ) {
|
if ( plugin && strncmp (plugin->name, "any", 5)==0 ) {
|
||||||
// set use of raw strings
|
// set use of raw strings
|
||||||
r_config_set_i (r->config, "io.va", 0);
|
r_config_set_i (r->config, "io.va", 0);
|
||||||
r_config_set (r->config, "bin.rawstr", "true");
|
// r_config_set (r->config, "bin.rawstr", "true");
|
||||||
// get bin.minstr
|
// get bin.minstr
|
||||||
r->bin->minstrlen = r_config_get_i (r->config, "bin.minstr");
|
r->bin->minstrlen = r_config_get_i (r->config, "bin.minstr");
|
||||||
} else if (binfile) {
|
} else if (binfile) {
|
||||||
@ -448,7 +450,7 @@ R_API int r_core_bin_load(RCore *r, const char *filenameuri, ut64 baddr) {
|
|||||||
plugin = r_bin_file_cur_plugin (binfile);
|
plugin = r_bin_file_cur_plugin (binfile);
|
||||||
if (plugin && plugin->name && !strncmp (plugin->name, "any", 3)) {
|
if (plugin && plugin->name && !strncmp (plugin->name, "any", 3)) {
|
||||||
// set use of raw strings
|
// set use of raw strings
|
||||||
r_config_set (r->config, "bin.rawstr", "true");
|
//r_config_set (r->config, "bin.rawstr", "true");
|
||||||
r_config_set_i (r->config, "io.va", 0);
|
r_config_set_i (r->config, "io.va", 0);
|
||||||
// get bin.minstr
|
// get bin.minstr
|
||||||
r->bin->minstrlen = r_config_get_i (r->config, "bin.minstr");
|
r->bin->minstrlen = r_config_get_i (r->config, "bin.minstr");
|
||||||
|
Loading…
Reference in New Issue
Block a user