/usr/lib/radare/bin/strings-flag is in radare-common 1:1.5.2-6.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | #!/usr/bin/perl
#
# author: pof <eslack.org>
# perl port: pancake <youterm.com>
#
die "Usage: rsc strings-flag [file] ([minlen]) ([offset])\n" unless(@ARGV);
my $file=$ARGV[0];
my $minlen=$ARGV[1];
my $offset=$ARGV[2];
$minlen=3 unless($minlen);
my @strings=split('\n', `strings -tx -n2 $file`);
my @foo=split('\n', `rabin -e $file`);
my @foomem=split(' ', $foo[0]);
my @foodsk=split(' ', $foo[1]);
my $mem=`rax $foomem[0]` if (defined($foomem[0]));
my $disk=`rax $foodsk[0]` if (defined($foodsk[0]));
my $count=0;
$offset=$mem-$disk unless($offset);
my $file_info = `file $file`;
#if (!($file_info =~ /32-bit/)) {
# print "fs strings\n";
# print ":f _here_\n";
#
# for my $i (0 .. $#strings) {
# $strings[$i]=~s/^\ *//;
# $strings[$i]=~/([^\ ]*) (.*)$/;
# my $addr = $1;
# #my $type = $2;
# my $str = $2;
# my $cow;
# eval ("\$cow = 0x$addr+$offset\n");
# $str=~tr/\ \-\>\<\`\t\|&;\@"/.___________./;
# $str=~s/\.*//g;
# $str=substr($str, 0,27);
# if ($str=~/%/ || length($str)>$minlen) {
# print ":fn str_\"$str\" @ 0x".sprintf "%08x\n", $cow;
# $count++;
# }
# }
#
# print ":s _here_\n:f -_here_\n";
# print STDERR "$count strings added.\n" if ( $ENV{"VERBOSE"} );
#} else {
my @strs = split(/\n/,qx(rabin -rz $file));
for my $i (0 .. @strs) {
if ($strs[$i] =~ /^f /) {
$count++;
}
print $strs[$i],"\n";
}
print STDERR "$count strings added.\n" if ( $ENV{"VERBOSE"} );
#}
|