@@ -282,71 +282,6 @@ $ ./honggfuzz/honggfuzz --exit_upon_crash --quiet --timeout 4 -n 1 -Q \
282
282
-debug
283
283
` ` `
284
284
285
- # Fuzzing Bitcoin Core using Eclipser (v1.x)
286
-
287
- # # Quickstart guide
288
-
289
- To quickly get started fuzzing Bitcoin Core using [Eclipser v1.x](https://github.com/SoftSec-KAIST/Eclipser/tree/v1.x):
290
-
291
- ` ` ` sh
292
- $ git clone https://github.com/bitcoin/bitcoin
293
- $ cd bitcoin/
294
- $ sudo vim /etc/apt/sources.list # Uncomment the lines starting with 'deb-src'.
295
- $ sudo apt-get update
296
- $ sudo apt-get build-dep qemu
297
- $ sudo apt-get install libtool libtool-bin wget automake autoconf bison gdb
298
- ` ` `
299
-
300
- At this point, you must install the .NET core. The process differs, depending on your Linux distribution.
301
- See [this link](https://learn.microsoft.com/en-us/dotnet/core/install/linux) for details.
302
- On Ubuntu 20.04, the following should work:
303
-
304
- ` ` ` sh
305
- $ wget -q https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb
306
- $ sudo dpkg -i packages-microsoft-prod.deb
307
- $ rm packages-microsoft-prod.deb
308
- $ sudo apt-get update
309
- $ sudo apt-get install -y dotnet-sdk-2.1
310
- ` ` `
311
-
312
- You will also want to make sure Python is installed as ` python` for the Eclipser install to succeed.
313
-
314
- ` ` ` sh
315
- $ git clone https://github.com/SoftSec-KAIST/Eclipser.git
316
- $ cd Eclipser
317
- $ git checkout v1.x
318
- $ make
319
- $ cd ..
320
- $ cmake -B build_fuzz -DBUILD_FOR_FUZZING=ON
321
- $ mkdir -p outputs/
322
- $ FUZZ=bech32 dotnet ./Eclipser/build/Eclipser.dll fuzz -p build_fuzz/src/test/fuzz/fuzz -t 36000 -o outputs --src stdin
323
- ` ` `
324
-
325
- This will perform 10 hours of fuzzing.
326
-
327
- To make further use of the inputs generated by Eclipser, you
328
- must first decode them:
329
-
330
- ` ` ` sh
331
- $ dotnet Eclipser/build/Eclipser.dll decode -i outputs/testcase -o decoded_outputs
332
- ` ` `
333
- This will place raw inputs in the directory ` decoded_outputs/decoded_stdins` . Crashes are in the ` outputs/crashes` directory, and must
334
- be decoded in the same way.
335
-
336
- Fuzzing with Eclipser will likely be much more effective if using an existing corpus:
337
-
338
- ` ` ` sh
339
- $ git clone https://github.com/bitcoin-core/qa-assets
340
- $ FUZZ=bech32 dotnet Eclipser/build/Eclipser.dll fuzz -p build_fuzz/src/test/fuzz/fuzz -t 36000 -i qa-assets/fuzz_corpora/bech32 outputs --src stdin
341
- ` ` `
342
-
343
- Note that fuzzing with Eclipser on certain targets (those that create ' full nodes' , e.g. ` process_message* ` ) will,
344
- for now, slowly fill ` /tmp/` with improperly cleaned-up files, which will cause spurious crashes.
345
- See [this proposed patch](https://github.com/bitcoin/bitcoin/pull/22472) for more information.
346
-
347
- Read the [Eclipser documentation for v1.x](https://github.com/SoftSec-KAIST/Eclipser/tree/v1.x) for more details on using Eclipser.
348
-
349
-
350
285
# OSS-Fuzz
351
286
352
287
Bitcoin Core participates in Google' s [OSS-Fuzz](https://github.com/google/oss-fuzz/tree/master/projects/bitcoin-core)
0 commit comments