How-To Write a Slic-OEM driver x64 ( educational purpose only )

Discussion in 'Windows 7' started by secr9tos, Nov 24, 2009.

Thread Status:
Not open for further replies.
  1. visions_of_eden

    visions_of_eden MDL Novice

    Dec 9, 2009
    4
    0
    0
    Driver with build-in ACPI

    Just a thought ....

    since in the scenario where RSDT table is not patchable (because there's no room for additional SLIC pointer ...and not wanting to overwrite other tables ) there could be serious problems in adding SLIC table , couldn't we allocate some kind of non-paged shared memory buffer within the driver , copy all the tables declared in RSDT table to this location , then patch all pointers of RSDT table ? This way we could free memory following RSDT table (having relocated the tables to local buffer) and then add SLIC .

    What do you think ? Is it doable or just a stupid idea ?
     
  2. Hazar

    Hazar MDL Guru

    Jul 29, 2009
    2,489
    458
    90
    I think zsmin did something similar. He relocated tables to make room.

    Unfortunatley this is difficult for a driver, as the ACPI driver is loaded beforethe SLIC driver, so Windows does not take notice of the changes and does not activate.
     
  3. visions_of_eden

    visions_of_eden MDL Novice

    Dec 9, 2009
    4
    0
    0
    Ok, now i don't understand ..... if the ACPI driver is loaded before SLIC driver how could the actual patching (slic86.sys) works ? I mean , SLIC driver adds SLIC table pointer and SLIC table structure at the end of RSDT table, so if ACPI driver has already loaded ACPI info , how could windows activate ?

    Sorry if those questions looks stupid but i'm a newby at this .
     
  4. cabir38

    cabir38 MDL Novice

    Dec 3, 2009
    9
    0
    0
    Thank you VERY much in advance!
     
  5. secr9tos

    secr9tos MDL Addicted

    Jul 28, 2009
    997
    133
    30
    Sorry but I can't confirm that. I tried it in Vbox and my own PC never had a problem or am I missing something here?
     
  6. Hazar

    Hazar MDL Guru

    Jul 29, 2009
    2,489
    458
    90
    No only if the ACPI tables need to be relocated.
     
  7. secr9tos

    secr9tos MDL Addicted

    Jul 28, 2009
    997
    133
    30
    So even if I realloc rsdp in the ebda Windows won't recognize it?
     
  8. Hazar

    Hazar MDL Guru

    Jul 29, 2009
    2,489
    458
    90
    I think so yes, from what zsmin said. You will have to talk to him but it was something like, "relocating acpi tables doesn't work from the driver within windows" because of the acpi.sys being loaded first.
     
  9. secr9tos

    secr9tos MDL Addicted

    Jul 28, 2009
    997
    133
    30
    So that's why a loader is a better way for activating Win7... I assume
     
  10. Hazar

    Hazar MDL Guru

    Jul 29, 2009
    2,489
    458
    90
    Well he told me that a driver allows for a higher success rate, as you just ask the OS "for x bytes" as he put it. And that it can all be moved into manageable safe memory, just the problem was getting tables to relocate.
     
  11. secr9tos

    secr9tos MDL Addicted

    Jul 28, 2009
    997
    133
    30
    Thanks for the info Hazar
     
  12. secr9tos

    secr9tos MDL Addicted

    Jul 28, 2009
    997
    133
    30
    #72 secr9tos, Dec 10, 2009
    Last edited: Dec 10, 2009
    (OP)
    Well I think I found a solution for the acpi.sys problem. Make a long story short: load our slic driver before acpi.sys gets loaded. Tried in Vbox and seems to work. I'll post the files when I get home form work.
     
  13. nhadnt

    nhadnt MDL Novice

    Nov 2, 2007
    6
    0
    0
    Test new version 2.0.1.4. It realloc room for rsdt, add SLIC but windows don't see it.

    PS: I think you can copy SLIC overwrite BOOT in RSDT.
     

    Attached Files:

  14. secr9tos

    secr9tos MDL Addicted

    Jul 28, 2009
    997
    133
    30
    #74 secr9tos, Dec 11, 2009
    Last edited: Dec 11, 2009
    (OP)
    @nhadnt: I know that windows can't see it 'cause you'll have to load the driver before acpi.sys is loaded during boot. I already figured how to do that so I'll post the files soon. Btw.. BOOT in RSDT is not long enough to be overwritten by SLIC. I personally think it's more work to reallocate all sdt tables instead of "just" r/xsdt but nevermind I'll try it out so we can see what works better. Finally I thank you for your effort in driver testing of every version:)

    Edit: uploaded the files required to load the driver before acpi.sys.
     
  15. secr9tos

    secr9tos MDL Addicted

    Jul 28, 2009
    997
    133
    30
    I've updated the driver to 2.0.1.5. Now it supports realloc for write-protected x/rsdt tables. For futher updates see first post.
     
  16. sebus

    sebus MDL Guru

    Jul 23, 2008
    6,399
    2,043
    210
    I might have it all wrong, but was it supposed to allow addition of SLIC to non-SLIC machines?
    On Dell OPtiplex GX620 it loads just fine, but nothing shows

    sebus
     
  17. sam3971

    sam3971 MDL Guru

    Nov 14, 2008
    2,229
    310
    90
    How do you tell it to load first mate. I tried in vmware and slic dump toolkit said Acer 2.1 but when I installed the acer cert and the acer key it still did not activate. Am I missing something here?
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  18. secr9tos

    secr9tos MDL Addicted

    Jul 28, 2009
    997
    133
    30
    @sebus & sam3917:
    I guess the rsdt and xsdt got reallocated but this does not work 'cause windows doesn't recognize the change even if rsdp is located in ebda at boot time. Well in the end I came up with three different approaches to this problem.

    1. Remove write protection of 0xE0000 - 0xFFFFF using [ PCI0 : Dev0 : Func0 ]
    2. Overwrite "useless" sdt pointer for slic
    3. Realloc sub tables of rsdt/xsdt to get room

    All three options are currently in development and the first one is really high experimental. So I'll post the updates version when tests and dev is done.
     
  19. sebus

    sebus MDL Guru

    Jul 23, 2008
    6,399
    2,043
    210
    I know it is loaded fine using serviwin.

    Thanks secr9tos , would love to see it working, so keep up the good work

    sebus
     
  20. sam3971

    sam3971 MDL Guru

    Nov 14, 2008
    2,229
    310
    90
    Cool, thanks for the update. I would love to see this one actually work because it is a genius idea dude. ;)
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...