File: faq.html

package info (click to toggle)
hashdeep 4.4%2Bgit20170824%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 11,320 kB
  • sloc: cpp: 5,061; ansic: 3,872; sh: 3,395; makefile: 162
file content (189 lines) | stat: -rw-r--r-- 4,653 bytes parent folder | download | duplicates (6)
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
<html>
 <head>

 <!-- $Id$ -->

 <title> md5deep - Frequently Asked Questions </title>
 <link rel="stylesheet" type="text/css" href="style.css">

</head>
<body>



<h1> Frequently Asked Questions About md5deep </h1>

<h4> General Questions </h4>
<p>
<a href="#shell">
Q. Why can't I just use one line of shell to do what md5deep does?
</a>
</p>


<h4> Algorithm Questions </h4>
<p>
<a href="#md5">
Q. Is MD5 broken?
</a>
</p>




<h2 id="general"> General Questions </h2>

<h3 id="license">
Q. How can md5deep be public domain when it uses GPL'ed code? Shouldn't 
it be GPL'ed?
</h3>

<p>
A.

</p>



<h3 id="shell">
Q. Why can't I just use one line of shell to do what md5deep does?
</h3>

<p>

A. Because md5deep does more than just compute hashes. Yes, it's possible
to recursively compute MD5 hashes with existing commands:

<pre>$ find /usr -type f -exec md5sum '{}' \;</pre>

There is no single line of shell code that can use a set of known
hashes to search for files that do or do not match any of the known hashes.
For example, here are the
positive matches from a set of known malware to files in the /usr 
directory. Note the rootkit we find:

<pre>$ md5deep -r malware-samples/* > known.txt
$ md5deep -wrm known.txt /usr 
/usr/bin/.../ls matches /home/jessek/malware-samples/foo-rootkit/trojan-ls</pre>
</p>


<h2 id="algorithm"> Algorithm Questions </h2>

<h3 id="md5"> 
Q. Is MD5 broken?
</h3>
<p>
A. Sort of. There have been a number of collision attacks against the
algorithm. It's now possible for a bad guy to generate two different
128 byte blocks that have the same MD5 hash. 

<p>

<p>
Note that a bad guy can't
(currently) create a new file that matches the hash of an existing file.
This kind of attack, called a preimage attack, will be the absolute 
end of the algorithm. 
</p>




<h2 id="building"> Compiling md5deep </h2>

<h3 id="windows">
Q. How do I compile program for Windows?
</h3>

<p>
The easiest method for getting md5deep to work on Microsoft Windows is to use
the precompiled binaries available on the project web page, 
<a href="http://md5deep.sourceforge.net/">http://md5deep.sourceforge.net/</a>.
</p>

<p>
The developer uses a MinGW cross compiler to create these Win32 binaries
from either Linux or OS X. You can get more information on how to set up
your own cross compiler from the 
<a href="http://www.mingw.org/MinGWiki/index.php/BuildMingwCross">MinGW wiki
page on BuildMingwCross</a>. After you have a cross compiler installed,
you can configure and build the programs using

<pre>$ ./configure --host=mingw32</pre>
</p>

<p>
You can use <a href="http://www.cygwin.com/">Cygwin</a> to build and install 
the programs, but this will create a Cygwin version of the tools. Remember
that because Cygwin is a kind of *nix, it must be built with the *nix style
configuration:

<pre>$ ./configure</pre>
</p>

<p>
The following option is <em>not supported</em>, but may allow you compile
a Windows binary that is not Cygwin dependent. From the MinGW FAQ, <a href="http://www.mingw.org/mingwfaq.shtml#faq-usingwithcygwin"> How do I use MinGW with Cygwin?</a>: 

<blockquote>
Simply install Cygwin and the MinGW distribution in seperate directories (i.e. "C:\CYGWIN" and "C:\MINGW"), and make sure that the "/bin" subdirectory beneath your MinGW installation comes before Cygwin's "/bin" subdirectory in your PATH environment variable (i.e. "PATH=%PATH%;C:\MINGW\BIN;C:\CYGWIN\BIN"). This will allow you access to all the UNIX tools you want, while ensuring that the instance of GCC used is the MinGW version.
</blockquote>
</p>



<h2 id="using"> Using md5deep </h2>

<h3 id="nothinghappens">
Q. Nothing happens when I double click on the program. What's wrong?
</h3>

<p>

A. This is usually happens to Microsoft Windows users. md5deep is a
command line program and does not work by double clicking on it.
To run the program you must open a command prompt. Go to the "Start"
menu and choose "Run". In the dialog box, type <code>cmd</code> and
hit enter. When the command prompt comes up, change to the directory
where you have decompressed the md5deep archive. For example:

<pre>C:\> cd e:\temp\md5deep</pre>

You can now run md5deep using this command window as described
in the <a href="getting-started.html">Getting Started guide</a>.

</p>

<h3 id="recursive">
Why doesn't the -r flag let me hash every file with the same extension (e.g. md5
deep -r *.txt)?
</h3>

<p>
A.

</p>




<h3 id="Wood Chuck Wood">
Q. How much wood could a wood chuck chuck if a wood chuck could chuck wood?
</h3>

A. 443 board feet (1.045 m<sup>3</sup>).




<hr>




<a href="/">Return to md5deep homepage</a>

</body>
</html>