diff options
author | obrien <obrien@FreeBSD.org> | 2003-06-27 03:59:46 +0000 |
---|---|---|
committer | obrien <obrien@FreeBSD.org> | 2003-06-27 03:59:46 +0000 |
commit | d436927cebd1ffbeb77b5359e2d50e6ef72bda83 (patch) | |
tree | f1838af78604bcac8b1d8ee905b456b9d6b3794a /usr.bin/strings | |
parent | ce928641b590cf8e5d360a6a028820295caf9acc (diff) | |
download | FreeBSD-src-d436927cebd1ffbeb77b5359e2d50e6ef72bda83.zip FreeBSD-src-d436927cebd1ffbeb77b5359e2d50e6ef72bda83.tar.gz |
Finish the deorbital burn of the i386-only a.out toolchain.
Diffstat (limited to 'usr.bin/strings')
-rw-r--r-- | usr.bin/strings/Makefile | 8 | ||||
-rw-r--r-- | usr.bin/strings/strings.1 | 100 | ||||
-rw-r--r-- | usr.bin/strings/strings.1aout | 97 | ||||
-rw-r--r-- | usr.bin/strings/strings.c | 221 |
4 files changed, 0 insertions, 426 deletions
diff --git a/usr.bin/strings/Makefile b/usr.bin/strings/Makefile deleted file mode 100644 index 04b3f02..0000000 --- a/usr.bin/strings/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# @(#)Makefile 8.1 (Berkeley) 6/6/93 -# $FreeBSD$ - -PROG= strings -MAN= strings.1aout -BINDIR= /usr/libexec/aout - -.include <bsd.prog.mk> diff --git a/usr.bin/strings/strings.1 b/usr.bin/strings/strings.1 deleted file mode 100644 index 94b6bce..0000000 --- a/usr.bin/strings/strings.1 +++ /dev/null @@ -1,100 +0,0 @@ -.\" Copyright (c) 1980, 1990, 1993 -.\" The Regents of the University of California. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" 3. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgement: -.\" This product includes software developed by the University of -.\" California, Berkeley and its contributors. -.\" 4. Neither the name of the University nor the names of its contributors -.\" may be used to endorse or promote products derived from this software -.\" without specific prior written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" @(#)strings.1 8.1 (Berkeley) 6/6/93 -.\" $FreeBSD$ -.\" -.Dd June 6, 1993 -.Dt STRINGS 1 -.Os -.Sh NAME -.Nm strings -.Nd find printable strings in a file -.Sh SYNOPSIS -.Nm -.Op Fl afo -.Op Fl n Ar number -.Op Ar -.Sh DESCRIPTION -The -.Nm -utility -displays the sequences of printable characters in each of the specified -files, or in the standard input, by default. -By default, a sequence must be at least four characters in length -before being displayed. -.Pp -The options are as follows: -.Bl -tag -width Ds -.It Fl a -By default, -.Nm -only searches the text and data segments of object files. -The -.Fl a -option causes -.Nm -to search the entire object file. -.It Fl f -Each string is preceded by the name of the file -in which it was found. -.It Fl n -Specifies the minimum number of characters in a sequence to be -.Ar number , -instead of four. -.It Fl o -Each string is preceded by its decimal offset in the -file. -.El -.Pp -The -.Nm -utility is useful for identifying random binaries, among other things. -.Sh SEE ALSO -.Xr hexdump 1 -.Sh BUGS -The algorithm for identifying strings is extremely primitive. -In particular, machine code instructions on certain architectures -can resemble sequences of ASCII bytes, which -will fool the algorithm. -.Sh COMPATIBILITY -Historic implementations of -.Nm -only search the initialized data portion of the object file. -This was reasonable as strings were normally stored there. -Given new compiler technology which installs strings in the -text portion of the object file, the default behavior was -changed. -.Sh HISTORY -The -.Nm -command appeared in -.Bx 3.0 . diff --git a/usr.bin/strings/strings.1aout b/usr.bin/strings/strings.1aout deleted file mode 100644 index 1e25258..0000000 --- a/usr.bin/strings/strings.1aout +++ /dev/null @@ -1,97 +0,0 @@ -.\" Copyright (c) 1980, 1990, 1993 -.\" The Regents of the University of California. All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" 3. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgement: -.\" This product includes software developed by the University of -.\" California, Berkeley and its contributors. -.\" 4. Neither the name of the University nor the names of its contributors -.\" may be used to endorse or promote products derived from this software -.\" without specific prior written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" @(#)strings.1 8.1 (Berkeley) 6/6/93 -.\" $FreeBSD$ -.\" -.Dd June 6, 1993 -.Dt STRINGS 1 -.Os -.Sh NAME -.Nm strings -.Nd find printable strings in a file -.Sh SYNOPSIS -.Nm -.Op Fl afo -.Op Fl n Ar number -.Op Ar -.Sh DESCRIPTION -.Nm Strings -displays the sequences of printable characters in each of the specified -files, or in the standard input, by default. -By default, a sequence must be at least four characters in length -before being displayed. -.Pp -The options are as follows: -.Bl -tag -width Ds -.It Fl a -By default, -.Nm -only searches the text and data segments of object files. -The -.Fl a -option causes -.Nm -to search the entire object file. -.It Fl f -Each string is preceded by the name of the file -in which it was found. -.It Fl n -Specifies the minimum number of characters in a sequence to be -.Ar number , -instead of four. -.It Fl o -Each string is preceded by its decimal offset in the -file. -.El -.Pp -.Nm Strings -is useful for identifying random binaries, among other things. -.Sh SEE ALSO -.Xr hexdump 1 -.Sh BUGS -The algorithm for identifying strings is extremely primitive. -In particular, machine code instructions on certain architectures -can resemble sequences of ASCII bytes, which -will fool the algorithm. -.Sh COMPATIBILITY -Historic implementations of -.Nm -only search the initialized data portion of the object file. -This was reasonable as strings were normally stored there. -Given new compiler technology which installs strings in the -text portion of the object file, the default behavior was -changed. -.Sh HISTORY -The -.Nm -command appeared in -.Bx 3.0 . diff --git a/usr.bin/strings/strings.c b/usr.bin/strings/strings.c deleted file mode 100644 index 603fcdf..0000000 --- a/usr.bin/strings/strings.c +++ /dev/null @@ -1,221 +0,0 @@ -/* - * Copyright (c) 1980, 1987, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef lint -static const char copyright[] = -"@(#) Copyright (c) 1980, 1987, 1993\n\ - The Regents of the University of California. All rights reserved.\n"; -#endif /* not lint */ - -#ifndef lint -#if 0 -static char sccsid[] = "@(#)strings.c 8.2 (Berkeley) 1/28/94"; -#endif -static const char rcsid[] = - "$FreeBSD$"; -#endif /* not lint */ - -#include <sys/types.h> - -#include <a.out.h> -#include <ctype.h> -#include <err.h> -#include <fcntl.h> -#include <locale.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <unistd.h> - -#define DEF_LEN 4 /* default minimum string length */ -#define ISSTR(ch) (isalnum(ch) || ispunct(ch) || \ - (isspace(ch) && (!iscntrl(ch) || ch == '\t')) || \ - (isascii(ch) && isprint(ch))) - -typedef struct exec EXEC; /* struct exec cast */ - -static long foff; /* offset in the file */ -static int hcnt, /* head count */ - head_len, /* length of header */ - read_len; /* length to read */ -static u_char hbfr[sizeof(EXEC)]; /* buffer for struct exec */ - -int getch(void); -static void usage(void); - -int -main(argc, argv) - int argc; - char **argv; -{ - register int ch, cnt; - register u_char *C; - EXEC *head; - int exitcode, minlen; - short asdata, oflg, fflg; - u_char *bfr; - const char *file, *p; - - (void) setlocale(LC_CTYPE, ""); - - /* - * for backward compatibility, allow '-' to specify 'a' flag; no - * longer documented in the man page or usage string. - */ - asdata = exitcode = fflg = oflg = 0; - minlen = -1; - while ((ch = getopt(argc, argv, "-0123456789an:of")) != -1) - switch (ch) { - case '0': case '1': case '2': case '3': case '4': - case '5': case '6': case '7': case '8': case '9': - /* - * kludge: strings was originally designed to take - * a number after a dash. - */ - if (minlen == -1) { - p = argv[optind - 1]; - if (p[0] == '-' && p[1] == ch && !p[2]) - minlen = atoi(++p); - else - minlen = atoi(argv[optind] + 1); - } - break; - case '-': - case 'a': - asdata = 1; - break; - case 'f': - fflg = 1; - break; - case 'n': - minlen = atoi(optarg); - break; - case 'o': - oflg = 1; - break; - case '?': - default: - usage(); - } - argc -= optind; - argv += optind; - - if (minlen == -1) - minlen = DEF_LEN; - else if (minlen < 1) - errx(1, "length less than 1"); - - if (!(bfr = malloc((u_int)minlen + 1))) - errx(1, "malloc"); - bfr[minlen] = '\0'; - file = "stdin"; - do { - if (*argv) { - file = *argv++; - if (!freopen(file, "r", stdin)) { - warn("%s", file); - exitcode = 1; - goto nextfile; - } - } - foff = 0; -#define DO_EVERYTHING() {read_len = -1; head_len = 0; goto start;} - read_len = -1; - if (asdata) - DO_EVERYTHING() - else { - head = (EXEC *)hbfr; - if ((head_len = - read(fileno(stdin), head, sizeof(EXEC))) == -1) - DO_EVERYTHING() - if (head_len == sizeof(EXEC) && !N_BADMAG(*head)) { - foff = N_TXTOFF(*head); - if (fseek(stdin, foff, SEEK_SET) == -1) - DO_EVERYTHING() - read_len = head->a_text + head->a_data; - head_len = 0; - } - else - hcnt = 0; - } -start: - for (cnt = 0; (ch = getch()) != EOF;) { - if (ISSTR(ch)) { - if (!cnt) - C = bfr; - *C++ = ch; - if (++cnt < minlen) - continue; - if (fflg) - printf("%s:", file); - if (oflg) - printf("%07ld %s", - foff - minlen, (char *)bfr); - else - printf("%s", bfr); - while ((ch = getch()) != EOF && ISSTR(ch)) - putchar((char)ch); - putchar('\n'); - } - cnt = 0; - } -nextfile: ; - } while (*argv); - exit(exitcode); -} - -/* - * getch -- - * get next character from wherever - */ -int -getch() -{ - ++foff; - if (head_len) { - if (hcnt < head_len) - return((int)hbfr[hcnt++]); - head_len = 0; - } - if (read_len == -1 || read_len-- > 0) - return(getchar()); - return(EOF); -} - -static void -usage() -{ - (void)fprintf(stderr, - "usage: strings [-afo] [-n length] [file ... ]\n"); - exit(1); -} |