Bypass WinSXS

Discussion in 'Windows Embedded' started by mraeryceos, Sep 11, 2011.

  1. mraeryceos

    mraeryceos MDL Novice

    Mar 12, 2011
    10
    1
    0
    This is what I would like to try if possible:

    Attempt installing bare system without some dependencies, by placing required files instead of installing components. Extract the files from the supposedly-required component cab files, and place these in windows\system32, or wherever they should go (find a way to read the folder structure from the CAT file: cat files are similar to inf files, that have been processed by makecat.exe)

    I was wondering if there is a way to read the information in the cat file, like a cat file viewer or something, or, extract a plain text file from the cat file with the component installation details. If registry entries are not important, and only the files are needed, then dll's and exe's could be placed in the PATH so they can be accessed by any application. I'm willing to go through DLL Hell rather than WinSXS hell.

    One thing I would like to know... if an executable contains a manifest, will the manifest be so strict that it will only work with a certain version of a dll file, or will the manifest or system policy allow the use of a different version dll if the exact version is not available?

    Is it possible to set up a manifest that tells the system to bypass winsxs? Is it possible to give the system less privileges than the administrator?

    I know it sounds like a lot of work and why would I even want to do this, but, I'm not asking you to tell me this. Don't just respond to poo-poo the idea (I see this in a lot of threads of this nature).
     
  2. mraeryceos

    mraeryceos MDL Novice

    Mar 12, 2011
    10
    1
    0
    #3 mraeryceos, Sep 16, 2011
    Last edited: Sep 16, 2011
    (OP)
    Yes, that is my current project, to export directory structure and files using a package's component manifests...
    Export the files in a package, either through a script, command, or tool/program. I want to maintain the directory structure as specified in the manifest, so, for example with Volume Shadow Copy Foundation you would have:

    My Exported Package Files Directory\
    --Volume Shadow Copy\
    ----Windows\
    ------PolicyDefinitions\
    --------PreviousVersions.admx
    ------System32\
    --------swprv.dll
    --------vss_ps.dll
     
  3. liliactr

    liliactr MDL Member

    Sep 3, 2009
    205
    83
    10
    if you can export registry additions also as reg file it will be perfect. keep on going and let us to see.
     
  4. mraeryceos

    mraeryceos MDL Novice

    Mar 12, 2011
    10
    1
    0
    #5 mraeryceos, Jun 1, 2013
    Last edited: Jun 2, 2013
    (OP)
    I wanted to install packages in the traditional way, with files added to system32, etc, and registry entries pointing to those locations. I guess it could have worked, but then, if I had done all the work, I may have found out that the downsides outweighed the benefits. Who knows. I think this *was* too much work. I got busy with other things. There were different reasons I wanted to do this.

    One of the reasons was to make programs more portable. I have yet to try this, but I found some info on how to make a program use a dll supplied in its own folder. Basically, you put the dll next to app.exe in the application folder, and put a app.exe.manifest standard xml file telling it to use the local dll. I think, and I would hope, that the external xml file would override the internal xml file in the executable (if there is one). Would be nice if this wasn't a requirement, and there was a system-wide setting that would have programs first check in their own directory for the required library, before using winsxs.