[Bug 37585] 64-bit Chromium browser engine with native API sandboxing/ hooking scheme fails if 64-bit ntdll.dll.so is not mapped at desired fixed address (Google Chrome 38+ crashes with WinVer <= Vista)

wine-bugs at winehq.org wine-bugs at winehq.org
Mon Mar 11 05:40:42 CDT 2019


https://bugs.winehq.org/show_bug.cgi?id=37585

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
      Fixed by SHA1|                            |1df3955467edb13c1cf6929ac55
                   |                            |f29fd91b0eecc
         Resolution|---                         |FIXED
                URL|https://dl.google.com/dl/ch |https://web.archive.org/web
                   |rome/install/googlechromest |/20151209125613/https://dl.
                   |andaloneenterprise64.msi    |google.com/dl/chrome/instal
                   |                            |l/googlechromestandaloneent
                   |                            |erprise64.msi
            Summary|64-bit Chromium browser     |64-bit Chromium browser
                   |engine with native API      |engine with native API
                   |sandboxing/hooking scheme   |sandboxing/hooking scheme
                   |fails if 64-bit             |fails if 64-bit
                   |ntdll.dll.so is not mapped  |ntdll.dll.so is not mapped
                   |at desired fixed address    |at desired fixed address
                   |(Google Chrome 38+ crashes) |(Google Chrome 38+ crashes
                   |                            |with WinVer <= Vista)

--- Comment #15 from Anastasius Focht <focht at gmx.net> ---
Hello folks,

revisiting. This was actually mitigated/fixed by a change from Alexandre which
aimed to solve a different problem:
https://source.winehq.org/git/wine.git/commitdiff/1df3955467edb13c1cf6929ac55f29fd91b0eecc
("makefiles: Move the main loader base address to cope with huge page
alignment.").

-> wine-1.9.10

--- snip ---
$ pwd
/home/focht/.wine/drive_c/Program Files (x86)/Google/Chrome/Application

$  WINEDEBUG=+tid,+seh,+relay,+server,+virtual,+module wine64 ./chrome.exe
>>log.txt 2>&1
...
0045:Call KERNEL32.VirtualAllocEx(00000454,00000000,0000006c,00001000,00000004)
ret=140048eb7
0045:trace:virtual:NtAllocateVirtualMemory 0x454 (nil) 0000006c 1000 00000004
0045: queue_apc( handle=0454,
call={APC_VIRTUAL_ALLOC,addr==00000000,size=0000006c,zero_bits=0,op_type=1000,prot=4}
)
0066: *wakeup* signaled=192
0045: queue_apc() = 0 { handle=0448, self=0 }
0066: select( flags=2, cookie=0022e404, timeout=1d4d7f43a8f0412 (-0.0017100),
prev_apc=0000, result={}, data={} )
0066: select() = USER_APC { timeout=1d4d7f43a8f0412 (-0.0017100),
call={APC_VIRTUAL_ALLOC,addr==00000000,size=0000006c,zero_bits=0,op_type=1000,prot=4},
apc_handle=0020 }
0045: select( flags=2, cookie=062cd774, timeout=infinite, prev_apc=0000,
result={}, data={WAIT_ALL,handles={0448}} )
0066:trace:virtual:NtAllocateVirtualMemory 0xffffffffffffffff (nil) 0000006c
1000 00000004
0045: select() = PENDING { timeout=infinite, call={APC_NONE}, apc_handle=0000 }
0066:trace:virtual:map_view got mem in reserved area 0x230000-0x231000
0066:trace:virtual:VIRTUAL_DumpView View: 0x230000 - 0x230fff (valloc)
0066:trace:virtual:VIRTUAL_DumpView       0x230000 - 0x230fff c-rw-
0066: select( flags=2, cookie=0022e404, timeout=1d4d7f43a8f0412 (-0.0017740),
prev_apc=0020, result={APC_VIRTUAL_ALLOC,status=0,addr=00230000,size=00001000},
data={} )
0045: *wakeup* signaled=0
0066: select() = PENDING { timeout=1d4d7f43a8f0412 (-0.0017740),
call={APC_NONE}, apc_handle=0000 }
0045: get_apc_result( handle=0448 )
0045: get_apc_result() = 0 {
result={APC_VIRTUAL_ALLOC,status=0,addr=00230000,size=00001000} }
0045:Ret  KERNEL32.VirtualAllocEx() retval=00230000 ret=140048eb7
0045:Call
KERNEL32.WriteProcessMemory(00000454,00230000,04993650,0000006c,062cdea0)
ret=140048edb
0045: write_process_memory( handle=0454, addr=00230000,
data={01,00,00,00,00,00,00,00,00,00,00,00,60,00,00,00,00,00,00,00,30,00,00,00,00,00,00,00,01,00,00,00,00,36,6b,00,65,00,72,00,6e,00,65,00,6c,00,33,00,32,00,2e,00,64,00,6c,00,6c,00,00,00,30,00,00,00,00,00,00,00,02,00,00,00,0e,00,00,00,f8,12,05,40,01,00,00,00,43,72,65,61,74,65,4e,61,6d,65,64,50,69,70,65,57,00,00,00,00,10,00,00,00}
)
0066: *signal* signal=19
0045: write_process_memory() = 0
0045:Ret  KERNEL32.WriteProcessMemory() retval=00000001 ret=140048edb
...
0045:Call
KERNEL32.ReadProcessMemory(00000454,7bc8daa0,062cdb50,00000020,062cdb80)
ret=1400519cc
0045: read_process_memory( handle=0454, addr=7bc8daa0 )
0066: *signal* signal=19
0045: read_process_memory() = 0 {
data={4c,89,4c,24,20,4c,89,44,24,18,48,89,54,24,10,48,89,4c,24,08,ba,64,00,03,00,48,8d,0d,e8,f9,12,00}
}
0045:Ret  KERNEL32.ReadProcessMemory() retval=00000001 ret=1400519cc
...
--- snip ---

Relevant part of 64-bit target process address space:

--- snip ---
...
7b400000-7b460000 r-xp 00000000 fd:03 21135270                          
/home/focht/projects/wine/mainline-install-x86_64/lib64/wine/kernel32.dll.so
7b460000-7b461000 rw-p 00000000 00:00 0 
7b461000-7b6db000 r-xp 00061000 fd:03 21135270                          
/home/focht/projects/wine/mainline-install-x86_64/lib64/wine/kernel32.dll.so
7b6db000-7b6dc000 ---p 002db000 fd:03 21135270                          
/home/focht/projects/wine/mainline-install-x86_64/lib64/wine/kernel32.dll.so
7b6dc000-7b6dd000 r--p 002db000 fd:03 21135270                          
/home/focht/projects/wine/mainline-install-x86_64/lib64/wine/kernel32.dll.so
7b6dd000-7b899000 rw-p 002dc000 fd:03 21135270                          
/home/focht/projects/wine/mainline-install-x86_64/lib64/wine/kernel32.dll.so
7bc00000-7bc80000 r-xp 00000000 fd:03 21135535                          
/home/focht/projects/wine/mainline-install-x86_64/lib64/wine/ntdll.dll.so
7bc80000-7bc81000 rw-p 00000000 00:00 0 
7bc81000-7bdb2000 r-xp 00081000 fd:03 21135535                          
/home/focht/projects/wine/mainline-install-x86_64/lib64/wine/ntdll.dll.so
7bdb2000-7bdb3000 r--p 001b1000 fd:03 21135535                          
/home/focht/projects/wine/mainline-install-x86_64/lib64/wine/ntdll.dll.so
7bdb3000-7bdbf000 rw-p 001b2000 fd:03 21135535                          
/home/focht/projects/wine/mainline-install-x86_64/lib64/wine/ntdll.dll.so
7bdbf000-7bdd2000 rw-p 00000000 00:00 0 
7c000000-7c002000 r-xp 00000000 fd:03 21269859                          
/home/focht/projects/wine/mainline-install-x86_64/bin/wine64
7c002000-7c003000 r--p 00001000 fd:03 21269859                          
/home/focht/projects/wine/mainline-install-x86_64/bin/wine64
7c003000-7c004000 rw-p 00002000 fd:03 21269859                          
/home/focht/projects/wine/mainline-install-x86_64/bin/wine64
7c400000-7c403000 r-xp 00200000 fd:03 21269886                          
/home/focht/projects/wine/mainline-install-x86_64/bin/wine64-preloader
7c603000-7c604000 rw-p 00203000 fd:03 21269886                          
/home/focht/projects/wine/mainline-install-x86_64/bin/wine64-preloader
7cef8000-7d0c7000 rw-p 00000000 00:00 0                                  [heap]
7ff00000-7ffe0000 ---p 00000000 00:00 0 
7ffe0000-7fff0000 rw-p 00000000 00:00 0 
140000000-140001000 r--p 00000000 fd:03 1723494                         
/home/focht/.wine/drive_c/Program Files
(x86)/Google/Chrome/Application/chrome.exe
140001000-14007b000 r-xp 00000000 00:00 0 
14007b000-140096000 r--p 00000000 00:00 0 
140096000-140099000 rw-p 00094000 fd:03 1723494                         
/home/focht/.wine/drive_c/Program Files
(x86)/Google/Chrome/Application/chrome.exe
140099000-14009d000 rw-p 00000000 00:00 0 
14009d000-1400a4000 r--p 00000000 00:00 0 
1400a4000-1400a5000 rw-p 00000000 00:00 0 
1400a5000-1400ca000 r--p 00000000 00:00 0 
180000000-180001000 r--p 00000000 fd:03 1723394                         
/home/focht/.wine/drive_c/Program Files
(x86)/Google/Chrome/Application/47.0.2526.80/chrome_elf.dll
180001000-180016000 r-xp 00000000 00:00 0 
180016000-180021000 r--p 00000000 00:00 0 
180021000-180026000 rw-p 00000000 00:00 0 
180026000-180028000 r--p 00000000 00:00 0 
180028000-180029000 r-xp 00022000 fd:03 1723394                         
/home/focht/.wine/drive_c/Program Files
(x86)/Google/Chrome/Application/47.0.2526.80/chrome_elf.dll
180029000-18002a000 r-xp 00000000 00:00 0 
18002a000-18002c000 r--p 00000000 00:00 0 
...
--- snip ---

$ sha1sum googlechromestandaloneenterprise64.msi
0c0e2b96bf56dadfe603930956b7165621fa44a0 
googlechromestandaloneenterprise64.msi

$ du -sh googlechromestandaloneenterprise64.msi
50M    googlechromestandaloneenterprise64.msi

$ wine --version
wine-4.3-229-g6d82b2f1ad

Regards

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.


More information about the wine-bugs mailing list