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

    secr9tos MDL Addicted

    Joined:
    Jul 28, 2009
    Messages:
    999
    Likes Received:
    133
    Trophy Points:
    30
    Well that was what I expected. It won't work without some "modification" on x86 but thanks for your info.
     
  2. nhadnt

    nhadnt MDL Novice

    Joined:
    Nov 2, 2007
    Messages:
    6
    Likes Received:
    0
    Trophy Points:
    0
    I compile it to 32bit and test in my computer.
    OS:windows 7 Ultimate
    It work well.
    But sometime (after update) windows show It's not genuine (use SERVICE_BOOT_START).
    And I restart windows it tell genuine :confused: .
    thanks for sharing.
     
  3. secr9tos

    secr9tos MDL Addicted

    Joined:
    Jul 28, 2009
    Messages:
    999
    Likes Received:
    133
    Trophy Points:
    30
    #43 secr9tos, Nov 26, 2009
    Last edited: Nov 26, 2009
    (OP)
    Try SERVICE_SYSTEM_START instead.
    But well, good to know that it works in x86 as well.

    If it does not work, we'll probably need to change the source code
     
  4. zsmin

    zsmin MDL Junior Member

    Joined:
    Aug 3, 2009
    Messages:
    93
    Likes Received:
    3
    Trophy Points:
    0
    The tables listed inside the R/XSDT aren't always in order (highest address last) so you shouldn't use the last pointer to work out where to store the SLIC. Look for the highest address as you loop through and use that one.

    Also, appending a new table address to the R/XSDT isn't always possible because the next table can start immediately after it. Sometimes a bit of shuffling is needed, but that's when it can start to get messy :)

    I'll be able to help more at weekend when I have had a chance to play with it.
     
  5. secr9tos

    secr9tos MDL Addicted

    Joined:
    Jul 28, 2009
    Messages:
    999
    Likes Received:
    133
    Trophy Points:
    30
    THANKS, I'll fix that issue
     
  6. pkaji123

    pkaji123 MDL Addicted

    Joined:
    Aug 22, 2009
    Messages:
    763
    Likes Received:
    233
    Trophy Points:
    30
    Is It Possible To sign The Files With Extension .sys with This One......
     
  7. secr9tos

    secr9tos MDL Addicted

    Joined:
    Jul 28, 2009
    Messages:
    999
    Likes Received:
    133
    Trophy Points:
    30
    This one refers to.... what? Btw look at my first post, I included a guide for manual driver signing ( x64 ).
     
  8. pkaji123

    pkaji123 MDL Addicted

    Joined:
    Aug 22, 2009
    Messages:
    763
    Likes Received:
    233
    Trophy Points:
    30
    No I Need For ( x86 ),Will It work If I Do it In 32 Bit Too..
     
  9. Daz

    Daz MDL Developer / Admin Staff Member

    Joined:
    Jul 31, 2009
    Messages:
    9,551
    Likes Received:
    67,118
    Trophy Points:
    300
    This is something I was talking with zsmin about a while back now, I never did look into it after what happened to the Paradox version though. Well done, it's looking good :)
     
  10. Machiavelli

    Machiavelli MDL Novice

    Joined:
    Nov 27, 2009
    Messages:
    3
    Likes Received:
    0
    Trophy Points:
    0
    #50 Machiavelli, Nov 27, 2009
    Last edited by a moderator: Apr 20, 2017
    Re-Purpose the Royal.inf

    Will royal.inf work as my template, or does it require a different method. Was thinking to push the driver into the boot kernel the same way. What do you think ?

    Stolen from royal.inf
    Code:
    [OemBiosDevice.ServiceInstallSection]
    DisplayName    = "SLIC OEM BIOS Extension"
    ServiceType    = 1;SERVICE_KERNEL_DRIVER
    StartType      = 0;SERVICE_BOOT_START
    ErrorControl   = 0;SERVICE_ERROR_IGNORE
    ServiceBinary  = %12%\%filename%
    LoadOrderGroup = "Boot Bus Extender"
    
    [Strings]
    Provider= "SLIC OEM Provider"
    StdMfg= "SLIC OEM Manufacturer"
    DispName= "SLIC OEM BIOS Emulation Driver"
    diskid= "DISK0"
    filename= "slic86.sys"
    device_desc= "SLIC OEM BIOS Extension Device"
    Where do we get the GUID from the slic86.sys. Does It change on each compile, or is it persistent.
     
  11. w79921

    w79921 MDL Novice

    Joined:
    Sep 21, 2009
    Messages:
    2
    Likes Received:
    0
    Trophy Points:
    0
    #51 w79921, Nov 27, 2009
    Last edited: Nov 30, 2009
    It works in Vmware ( x86 - 1.1.3 ).
    Everest Acpi-Report the same as 1.1.2
    Acpi(Increased four unknown table and two slic table)
     
  12. secr9tos

    secr9tos MDL Addicted

    Joined:
    Jul 28, 2009
    Messages:
    999
    Likes Received:
    133
    Trophy Points:
    30
    #52 secr9tos, Nov 27, 2009
    Last edited: Nov 27, 2009
    (OP)
    That's a known bug of the duplicated slic tables, fix is under construction.
    Acpi increase is fixed in actual 1.1.3 ( checked it in everest under VirtualBox )
    Btw.. thanks for the feedback

    @Machiavelli: maybe, but I would recommend to use the .inf on a virtual machine
     
  13. nhadnt

    nhadnt MDL Novice

    Joined:
    Nov 2, 2007
    Messages:
    6
    Likes Received:
    0
    Trophy Points:
    0
    I compile 1.1.3 x86 and test in my computer.
    OS:windows 7 Ultimate
    It not work (I think there is no free space for PrPatchSdtPtr).

    PS: 1.1.2 x86 work well.
     
  14. secr9tos

    secr9tos MDL Addicted

    Joined:
    Jul 28, 2009
    Messages:
    999
    Likes Received:
    133
    Trophy Points:
    30
    Thx for the info, but for now I'm facing another problem. Somehow RtlCompareMemory causes a random driver freeze bug on my pc although it works in VirtualBox...
     
  15. denslin

    denslin MDL Novice

    Joined:
    Oct 29, 2009
    Messages:
    20
    Likes Received:
    0
    Trophy Points:
    0
    Thanks a lot!!
     
  16. Riddle

    Riddle MDL Novice

    Joined:
    Nov 28, 2009
    Messages:
    3
    Likes Received:
    0
    Trophy Points:
    0
    secr9tos, thanks for share it with full source code.
     
  17. secr9tos

    secr9tos MDL Addicted

    Joined:
    Jul 28, 2009
    Messages:
    999
    Likes Received:
    133
    Trophy Points:
    30
    I've updated the driver to a new version.

    Updates in the future:

    * Digital signature
    * Installer (.inf )
     
  18. nhadnt

    nhadnt MDL Novice

    Joined:
    Nov 2, 2007
    Messages:
    6
    Likes Received:
    0
    Trophy Points:
    0
    version 1.3.1 x86.
    I have same proplem with 1.1.3. No SLIC add (no free space for SdPatchSdtTable).
    See attached files.
    Thanks for your share.
     

    Attached Files:

  19. secr9tos

    secr9tos MDL Addicted

    Joined:
    Jul 28, 2009
    Messages:
    999
    Likes Received:
    133
    Trophy Points:
    30
    Well that's a serious problem. For now I don't know how to fix this issue but I'll think abou it.

    Btw.. did you use one of the loaders so far? Would be interesting to see how they deal with this issue.
     
  20. nhadnt

    nhadnt MDL Novice

    Joined:
    Nov 2, 2007
    Messages:
    6
    Likes Received:
    0
    Trophy Points:
    0
    #60 nhadnt, Dec 2, 2009
    Last edited: Dec 3, 2009
    Now I use wow7.0.1b loader. It overwrite RSDT 2rd (BOOT) with SLIC.
    Other computer I mod bios, it insert 1 at last item.
    Previous version 1.1.2, it insert and overwrite DSDT.
     

    Attached Files:

Thread Status:
Not open for further replies.