OLD | NEW |
1 ========================= | 1 ========================= |
2 Installation instructions | 2 Installation instructions |
3 ========================= | 3 ========================= |
4 | 4 |
5 This document provides basic installation instructions and discusses known | 5 This document provides basic installation instructions and discusses known |
6 issues for a variety of platforms. See README for the general instruction | 6 issues for a variety of platforms. See README for the general instruction |
7 manual. | 7 manual. |
8 | 8 |
9 1) Linux on x86 | 9 1) Linux on x86 |
10 --------------- | 10 --------------- |
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
157 You're on your own. On POSIX-compliant systems, you may be able to compile and | 157 You're on your own. On POSIX-compliant systems, you may be able to compile and |
158 run the fuzzer; and the LLVM mode may offer a way to instrument non-x86 code. | 158 run the fuzzer; and the LLVM mode may offer a way to instrument non-x86 code. |
159 | 159 |
160 The fuzzer will not run on Windows. It will also not work under Cygwin. It | 160 The fuzzer will not run on Windows. It will also not work under Cygwin. It |
161 could be ported to the latter platform fairly easily, but it's a pretty bad | 161 could be ported to the latter platform fairly easily, but it's a pretty bad |
162 idea, because Cygwin is extremely slow. It makes much more sense to use | 162 idea, because Cygwin is extremely slow. It makes much more sense to use |
163 VirtualBox or so to run a hardware-accelerated Linux VM; it will run around | 163 VirtualBox or so to run a hardware-accelerated Linux VM; it will run around |
164 20x faster or so. If you have a *really* compelling use case for Cygwin, let | 164 20x faster or so. If you have a *really* compelling use case for Cygwin, let |
165 me know. | 165 me know. |
166 | 166 |
167 Although Android on x86 should theoretically work, the stock kernel has SHM | 167 Although Android on x86 should theoretically work, the stock kernel may have |
168 support compiled out, so you will need to address this issue first. It's | 168 SHM support compiled out, and if so, you may have to address that issue first. |
169 possible that all you need is this: | 169 It's possible that all you need is this workaround: |
170 | 170 |
171 https://github.com/pelya/android-shmem | 171 https://github.com/pelya/android-shmem |
| 172 |
| 173 Joshua J. Drake notes that the Android linker adds a shim that automatically |
| 174 intercepts SIGSEGV and related signals. To fix this issue and be able to see |
| 175 crashes, you need to put this at the beginning of the fuzzed program: |
| 176 |
| 177 signal(SIGILL, SIG_DFL); |
| 178 signal(SIGABRT, SIG_DFL); |
| 179 signal(SIGBUS, SIG_DFL); |
| 180 signal(SIGFPE, SIG_DFL); |
| 181 signal(SIGSEGV, SIG_DFL); |
| 182 |
| 183 You may need to #include <signal.h> first. |
OLD | NEW |