none
Resolve PE Verify Warning RRS feed

  • Question

  • Hi,

     

    I am new to this subject (PEVerify) and realy have no clue where to continue.

     

    The situation is as follows:

    1. I have a (working) application that has been used for a while without any problems

    2. I now want to protect the project with licensing/obfuscation and thus, I am using a third party protection tool.

    3. During the protection process I get an error that indicates PE Verify error - Failed to validate .NET assembly. PeVerify error.

    4. I run PE Verify independently on the application (EXE) and I get the following warning:

    [MD]: Warning: Class does not implement interface method in this module (class:0x0200004b; interface:0x0200004a; method:0x0600042e). [token:0x0900000E]

    5. Before implementing the protection I had no problems with the application. After it is now sometimes crashes. Talking to the support of the protection they suggested this maybe the cuase of the problem.

     

    How do I go about finding and fixing it?

    How can I find the missing method implementation (what is the meaning of class 0x20XXX...)?

     

    Any tip/hints/links will be appreciated.

     

    Thanks,

     

    Tomer


    Tuesday, February 12, 2008 11:44 AM

Answers

  • I think the easist way is to disassemble the entire module with Ildasm.exe and its /tokens option. Then you can search for the tokens in question to see which type they refer to.

     

    Tuesday, February 12, 2008 12:52 PM
    Moderator

All replies

  • I think the easist way is to disassemble the entire module with Ildasm.exe and its /tokens option. Then you can search for the tokens in question to see which type they refer to.

     

    Tuesday, February 12, 2008 12:52 PM
    Moderator
  • Hi Mattias,

     

    Many thanks for your suggestion - I really didn't know what to do with the output and you directed me straight to a solution. (I know that ildasm exist but couldn't make one plus one, and never really used it before)

     

    What I did is to ildasm (dis-assembly) the executable with /tok switch and then searched the output of the class, interface and method that were missing.

     

    Found it, added the missing method and now I am getting a clean output from PeVerify (and the protection tool).

     

    Regarding the error - that was wierd

     

    I created an interface that is used to abstract "display" of a flash message/screen/youNameIt (a narator component)

     

    One of the methods I added was the Dispose.

     

    I then implemented this interface in a form - assuming that the form's dispose will do the job - in the VS environment I could do it without any complains but the PeVerify do give a warning about it. (how come there's a different outcomes?)

     

    Cheers,

     

    Tomer

     

     

    Tuesday, February 12, 2008 1:55 PM