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

    Jul 28, 2009
    999
    133
    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

    Nov 2, 2007
    6
    0
    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

    Jul 28, 2009
    999
    133
    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

    Aug 3, 2009
    93
    3
    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

    Jul 28, 2009
    999
    133
    30
    THANKS, I'll fix that issue
     
  6. pkaji123

    pkaji123 MDL Addicted

    Aug 22, 2009
    763
    234
    30
    Is It Possible To sign The Files With Extension .sys with This One......
     
  7. secr9tos

    secr9tos MDL Addicted

    Jul 28, 2009
    999
    133
    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

    Aug 22, 2009
    763
    234
    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

    Jul 31, 2009
    9,534
    67,251
    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 :)
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  10. Machiavelli

    Machiavelli MDL Novice

    Nov 27, 2009
    3
    0
    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

    Sep 21, 2009
    2
    0
    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

    Jul 28, 2009
    999
    133
    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

    Nov 2, 2007
    6
    0
    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

    Jul 28, 2009
    999
    133
    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

    Oct 29, 2009
    21
    0
    0
    Thanks a lot!!
     
  16. Riddle

    Riddle MDL Novice

    Nov 28, 2009
    3
    0
    0
    secr9tos, thanks for share it with full source code.
     
  17. secr9tos

    secr9tos MDL Addicted

    Jul 28, 2009
    999
    133
    30
    I've updated the driver to a new version.

    Updates in the future:

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

    nhadnt MDL Novice

    Nov 2, 2007
    6
    0
    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

    Jul 28, 2009
    999
    133
    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

    Nov 2, 2007
    6
    0
    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: