Go to file
Pete Batard f411d526d6
[misc] attempt to fix DLL address resolver for ARM64
* SymLoadModuleEx() on the DLL fails (with ERROR_SUCCESS, sic) on ARM64, so we have to resort
  to loading the DLL in memory and look for the "RSDS" section to access the GUID and Age.
* Except that, once you sort that, you end up with SymEnumSymbols() producing two separate
  addresses for each symbol, on account that the Windows 11 ARM64 DLLs are actually an
  unholy union of X64 and ARM64 *in the same binary*, under an abomination that Microsoft
  calls ARM64X (See https://learn.microsoft.com/en-us/windows/arm/arm64x-pe for details).
* And, of course, Microsoft did not provide any means during PDB enumeration to tell which
  address is for which arch. Especially, the bloody pSymInfo->TypeIndex, that they could
  easily have used for this, is utterly pointless as it remains set to 0...
* This means that, even after all this effort, we're still nowhere close to have a solution
  that can make DLL address resolution work on Windows 11 ARM64.
2023-07-05 22:25:25 +01:00
.github [iso] increase ISO → ESP limit for Debian 12 2023-06-05 13:29:18 +01:00
.mingw [iso] fix a crash when parsing Windows ISOs with MinGW x86_32 2023-07-02 13:15:51 +01:00
.vs [iso] fix a crash when parsing Windows ISOs with MinGW x86_32 2023-07-02 13:15:51 +01:00
res [misc] add an address resolver for internal DLL function calls 2023-07-05 18:36:58 +01:00
src [misc] attempt to fix DLL address resolver for ARM64 2023-07-05 22:25:25 +01:00
.gitattributes [internal] add pull_request_template.md and update issue_template.md 2023-01-13 21:45:50 +00:00
.gitignore [efi] update UEFI:NTFS's NTFS drivers to latest 2023-05-26 12:17:52 +01:00
ChangeLog.txt [iso] increase ISO → ESP limit for Debian 12 2023-06-05 13:29:18 +01: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 Rufus 4.1 (Build 2045) 2023-05-31 18:24:46 +01: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 [iso] increase ISO → ESP limit for Debian 12 2023-06-05 13:29:18 +01:00
configure.ac [iso] increase ISO → ESP limit for Debian 12 2023-06-05 13:29:18 +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
  • 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 or Secure Boot
  • 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
  • Improve Windows installation experience by automatically setting up OOBE parameters (local account, privacy options, etc.)
  • Perform bad blocks checks, including detection of "fake" flash drives
  • Download official Microsoft 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.