Skip to content

Commit 173ab8b

Browse files
authored
Add files via upload
1 parent 4d94777 commit 173ab8b

File tree

19 files changed

+7685
-0
lines changed

19 files changed

+7685
-0
lines changed

FileRecovery.scpt

4.08 KB
Binary file not shown.

applet.icns

21.9 KB
Binary file not shown.

foremost-1.5.7/CHANGES

Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
Version 1.5.7
2+
-Added support for MP4 files
3+
Version 1.5.6
4+
-Added support for Office 2007 file as well as bug fixes
5+
Version 1.5.5
6+
-Added patch submitted by John K. Antonishek as well as cleaning
7+
up compiler warnings and man file installation.
8+
Version 1.5.4
9+
-Added patch submitted by Milan Broz & Eamonn Saunders that
10+
fixes jpeg extraction bug.
11+
warnings
12+
and an 64 bit bug.
13+
Version 1.5.3
14+
-Added patches submitted by Toshio Kuratomi that fix compiler warnings
15+
and an 64 bit bug.
16+
Version 1.5.2
17+
-Fixed problem with gap code thanks to Jeffry Turnmire
18+
Version 1.5.1
19+
-Fixed jpeg extraction bug thanks to Jeffry Turnmire
20+
-Fixed bug in OLE extraction thanks to Filip Van Raemdonck
21+
Version 1.5
22+
-Fixed Endian errors on OSX
23+
-Fixed several bugs reported by John K. Antonishek
24+
Version 1.4
25+
-Fixed realpath problems when compiling with cygwin
26+
-Fixed flaw in Zip extraction
27+
-Made indirect block detection a little more stable
28+
Version 1.3
29+
- Fixed flaw in ZIP algorithm that didn't take into acct zeroized local file headers
30+
that contain valid compressed/uncompressed info in the data descriptors
31+
Version 1.2
32+
- Fixed conf file typos
33+
Version 1.1
34+
- Improved Speed of extraction functions
35+
- Added NEXT option to config file
36+
- Fixed some integer overflow problems
37+
- Updated config file
38+
- Added ASCII option for the config file
39+
Version 1.0
40+
- Changed display functionq
41+
- Enhanced RaR and PE extraction
42+
- Minor bug fixes thanks to Eamon Walsh for the bug report and patch
43+
- Added support for Windows PE executables
44+
- Added support for multiple files
45+
- Thanks to Toshio Kuratomi for fixing some compiler warnings under gcc 4
46+
- Fixed bugs with respect to unique file names, and quick mode
47+
Version 0.9.4
48+
- Improved speed and reliability of zip and mpeg extraction algorithms.
49+
Version 0.9.3
50+
- Added subdirectories for each output type as opposed to 1 directory
51+
containing 90,000 files.
52+
Version 0.9.2
53+
- Greatly improved OLE extraction capabilites.
54+
Version 0.9.1
55+
- Re-wrote code to run on LINUX,OSX,BSD,and SOLARIS
56+
- Added builtin extraction functions
57+
- Changed default behavior to look for the conf file in /usr/local/etc as
58+
well as the the current dir. Also the conf file is not required
59+
for the program to run if the -t option is enabled.
60+
- Added a -i switch to specify an input file as opposed to using stdin
61+
- Added -k to allow the user to change the default chunk size as well
62+
as -b to change the default block size
63+
- Changed the output dir to a time stamp of when the program was run.
64+
- Added -d for indirect block detection
65+
Version 0.69 (Our thanks to Zach Kanner for these improvements...)
66+
- Corrected a bug that prevented the "reverse footer search" option
67+
from working correctly.
68+
- Added a new "NEXT" option, specify NEXT after the footer on any
69+
search specification line and foremost will search for
70+
the last occurence (forward only currently) of that footer in the
71+
window of size length but not including that footer in the resulting
72+
output file created. This feature lets you search for files that
73+
don't have good ending footers but are separated by multiple starting footers or other identifiable data which you know should not be
74+
included in the output. This works really well for MS Word documents where you don't know where the end is. The start of another document
75+
becomes the end. With this feature as you can specific the "NEXT"
76+
or something after the end of the data we are looking for.
77+
- Updated the default foremost.conf file to use the feature for .doc
78+
files. Also added tags for ScanSoft PaperPort files (.max), and
79+
a Windows program called PINs (.pins), which stores encrypted
80+
passwords.
81+
Version 0.68
82+
Version 0.67
83+
- Added "reverse footer search" option, specify REVERSE after the
84+
footer on any search specification line and foremost will search for
85+
the last occurence of that footer in the window of size length.
86+
87+
Version 0.66
88+
- Changed normal search to Boyer-Moore algorithm. Much faster!
89+
- Added progress meter
90+
- Added ability to suppress extensions from a single file type or
91+
from all file types.
92+
- Added "chop" field to show when files have been trimmed
93+
based on their definitions in the configuration file
94+
- Added "interior" field to show when files have been found
95+
somewhere other than a sector boundary
96+
- Added OpenBSD support
97+
- Added Win32 support via native compilation (Mingw)
98+
- Added Win32 support via Cygwin, to include:
99+
-using %lld instead of %Ld
100+
-ignoring the fnctl line for O_LARGEFILE in Win32
101+
-redeclare strsignal as const char strsignal
102+
-write function basename for Win32 using '\\' as delimiter
103+
-updated Makefile
104+
- Removed unneccessary header files from foremost.h
105+
106+
(Version 0.65 was not published)
107+
108+
Version 0.64 - Audit file now records full paths of input and output files
109+
Foremost now requires that the output directory is empty
110+
before running. If necessary, foremost will create the
111+
output directory (ie. if it doesn't exist)
112+
Added structure to internal code of foremost.c and created
113+
dig.c file
114+
Fixed bug that generated wrong line number in configuration
115+
file error messages
116+
Fixed bug on empty wildcard definitions
117+
Added limit for number of file types in configuration file
118+
119+
Version 0.63 - Increased speed by using files already loaded in memory
120+
instead of going back to the disk every time.
121+
Minor speed increase to helper functions
122+
Added footers for several file formats including ZIP
123+
124+
Version 0.62 - Added man page and make install functionality
125+
Added "internal" indicator to show when a file is found
126+
off the start of the sector.
127+
Fixed discrepancy between audit file and screen output
128+
regarding file numbers and offset locations (off by one)
129+
Added more graceful error handling
130+
131+
Version 0.61 - Added check for "^M" line feeds added by MSDOS editors
132+
while reading configuration files.
133+
134+
Version 0.6 - Renamed project to "foremost"
135+
Added support for wildcards
136+
Added -q for quick mode
137+
More code clean up
138+
Removed BSD porting code (oops) and added support
139+
for large (>2GB) files.
140+
141+
Version 0.5 - Added -v for verbose mode
142+
Added more intelligble output regarding file locations
143+
Added error handling procedures
144+
Added support for loading specification files from the disk
145+
146+
Version 0.4 - More code cleanup
147+
(not actually released, used as test during investigation)
148+
149+
Version 0.3 - Code cleanup continues, moved all variables into the
150+
state variable. The program still needs a LOT of work.
151+
152+
Version 0.2 - Code cleanup by Jesse Kornblum. Removed linux specific
153+
code and ported to OpenBSD. Added support for handling
154+
multiple images from the command line and created the
155+
state variable. 07 March 2001
156+
157+
Version 0.1 - Proof of concept code written by Kris Kendall,
158+
originally called "snarfit" 05 March 2001

foremost-1.5.7/Makefile

Lines changed: 193 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,193 @@
1+
2+
RAW_CC = gcc
3+
RAW_FLAGS = -Wall -O2
4+
LINK_OPT =
5+
VERSION = 1.5.7
6+
# Try to determine the host system
7+
SYS := $(shell uname -s | tr -d "[0-9]" | tr -d "-" | tr "[A-Z]" "[a-z]")
8+
9+
10+
# You can cross compile this program for Win32 using Linux and the
11+
# MinGW compiler. See the README for details. If you have already
12+
# installed MinGW, put the location ($PREFIX) here:
13+
CR_BASE = /usr/local/cross-tools/i386-mingw32msvc/bin
14+
15+
# You shouldn't need to change anything below this line
16+
#---------------------------------------------------------------------
17+
18+
# This should be commented out when debugging is done
19+
#RAW_FLAGS += -D__DEBUG -ggdb
20+
21+
NAME = foremost
22+
MAN_PAGES = $(NAME).8.gz
23+
24+
RAW_FLAGS += -DVERSION=\"$(VERSION)\"
25+
26+
# Where we get installed
27+
BIN = /usr/local/bin
28+
MAN = /usr/share/man/man8
29+
CONF= /usr/local/etc
30+
# Setup for compiling and cross-compiling for Windows
31+
# The CR_ prefix refers to cross compiling from OSX to Windows
32+
CR_CC = $(CR_BASE)/gcc
33+
CR_OPT = $(RAW_FLAGS) -D__WIN32
34+
CR_LINK = -liberty
35+
CR_STRIP = $(CR_BASE)/strip
36+
CR_GOAL = $(NAME).exe
37+
WINCC = $(RAW_CC) $(RAW_FLAGS) -D__WIN32
38+
39+
# Generic "how to compile C files"
40+
CC = $(RAW_CC) $(RAW_FLAGS) -D__UNIX
41+
.c.o:
42+
$(CC) -c $<
43+
44+
45+
# Definitions we'll need later (and that should rarely change)
46+
HEADER_FILES = main.h ole.h extract.h
47+
SRC = main.c state.c helpers.c config.c cli.c engine.c dir.c extract.c api.c
48+
OBJ = main.o state.o helpers.o config.o cli.o engine.o dir.o extract.o api.o
49+
DOCS = Makefile README CHANGES $(MAN_PAGES) foremost.conf
50+
WINDOC = README.txt CHANGES.txt
51+
52+
53+
#---------------------------------------------------------------------
54+
# OPERATING SYSTEM DIRECTIVES
55+
#---------------------------------------------------------------------
56+
57+
all: $(SYS) goals
58+
59+
goals: $(NAME)
60+
61+
linux: CC += -D__LINUX -DLARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
62+
linux: goals
63+
64+
sunos: solaris
65+
solaris: CC += -D__SOLARIS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
66+
solaris: goals
67+
68+
darwin: CC += -D__MACOSX
69+
darwin: goals
70+
71+
mac: CC += -D__MACOSX
72+
mac: goals
73+
74+
netbsd: unix
75+
openbsd: unix
76+
freebsd: unix
77+
unix: goals
78+
79+
#Fore some reasons BSD variants get confused on how to build engine.o
80+
#so lets make it real clear
81+
82+
engine.o: engine.c
83+
$(CC) -c engine.c
84+
85+
86+
# Common commands for compiling versions for Windows.
87+
# See cross and windows directives below.
88+
win_general: LINK_OPT = $(CR_LINK)
89+
win_general: GOAL = $(CR_GOAL)
90+
win_general: goals
91+
$(STRIP) $(CR_GOAL)
92+
93+
# Cross compiling from Linux to Windows. See README for more info
94+
cross: CC = $(CR_CC) $(CR_OPT)
95+
cross: STRIP = $(CR_STRIP)
96+
cross: win_general
97+
98+
# See the README for information on Windows compilation
99+
windows: CC = $(WINCC)
100+
windows: STRIP = strip
101+
windows: win_general
102+
103+
cygwin_nt.: unix
104+
cygwin: unix
105+
106+
107+
#---------------------------------------------------------------------
108+
# COMPILE THE PROGRAMS
109+
# This section must be updated each time you add an algorithm
110+
#---------------------------------------------------------------------
111+
112+
foremost: $(OBJ)
113+
$(CC) $(OBJ) -o $(NAME) $(LINK_OPT)
114+
115+
116+
#---------------------------------------------------------------------
117+
# INSTALLATION AND REMOVAL
118+
#---------------------------------------------------------------------
119+
120+
install: goals
121+
install -m 755 $(NAME) $(BIN)
122+
install -m 444 $(MAN_PAGES) $(MAN)
123+
install -m 444 foremost.conf $(CONF)
124+
macinstall: BIN = /usr/local/bin/
125+
macinstall: MAN = /usr/share/man/man1/
126+
macinstall: CONF = /usr/local/etc/
127+
macinstall: mac install
128+
129+
130+
uninstall:
131+
rm -f -- $(BIN)/{$(RM_GOALS)}
132+
rm -f -- $(MAN)/{$(RM_DOCS)}
133+
134+
macuninstall: BIN = /usr/bin
135+
macuninstall: MAN = /usr/share/man/man1
136+
macuninstall: uninstall
137+
138+
#---------------------------------------------------------------------
139+
# CLEAN UP
140+
#---------------------------------------------------------------------
141+
142+
# This is used for debugging
143+
preflight:
144+
grep -n RBF *.1 *.h *.c README CHANGES
145+
146+
nice:
147+
rm -f -- *~
148+
149+
clean: nice
150+
rm -f -- *.o
151+
rm -f -- $(CR_GOAL) $(NAME) $(WIN_DOC)
152+
rm -f -- $(TAR_FILE).gz $(DEST_DIR).zip $(DEST_DIR).zip.gpg
153+
154+
#-------------------------------------------------------------------------
155+
# MAKING PACKAGES
156+
#-------------------------------------------------------------------------
157+
158+
EXTRA_FILES =
159+
DEST_DIR = $(NAME)-$(VERSION)
160+
TAR_FILE = $(DEST_DIR).tar
161+
PKG_FILES = $(SRC) $(HEADER_FILES) $(DOCS) $(EXTRA_FILES)
162+
163+
# This packages me up to send to somebody else
164+
package: clean
165+
rm -f $(TAR_FILE) $(TAR_FILE).gz
166+
mkdir $(DEST_DIR)
167+
cp $(PKG_FILES) $(DEST_DIR)
168+
tar cvf $(TAR_FILE) $(DEST_DIR)
169+
rm -rf $(DEST_DIR)
170+
gzip $(TAR_FILE)
171+
172+
173+
# This Makefile is designed for Mac OSX to package the file.
174+
# To do this on a linux box, The big line below starting with "/usr/bin/tbl"
175+
# should be replaced with:
176+
#
177+
# man ./$(MD5GOAL).1 | col -bx > README.txt
178+
#
179+
# and the "flip -d" command should be replaced with dos2unix
180+
#
181+
# The flip command can be found at:
182+
# http://ccrma-www.stanford.edu/~craig/utility/flip/#
183+
win-doc:
184+
/usr/bin/tbl ./$(MD5GOAL).1 | /usr/bin/groff -S -Wall -mtty-char -mandoc -Tascii | /usr/bin/col > README.txt
185+
cp CHANGES CHANGES.txt
186+
flip -d $(WINDOC)
187+
188+
cross-pkg: clean cross win-doc
189+
rm -f $(DEST_DIR).zip
190+
zip $(DEST_DIR).zip $(CR_MD5GOAL) $(CR_SHA1GOAL) $(CR_SHA256GOAL) $(WINDOC)
191+
rm -f $(WINDOC)
192+
193+
world: package cross-pkg

0 commit comments

Comments
 (0)