1
0
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:
Mounir IDRASSI
2015-09-12 23:46:56 +02:00
parent 89a7fad16d
commit 22152878f8

View File

@@ -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