Go to file
Pete Batard e7b66e7e4c
[mingw] use delay loading for DLLs that are subject to side loading
* This reverts much of commits f6ac559f4d and 1947266837
  so that we call the Windows APIs directly again, while ensuring that, by the time we load the DLLs,
  sideloading mitigation has already been applied by the application.
* This is a continuation of #1877, and should help prevent re-introducing side-loading issues when we
  link against new libraries, as well as allow us to drop some of the manual DLL hooking we've been
  doing to prevent it, to clean up the code.
* Note that this is a bit more complex than what the stackoverflow post suggests, because we need to
  create delayloaded libs for both 32-bit and 64-bit, which use a different calling convention and
  therefore need to use different .def files. So there's a lot of gymkhana involved, with Makefiles
  and whatnot, to get us there.
* Also simplify the use of CM_Get_DevNode_Registry_PropertyA() in dev.c since recent versions of
  MinGW now have support for it.
* Also fix 2 small issues in net.c (potential overflow) and format.c (memory leak).
2022-04-12 11:09:59 +01:00
.github [net] add fallback to InternetGetConnectedState() when INetworkListManager service dependencies are missing 2022-02-18 17:18:34 +00:00
.mingw [mingw] use delay loading for DLLs that are subject to side loading 2022-04-12 11:09:59 +01:00
.vs [mingw] use delay loading for DLLs that are subject to side loading 2022-04-12 11:09:59 +01:00
res [mingw] use delay loading for DLLs that are subject to side loading 2022-04-12 11:09:59 +01:00
src [mingw] use delay loading for DLLs that are subject to side loading 2022-04-12 11:09:59 +01:00
.gitattributes [misc] fix GitHub Actions' MinGW compilation 2022-01-05 12:51:29 +00:00
.gitignore [loc] remove Azerbaijani translation 2019-07-10 11:49:52 +01:00
ChangeLog.txt v3.18 (Build 1877) 2022-03-11 16:51:59 +00:00
LICENSE.txt [misc] refactoring and cleanup - part 2 2013-01-25 01:56:28 +00:00
Makefile.am [loc] update French translation 2021-03-31 16:38:09 +01:00
Makefile.in [mingw] use delay loading for DLLs that are subject to side loading 2022-04-12 11:09:59 +01:00
README.md [misc] forget CodeQL until they fix VS2022 support 2021-11-16 18:44:43 +00:00
SECURITY.md [misc] add SECURITY.md file 2021-09-04 01:39:48 +01:00
_chver.sh [appstore] revert to using a script to build AppStore bundle 2021-10-27 09:47:27 +01:00
_coverity.cmd [misc] fix Coverity warnings 2020-06-19 10:53:40 +01:00
_detect-amend.sh [misc] fix dos_locale.c warning 2019-11-25 17:39:56 +00:00
_pre-commit.sh [appstore] revert to using a script to build AppStore bundle 2021-10-27 09:47:27 +01:00
_release.sh [misc] move appx generation to Makefile 2017-05-09 10:54:13 +01:00
_set_git_hooks.sh [internal] update hooks to remove automated tagging 2018-10-19 14:36:48 +01:00
_sign.cmd [misc] update copyright year 2022-01-09 15:02:50 +00:00
aclocal.m4 [misc] update autotools support files 2021-03-25 23:57:34 +00:00
bootstrap.sh [misc] Linux cross compilation fixes 2016-11-11 11:58:05 +00:00
compile [misc] update MinGW build chain for msys2 2014-12-15 18:42:21 +00:00
configure [mingw] use delay loading for DLLs that are subject to side loading 2022-04-12 11:09:59 +01:00
configure.ac [mingw] use delay loading for DLLs that are subject to side loading 2022-04-12 11:09:59 +01:00
install-sh [misc] fix GitHub Actions' MinGW compilation 2022-01-05 12:51:29 +00:00
missing [misc] update MinGW build chain for msys2 2014-12-15 18:42:21 +00:00
rufus.sln [appstore] use a separate solution for App packaging 2021-02-07 20:19:53 +00:00

README.md

Rufus: The Reliable USB Formatting Utility

VS2022 Build Status MinGW Build Status Coverity Scan Status
Latest Release Licence Download Stats Contributors

Rufus logo

Rufus is a utility that helps format and create bootable USB flash drives.

Features

  • Format USB, flash card and virtual drives to FAT/FAT32/NTFS/UDF/exFAT/ReFS/ext2/ext3
  • Create DOS bootable USB drives, using FreeDOS or MS-DOS (Windows 8.1 or earlier)
  • Create BIOS or UEFI bootable drives, including UEFI bootable NTFS
  • Create bootable drives from bootable ISOs (Windows, Linux, etc.)
  • Create bootable drives from bootable disk images, including compressed ones
  • Create Windows 11 installation drives for PCs that don't have TPM
  • Create Windows To Go drives
  • Create persistent Linux partitions
  • Create VHD/DD images of a drive
  • Compute MD5, SHA-1, SHA-256 and SHA-512 checksums of the selected image
  • Perform bad blocks checks, including detection of "fake" flash drives
  • Download official Microsoft Windows 7, Windows 8, Windows 10 or Windows 11 retail ISOs
  • Download UEFI Shell ISOs
  • Modern and familiar UI, with 38 languages natively supported
  • Small footprint. No installation required.
  • Portable. Secure Boot compatible.
  • 100% Free Software (GPL v3)

Compilation

Use either Visual Studio 2022 or MinGW and then invoke the .sln or configure/make respectively.

Visual Studio

Rufus is an OSI compliant Open Source project. You are entitled to download and use the freely available Visual Studio Community Edition to build, run or develop for Rufus. As per the Visual Studio Community Edition license, this applies regardless of whether you are an individual or a corporate user.

Additional information

Rufus provides extensive information about what it is doing, either through its easily accessible log, or through the Windows debug facility.

Enhancements/Bugs

Please use the GitHub issue tracker for reporting problems or suggesting new features.