Re: freshly built wx86cl64.exe crashes on start
Tim McNerney <[email protected]>
| Newsgroups | gmane.lisp.openmcl.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi Bharat, Most CCL code is relocatable, but there are resources, including tables and low-level code, that /must/ be at fixed locations in low memory. Matt Emerson is right on this point. There is little to debate here. I believe the ASLR feature can be disabled on a per-executable basis. This way most of the apps can stay secure from malware while at the same time supporting allowing legacy code to run on newer Microsoft operating systems, unmodified. I don't know if ASLR can be disabled using an environment variable or file properties or whether you have to call a routine at startup. This is well worth researching. --Tim On 1/6/23 7:44 PM, Bharat Shetty wrote: > If someone can run ccl with these settings disabled > > * Mandatory ASLR (force randomisation for images - force relocation > of images not compiled with Bottom-up ASLR ) > * Randomise memory allocation (Bottom-up ASLR) > * High Entropy ASLR > > You should be able to run ccl for some more time on windows 10. > Unfortunately I cannot meddle with these currently in my setup. But > then it is just a matter of time before these behaviours may change. > More and more the anti virus and anti malware software are insisting > you enable these. > > There are multiple things involved here but the main thing is we can > longer assume fixed locations for various sections. The code will have > to be made relocatable. Besides this we have to investigate and ensure > there are no issues related to (improper usage of) executable stack, > making heap executable using malloc/brk/sbrk. ccl does not seem to do > this. However I do not understand the ccl code fully to be sure > there are no more issues. > > Regards, > Bharat > > On Sat, Jan 7, 2023 at 3:51 AM R. Matthew Emerson <[email protected]> wrote: > > > > > On Jan 6, 2023, at 2:01 PM, Bharat Shetty <[email protected]> wrote: > > > > Is there some place we can get more details on the start up > code/low address stuff in lisp-kernel, LAP, level-0 etc.? The info > in the current and old ccl manual at trac is bit high level. > > I think it would be best to figure out how to tell Windows to stop > applying its disruptive protection settings rather than expend a > lot of effort researching and possibly making a big CCL change > that will, at best, result in the status quo but slightly worse. > > I think it’s reasonable for a process to want to have control over > its address space. I would be surprised if Windows stops allowing > that. > > > > On Thu, Jan 5, 2023 at 2:03 PM Bharat Shetty <[email protected]> > wrote: > > Unfortunately yes in low memory for now. But as I pointed > earlier there might be issues with heap locations as well (windows > handling FTH). > > > > Regards, > > Bharat > > > > On Thu, Jan 5, 2023 at 5:27 AM R. Matthew Emerson <[email protected]> > wrote: > > > > > > > On Jan 4, 2023, at 3:15 PM, Bharat Shetty <[email protected]> > wrote: > > > > > > Since two days wx86cl64.exe has been behaving erratically > (both the version i downloaded and built using gccv4.7.1) it has > been crashing randomly at startup and emacs is unable to start it > with slime. I suspect this might be to do with some security > patches installed. > > > > > > So I looked into the windows security controls. Turns out > windows defender lets us configure "exploit protection setting" by > configuring the following parameters > > > • > > > control flow guard CFG > > > • Data Execution Prevention DEP > > > • Mandatory ASLR (force randomisation for images - force > relocation of images not compiled with Bottom-up ASLR ) -- off by > default for now > > > • Randomise memory allocation (Bottom-up ASLR) -- on by > default > > > • High Entropy ASLR - needs Bottom-up ASLR to be ON > > > • validate execution chains (SEHOP) > > > • validate heap integrity - terminate process when heap > corruption os detected > > > > > > I observed we can get wxcl8664 to run with 'Mandatory ASLR' > and 'High Entropy ASLR' turned off and with all other options > enabled. So even if gcc were to enable us to build non PIE > position independant executable, it is just a matter of time > before no-pie apps and ccl stops running on windows. > > > > > > The only way we can keep ccl running is making the code > relocatable (PIE) at the earliest. The bright spot is it still > runs on linux :) > > > > The x86 port of CCL uses absolute addresses to reference code > and other data in low memory. Is this what the problem is? > > > > Changing that would be a big hassle. > > >