Jump to content


TuMaGoNx

Recommended Posts


@FranceBB

at least Win2000 src leaked, in my disk most of source code are in july 2000. But for project like this I prefer released as open source (can't trust anyone who modify system functionality) so Wine is good candidate.

MSVCRT. those *_s are secure API came from VC 2005 I think and since then Vista and later have by default (in their msvcrt.dll). If you see how WDK7 works this special VC++ compiler only linked to system CRT and support multiple version of Windows by adding missing API via appended obj files (msvcrt_winxp.obj) during linking. XP of course based around version 7 (at least that's what MinGW says)

 

BTW I found "missing" XP API update which I posted here http://opensourcepack.blogspot.com/2016/10/where-to-find-wssapi-backport-for-xp.html
I think many overlooked it in 2009 (at least no updatepack contain it, maybe for legal reason)

 

In Wine case, thing like ETW*, Event* or telemetry (those diagnostic stuff) simply dummied as their are not part of Apps functionality (just declare function as is and return "done")

 

Link to comment
Share on other sites

@TuMaGoNx... I'll take a look at your code on GitHub next week (I'm kinda busy at work, right now) and I'll let you know.

I'm kinda curious about your own implementation now. ;)

@dibya... go ahead that way, but take a look to his project as well, as we may be able to collaborate all together, which would be awesome. ;)

Link to comment
Share on other sites

For me it doesn't matter "how to do it" but everything should be transparent and documented (including codecave), reviewable by peers and users. It's all about trust.
In my way user had to know that they agree to take action and consequence (they actually the one who "patch" it).

Me too literally grow with XP (heck, even internet cafe here still use XP+deepfreeze as defacto standard).
XP also the only major OS that will operate happily being completely offline.

Link to comment
Share on other sites

@Dibya
In my case, GetVersion issue will meant it need intercepted instead of forwarded directly. Then we could lookup says registry settings whether an apps need to be tricked or not, thus conditionally set version. Because the function is not always a blocker, for ex. it could determine if DWMAPI enabled by default or not (windows > 8) and other case.

Link to comment
Share on other sites

@TuMaGoNx Best of Luck .

I failed for long with opera and crome newer version.

will you see that if you can make them work.

I have seen your todo list . Dont forget to add all kmt patches in your wind3d

A custom rightclick /left click header version patcher may be helpful.

I Suggest you to see Oldcigarates wrapper pack.  You can avoid changing import to kernelXP by using oldcigarates great invention. Please also see KDW by BWC that also awesome.

My ExtendedXP also prevent showing not a valid win32 applications.

Edited by Dibya
Link to comment
Share on other sites

@Dibya

Thanks a lot! I admit at first I'm baffled by this https://www.ethicalhacker.net/columns/heffner/intercepted-windows-hacking-via-dll-redirection
Make me wondering why XP attempts of that route (wrapper) has been few (sorry if I missed) considering it is much more popular than win2k, is there any particular roadblock other than "there would never be a perfect functional wrapper" in the sense that even wine get crashed a lot? though I never envisioned to see it works beyond the trivial cases.

Whats your reason not to choose that route?

Link to comment
Share on other sites

"you can still make the project open source if you just post the code for the implemented functions and scripts that can patch in the functions on an existing XP system"
tspatcher and uxtheme realtime patcher are open source too. I rather confused to read the topic title: compatibility *layer*, I thought we have same goal and way at first

about opera/chrome: how you could be certain about "adding" unported feature such D3D11 and MediaFoundation? I'm no ASM guy though...

Edited by TuMaGoNx
Link to comment
Share on other sites

D3D11 ain't a big deal 'cause both Direct X 10 and 11 have been backported to XP already. As to the WMF (Windows Media Foundation), this may be a problem, as it has been introduced in Vista to replace DirectShow APIs, like ACM and VfW... Besides, it has its own process/service called MMCSS to handle the amount of resources to dedicate to audio/video operations... this may be a pain in the butt to backport...

Link to comment
Share on other sites

@Dibya: I think targeting "fast paced" technology such Browser is impossible... it's always employ cutting-edge ones (virtualization, memory management, MT) thats beyond XP scope. If any it would be more and more "disabled features" if it allowed to run on XP.

BTW I think I'd abandon patchless idea.. hooksubsystem itself is hackish and might be restrictive, I can't use redirection manifest either as having another "kernel32.dll" often trigger DEP. Not to mention I get chicken-egg situation as my dll (the xp kernel32 part) is just forwarder not even wrapper, the redirection manifest would meant any dependencies (dll) would call the fake kernel instead of just the executable.

Link to comment
Share on other sites

@Dibya: "it is easier to patch known dll system" I've read the registry, to me this is as hackish as hooksubsystem :) (with system-wide consequence) I don't want to touch the system as much as possible. It's more "normal" to me to patch to target apps as I didn't aim non-trivial purpose with the shims. Just for those apps that "miscompiled" without XP support enabled in VC++ and those that "artificially" drop XP by using few missing APIs.

"Crome based browser are blocked in xp , I have run crome and opera with xp compability settings same error shown under 8.1." You should just download and read the chrome source code rather than "probing" what happened underneath. It's quite clear what's the new features and requirement. So what if you could run few version of it, as I said browser evolve quickly with hundreds of developer backing up.

Edited by TuMaGoNx
Link to comment
Share on other sites

@TuMaGoNx... as to chrome, we downloaded the source code and we have been "studying" it as well; it's not what they added, but what they removed instead... when they released the new version which didn't care about XP and Vista, they removed significant parts of code related to XP, trying to make the code more light and simple... As to the system, something automated would be better, as Dibya said. That's mainly because, even though you are going to "touch" the system, it's gonna be a way easier for users... We are familiar with CFF Explorer, IDA Pro, Dependency Walker etc and that's fine, but many people here don't even know how to recompile a program... if you release something that needs users to do certain things, many of them won't be able to use it, or may just give up using it... After all, people should be able to use an OS, without knowing certain things... that's why BWC released what he released...

Anyway, that's my opinion, but feel free to keep working on your idea as we need different implementations ;) Just... "keep It simple". :)

Link to comment
Share on other sites

sorry I didn't meant belittle your works and spirit, me myself have experience to keep webkitgtk port available on win32 but with every minor version come up with huge changes, new API and refactors. Something that one silly men like me very easy to get lost... and eventually given up. of course you might be good enough to make it. who knows.

"Then create a automated patcher at last . I dont think people will be happy in carrying cff or hxd."
I use can only open source apps with open source project. I use gsar to replace string in binary, at the moment the mass-patcher (without signature unsginer) and dlls should be under 64KB compressed. not yet make 7sfx installer..

https://en.wikipedia.org/wiki/Google_Chrome_version_history
I can't say they into removing stuff than adding stuff, the fact that you're still at version 50 show that you do face difficulties.

As part of development cycle of course they would remove "redundant" code, to keep on track and freed the roadblock (that's XP support) to implement something "better". That's normal, like the move on MediaFoundation have you thought about it? how you backport it? This is what I immediately see about the current of Chrome: they "really" are moving away, fast. It's true that new features doesn't always meant new requirement Firefox for ex. are hanging on XP partly because they have netscape legacy codebase. But chrome is exception, this thing is so wild to begin with.

https://en.wikipedia.org/wiki/Backporting
Just realize it now, gotta to change my project desc. Oops.. example of backport is: WIC, WSSAPI, RSAENH, PowerShell and so on. What we do is extending OS.

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