mirror of
https://github.com/veracrypt/VeraCrypt.git
synced 2025-11-11 11:08:02 -06:00
Windows Bootloader: pass correct compressed data size to decompressor and use shorter string to keep a valid memory layout for boot sector.
This commit is contained in:
@@ -106,7 +106,7 @@ non_backup:
|
|||||||
call checksum
|
call checksum
|
||||||
|
|
||||||
; Verify checksum
|
; Verify checksum
|
||||||
cmp ebx, dword ptr [start + TC_BOOT_SECTOR_LOADER_CHECKSUM_OFFSET]
|
cmp ebx, dword ptr [start + TC_BOOT_SECTOR_LOADER_CHECKSUM_OFFSET]
|
||||||
je checksum_ok
|
je checksum_ok
|
||||||
|
|
||||||
; Checksum incorrect - try using backup if available
|
; Checksum incorrect - try using backup if available
|
||||||
@@ -139,6 +139,7 @@ checksum_ok:
|
|||||||
|
|
||||||
; Decompress boot loader
|
; Decompress boot loader
|
||||||
mov cx, word ptr [start + TC_BOOT_SECTOR_LOADER_LENGTH_OFFSET]
|
mov cx, word ptr [start + TC_BOOT_SECTOR_LOADER_LENGTH_OFFSET]
|
||||||
|
sub cx, TC_GZIP_HEADER_SIZE
|
||||||
push cx ; Compressed data size
|
push cx ; Compressed data size
|
||||||
push TC_BOOT_LOADER_COMPRESSED_BUFFER_OFFSET + TC_GZIP_HEADER_SIZE ; Compressed data
|
push TC_BOOT_LOADER_COMPRESSED_BUFFER_OFFSET + TC_GZIP_HEADER_SIZE ; Compressed data
|
||||||
push TC_MAX_BOOT_LOADER_DECOMPRESSED_SIZE ; Output buffer size
|
push TC_MAX_BOOT_LOADER_DECOMPRESSED_SIZE ; Output buffer size
|
||||||
@@ -234,7 +235,7 @@ checksum:
|
|||||||
backup_loader_used db 0
|
backup_loader_used db 0
|
||||||
|
|
||||||
disk_error_msg db 'Disk error', 13, 10, 7, 0
|
disk_error_msg db 'Disk error', 13, 10, 7, 0
|
||||||
loader_damaged_msg db 7, 'Loader damaged! Use Rescue Disk: Repair Options > Restore', 0
|
loader_damaged_msg db 7, 'Loader damaged! Repair with Rescue Disk', 0
|
||||||
|
|
||||||
ORG 7C00h + 510
|
ORG 7C00h + 510
|
||||||
dw 0AA55h ; Boot sector signature
|
dw 0AA55h ; Boot sector signature
|
||||||
|
|||||||
Reference in New Issue
Block a user