Jump to content

Firefox 24 - 52 for ME and 98


Recommended Posts

1 hour ago, schwups said:

I'm not aware of unicows 4018.

It is version 1.0.4018.0. 1.1.3790.0 is not really a problem especially with Jumper's KEX but having the LdrUnLoadDll in UNICOWS, which will try to load on many occasions, is something we did not need to have. Use DW to see it try and load or use a HEX editor to find the delay load string.

https://www.dlldump.com/download-dll-files_new.php/dllfiles/U/unicows.dll/1.0.4018.0/download.html

Edited by Goodmaneuver
Link to comment
Share on other sites


6 hours ago, Goodmaneuver said:

The latest UNICOWS is not real friendly with WinME and is designed for other OS with the delay loaded Ldr functions. 4018 has all of the latest APIs without LdrUnloadDll and LdrLoadDll. So I use 4018 without any issues.

It sometimes takes a little time, I do have a faint memory now. These are stubbed in Kexbases. Now I want to get back to Firefox.

Link to comment
Share on other sites

17 hours ago, jumper said:

Try cloning kstub825.dll. Use Kexports on Avrt.dll to get a list of exports to use for definitions. Put the new Avrt files in Windows\System so KernelEx will work on it.

I copied the two files (Avrunt.dll (kstub825.dll), Avrunt.DLL.ini) into the system folder and added Avrunt to core.ini [BASE]
contents. Renamed Avrunt.DLL.ini to Avrunt.ini. On restart KernelEx didn't work.

Avrt.dll.ini is a simple export list. Is there somthing to edit/define from my side or does KernelEx can handle it as it is?

;-- C:\WINDOWS\SYSTEM\AVRT.DLL --;

Exports
 AvQuerySystemResponsiveness
 AvRevertMmThreadCharacteristics
 AvRtCreateThreadOrderingGroup
 AvRtCreateThreadOrderingGroupExA
 AvRtCreateThreadOrderingGroupExW
 AvRtDeleteThreadOrderingGroup
 AvRtJoinThreadOrderingGroup
 AvRtLeaveThreadOrderingGroup
 AvRtWaitOnThreadOrderingGroup
 AvSetMmMaxThreadCharacteristicsA
 AvSetMmMaxThreadCharacteristicsW
 AvSetMmThreadCharacteristicsA
 AvSetMmThreadCharacteristicsW
 AvSetMmThreadPriority

Edited by schwups
Link to comment
Share on other sites

Change:

9 hours ago, schwups said:

;-- C:\WINDOWS\SYSTEM\AVRT.DLL --;

Exports

[AVRT.DLL]

Then add "..\system\avrt.dll" to Contents=

Might be simpler to use the KnownDLLs / LZ32 method with avrt.dll in KernelEx folder.

 

Link to comment
Share on other sites

On 5/6/2023 at 9:13 AM, Goodmaneuver said:

[KERNEL32]
GetParentLocaleLCID=>NLSDL:DownlevelGetParentLocaleLCID
GetParentLocaleName=>NLSDL:DownlevelGetParentLocaleName
LCIDToLocaleName=>NLSDL:DownlevelLCIDToLocaleName
LocaleNameToLCID=>NLSDL:DownlevelLocaleNameToLCID

I tried LCIDToLocaleName=>NLSDL:DownlevelLCIDToLocaleName and LocaleNameToLCID=>NLSDL:DownlevelLocaleNameToLCID. The second produced an error in Kernel32 after browser close, that I could simply click away. So I'm back to z2e.

 

Link to comment
Share on other sites

I think I am very close to run Firefox 54. Avrt.dll BWC used. Test version now Firefox nightly of 16th Feb crashes on start. DW profiling gives an exception:

First chance exception 0x406D1388 (Thread was named) occurred in "XUL.DLL" at address 0x0378AF59 by thread 0xFFCDF307 "JS Helper".

This happened by some threads. I found with Procwin in xul at the address 0x0378AF59 "RaiseException". (supported by Kernel32))

There's no second exception.

Firefox crashlog gives as reason "MozCrashReason=MOZ_CRASH(Attempt to construct a semaphore from an invalid handle!)"

Another App-killer can be a message "couldn't load broker services".

Link to comment
Share on other sites

6 hours ago, schwups said:

I tried LCIDToLocaleName=>NLSDL:DownlevelLCIDToLocaleName and LocaleNameToLCID=>NLSDL:DownlevelLocaleNameToLCID. The second produced an error in Kernel32 after browser close, that I could simply click away

Contrary to what has been said you need to restart your machine when making changes to Kstubs. What you do is your preferential business but there should have not been a problem. I would have written up all the redirects to NLSDL and then restarted the machine before testing. The restart is essential and the other NLSDL APIs will get used.

Link to comment
Share on other sites

8 hours ago, Goodmaneuver said:

you need to restart your machine when making changes to Kstubs

Not if only definitions are changed. Then only the app needs to be restarted so Kexstubs will reload the new definitions. If the set of api's hasn't changed, there is no reason to restart KernelEx. But it certainly won't hurt if you choose to do so. 

 

Link to comment
Share on other sites

20 minutes ago, jumper said:

Not if only definitions are changed. Then only the app needs to be restarted so Kexstubs will reload the new definitions. If the set of api's hasn't changed, there is no reason to restart KernelEx

It does not work for me when changing redirection definitions but it might work for just stubbing. I do not know about the latter.

Link to comment
Share on other sites

If the app is multiprocess, all processes must be terminated. Firefox54 and other browsers might be. Check with a process viewer and try logging out.

Does logging show the new definition, the old, or the wrong api entirely?

 

Link to comment
Share on other sites

I just checked LocaleNameToLCID=>NLSDL:DownlevelLocaleNameToLCID with reboot. Unfortunately, I didn't even have the GUI of the browsers I use every day. So I'm back to z2e for now. Other than that, I didn't do any further testing today.

Link to comment
Share on other sites

6 hours ago, schwups said:

I just checked LocaleNameToLCID=>NLSDL:DownlevelLocaleNameToLCID with reboot

Your browsers will want to go back and forth with both LocaleNameToLCID and LCIDToLocaleName so just doing one API is not a good test. It is good you have a solution though.

 

10 hours ago, jumper said:

If the app is multiprocess, all processes must be terminated.

Yes but most programs should exit correctly. Admittedly Explorer can keep some DLLs in RAM afterwards though like Quartz. With the introduction of KernelEx 4.5.2, it stopped freezing in FF4 to 9 to a great degree but it does not get cleaned up properly and that is a problem.

Edited by Goodmaneuver
Link to comment
Share on other sites

DW Profiling excerpt: If I had counted correctly the exception occurs 5 times after NLSDL.DLL.

DllMain(0x7FE80000, DLL_THREAD_ATTACH, 0x00000000) in "OLEAUT32.DLL" called by thread 0xE0B97701.
DllMain(0x7FE80000, DLL_THREAD_ATTACH, 0x00000000) in "OLEAUT32.DLL" returned 1 (0x1) by thread 0xE0B97701.
DllMain(0x00960000, DLL_THREAD_ATTACH, 0x00000000) in "AVRT.DLL" called by thread 0xE0B97701.
DllMain(0x00960000, DLL_THREAD_ATTACH, 0x00000000) in "AVRT.DLL" returned 1 (0x1) by thread 0xE0B97701.
DllMain(0x03130000, DLL_THREAD_ATTACH, 0x00000000) in "XUL.DLL" called by thread 0xE0B97701.
DllMain(0x03130000, DLL_THREAD_ATTACH, 0x00000000) in "XUL.DLL" returned 1 (0x1) by thread 0xE0B97701.
DllMain(0x7C340000, DLL_THREAD_ATTACH, 0x00000000) in "MSVCR71.DLL" called by thread 0xE0B97701.
DllMain(0x7C340000, DLL_THREAD_ATTACH, 0x00000000) in "MSVCR71.DLL" returned 1 (0x1) by thread 0xE0B97701.
DllMain(0x01FF0000, DLL_THREAD_ATTACH, 0x00000000) in "BLOCK.DLL" called by thread 0xE0B97701.
DllMain(0x01FF0000, DLL_THREAD_ATTACH, 0x00000000) in "BLOCK.DLL" returned 1 (0x1) by thread 0xE0B97701.
DllMain(0x7C140000, DLL_THREAD_ATTACH, 0x00000000) in "MFC71.DLL" called by thread 0xE0B97701.
DllMain(0x7C140000, DLL_THREAD_ATTACH, 0x00000000) in "MFC71.DLL" returned 1 (0x1) by thread 0xE0B97701.
DllMain(0x02000000, DLL_THREAD_ATTACH, 0x00000000) in "AVMUFC.DLL" called by thread 0xE0B97701.
DllMain(0x02000000, DLL_THREAD_ATTACH, 0x00000000) in "AVMUFC.DLL" returned 1 (0x1) by thread 0xE0B97701.
DllMain(0x009D0000, DLL_THREAD_ATTACH, 0x00000000) in "SARAH.DLL" called by thread 0xE0B97701.
DllMain(0x009D0000, DLL_THREAD_ATTACH, 0x00000000) in "SARAH.DLL" returned 1 (0x1) by thread 0xE0B97701.
DllMain(0x009F0000, DLL_THREAD_ATTACH, 0x00000000) in "NLSDL.DLL" called by thread 0xE0B97701.
DllMain(0x009F0000, DLL_THREAD_ATTACH, 0x00000000) in "NLSDL.DLL" returned 1 (0x1) by thread 0xE0B97701.
First chance exception 0x406D1388 (Thread was named) occurred in "XUL.DLL" at address 0x0378AF59 by thread 0xE0B97701 "JS Helper".

18 hours ago, Goodmaneuver said:

Your browsers will want to go back and forth with both LocaleNameToLCID and LCIDToLocaleName so just doing one API is not a good test. It is good you have a solution though.

Yes, the had tested both together. Only LocaleNameToLCID >NLSDL:DownlevelLocaleNameToLCID produces the problem. Apparently z2e is also not a solution to fix this exception, assuming that this is, where the error comes from. On FF 16th start, I see the window flash for a split second.

Basically the function LocaleNameToLCID=>NLSDL:DownlevelLocaleNameToLCID is very promising:

This function is used only by applications that run on pre-Windows Vista operating systems. Its use requires a download package. Applications that only run on Windows Vista and later should call LocaleNameToLCID to retrieve a locale identifier.

The two others GetParentLocaleLCID and GetParentLocaleName aren't called.

Multiprocessing and sandboxing is another trace. In the period of early 2017 was worked on the sandboxing feature: Electrolysis, Firefox's multi-process architecture, is the prerequisite for Firefox's sandboxing feature as it makes use of child processes to establish security boundaries. https://www.ghacks.net/2017/01/23/how-to-change-firefoxs-sandbox-security-level/. The message "couldn't load broker services" obviously refers to this. This message appears with Kex API logging and breaks FF54 start already shortly after loading XUL.

Environment variables like

SET MOZ_DISABLE_OOP_PLUGINS=1
SET MOZ_DISABLE_GMP_SANDBOX=1
SET MOZ_FORCE_DISABLE_E10S=1
SET MOZ_DISABLE_CONTENT_SANDBOX =1

don't seem to have an effect, because e10s is probably still blocked/disabled due to my insufficient system.

Generally, to be sure,  I have some prefs already set, too.

user_pref("browser.tabs.remote.autostart.", false);
user_pref("browser.tabs.remote.autostart.2", false);
user_pref("dom.ipc.processCount", 1);

...

 

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...