×

Discussion Board

Results 1 to 8 of 8
  1. #1
    Registered User
    Join Date
    Mar 2003
    Posts
    19

    Capability and DLL

    Hi All!
    We have GUI appliction that use static DLL with MultimediaDD capability (DLL uses APSServer). DLL comes in embedded SIS

    I thought that main application may not need MulimediaDD itself.
    But if I remove MultimedaDD from main application (and sign it with certificate without MulimediaDD) -- it not starts (Security Error) or calls to DLL return error (probably AccessDenied)

    In Symbian Platform Security FAQ written that process can not load DLL with fewer capabilites, but in my case (capability of DLL) = (capability of main application) + MultimediDD, and it not works anyway...

    Please anybody -- any ideas are welcomed
    Thank you,
    Sergey

  2. #2
    Nokia Developer Moderator
    Join Date
    Mar 2003
    Location
    Lempäälä/Finland
    Posts
    29,167

    Re: Capability and DLL

    in case the DLL is loaded to the process it will use the capabilities of the process. The loading succeeds if the DLL has same or more capabilities than the loading process, but since it is using the capabilities of the loading process, it will not gain any capability it has, but which one is missing from the calling process.

    Thus if your main application is loading the dll into its own process, the process needs to have MulimediaDD capability, othervise the DLL can not utilize any functionality that reuires it.

    yucca

  3. #3
    Registered User
    Join Date
    Feb 2006
    Location
    Brazil
    Posts
    523

    Re: Capability and DLL

    Quote Originally Posted by ssalata View Post
    Hi All!
    We have GUI appliction that use static DLL with MultimediaDD capability (DLL uses APSServer). DLL comes in embedded SIS

    I thought that main application may not need MulimediaDD itself.
    But if I remove MultimedaDD from main application (and sign it with certificate without MulimediaDD)...
    hi ssalata

    If something in your application requires MultimediaDD, you have to sign it with a certificate that grants MultimediaDD.

    You can't expect your application (or any of its components) to have MultimediaDD if the certificate that was used in signing doesn't grant it


    best regards
    Http_user_agent:
    NokiaN80-1/3.0 (4.0707.0.7)
    Series60/3.0
    Profile/MIDP-2.0
    Configuration/CLDC-1.1

  4. #4
    Nokia Developer Moderator
    Join Date
    Mar 2003
    Location
    Lempäälä/Finland
    Posts
    29,167

    Re: Capability and DLL

    Basically if the poster says that it has problems on starting, you could assume that it was installed successfully, which would indicate that there are required capabilities present in his/hers certificate, othervise it wouldn't insta;ll in teh first place.

    yucca

  5. #5
    Registered User
    Join Date
    Feb 2006
    Location
    Brazil
    Posts
    523

    Re: Capability and DLL

    for what i understood, poster said have signed the application with a certificate that doesn't grant MultiMediaDD, and it couldn't be started (but could be installed).

    I don't know if in this particular case (only in the embedded sis there's something that requires a capability not granted by certificate) the application can or cannot be installed.

    What i know is, if the certificate doesn't grant MultiMediaDD, the application can't have it, regardless it can be installed or not
    Quote Originally Posted by ssalata View Post
    ...But if I remove MultimedaDD from main application (and sign it with certificate without MulimediaDD) -- it not starts (Security Error) or calls to DLL return error (probably AccessDenied)...

    best regards
    Http_user_agent:
    NokiaN80-1/3.0 (4.0707.0.7)
    Series60/3.0
    Profile/MIDP-2.0
    Configuration/CLDC-1.1

  6. #6
    Registered User
    Join Date
    Mar 2003
    Posts
    19

    Re: Capability and DLL

    Thank you very much for reply,
    But what is reason then to incapsulate sensitive part into embedded SIS as it is required by Nokia?
    How Nokia can check that main process uses sensitive capabilites only for accessing embedded SIS or use it also for other reasons?
    And if we load DLL dynamically bt LoadLibrary -- will it be the same? (MultimediaDD still needed for main application)

  7. #7
    Nokia Developer Moderator
    Join Date
    Mar 2003
    Location
    Lempäälä/Finland
    Posts
    29,167

    Re: Capability and DLL

    if I remember right they say that it should be made separately, if it is architecturally feasible, and in this case it might not be.

    other questions, I fail to answer.

    yucca

  8. #8
    Super Contributor
    Join Date
    Nov 2004
    Location
    Wiltshire, UK
    Posts
    3,644

    Re: Capability and DLL

    >>But what is reason then to incapsulate sensitive part into embedded SIS as it is required by Nokia?
    - The DLL might have other functions that do not require MultimediaDD

    >> How Nokia can check that main process uses sensitive capabilites only for accessing embedded SIS or use it also for other reasons?
    Don't confuse sis files with binaries,
    During compilation, the capabilities of the binaries are frozen into the executable.
    During installation, the software installer checks the capabiltiis of the binary (dll or exe) and makes sure they are at most the same as the certificate, the binaries cannot have more capabilities than the certificate. After that the sis file is irrelevant as the capabilties of the binary have been verified and you cannot tamper with the binary once it is installed.
    The loader will check the capabilities of the process and ensure that the dll's it loads have at least the capabilties of the process when the process is launched.

    >>And if we load DLL dynamically bt LoadLibrary -- will it be the same? (MultimediaDD still needed for main application)
    What makes you think you can just work around this problem, there are no shortcuts.
    However in answer to your question, the loader will check the capabiltiies of the DLL against the capabilties of the process if you use load library.

    For Extra points:
    What is probably happening is the dll is actually a proxy DLL that is talking to a Symbian server; it is the Symbian server that is failing the request as it is policing all the RPC calls and checking the callers capabilties, not the dll so you are probably on totally the wrong track trying to hack around the dll anyway.

Similar Threads

  1. Replies: 1
    Last Post: 2007-07-31, 12:52
  2. Signing problem concerning using DLL files
    By whitewinds in forum Symbian
    Replies: 15
    Last Post: 2007-05-08, 09:57
  3. DLL Capability issues
    By sid.baral84 in forum Symbian
    Replies: 8
    Last Post: 2006-12-13, 05:19
  4. DLL & console exe on 3rd (-46)
    By fwojtek in forum Symbian
    Replies: 3
    Last Post: 2006-10-05, 23:19
  5. Dll woes on E60
    By Leviathan2040 in forum Symbian
    Replies: 17
    Last Post: 2006-07-26, 21:00

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
×