[Mono-list] Invalid IL code exception

Rodrigo Kumpera kumpera at gmail.com
Tue Sep 24 22:04:25 UTC 2013


Run mono with --security=verifiable and it will run with the proper code
verifier.

It does look like those assemblies have been using obfuscation tools that
produce assemblies that are too broken for mono to handle.


On Tue, Sep 24, 2013 at 5:49 PM, Dilshod Tadjibaev <dilshod at gmail.com>wrote:

> Hello everyone,
>
> I am trying to make Foxit.PDF and PDFTron to work in mono linux but I am
> getting this errors when initializing the library.
>
>
> This is what I get when I run with Foxit.PDF:
>
>
> Instance {System.InvalidProgramException: Invalid IL code in
> Foxit.PDF.Merger.PdfDocument:e (): IL_001f: pop            at
> Foxit.PDF.Merger.PdfDocument..ctor (zz93.i4 A_0, System.String A_1)
> [0x00000] in <filename unknown>:0    at Foxit.PDF.Merger.PdfDocument..ctor
> (System.String filePath) [0x00000] in <filename unknown>:0    at
> foxit.MainClass.Main (System.String[] args) [0x00011] in
> /home/dilshod/source-code/Foxit-demo/Foxit_PDF_SDK_For_NET_v1_0_0_21154/solution/foxit/foxit/Program.cs:14
> } System.InvalidProgramException
>
>
> This is what I get when I run with PDFTron:
>
> Unhandled Exception:
> System.InvalidProgramException: Invalid IL code in
> pdftron.PDFNet:Initialize (): IL_000a: call      0x0600094e
>
>
>   at PDFATestCS.Class1.Main (System.String[] args) [0x00001] in
> /home/dilshod/source-code/PDFNet64DotNet4/Samples/PDFATest/CS/PDFATest.cs:28
> [ERROR] FATAL UNHANDLED EXCEPTION: System.InvalidProgramException: Invalid
> IL code in pdftron.PDFNet:Initialize (): IL_000a: call      0x0600094e
>
>
>   at PDFATestCS.Class1.Main (System.String[] args) [0x00001] in
> /home/dilshod/source-code/PDFNet64DotNet4/Samples/PDFATest/CS/PDFATest.cs:28
> The application was terminated by a signal: SIGHUP
>
>
>
> I am suspecting there is some sort of unmanaged code in both of them.
>
> Here is the head of monodis Foxit.PDF.40.dll output:
>
> .assembly extern mscorlib
> {
>   .ver 4:0:0:0
>   .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
> }
> .assembly extern System.Drawing
> {
>   .ver 4:0:0:0
>   .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....:
> }
> .assembly extern System
> {
>   .ver 4:0:0:0
>   .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
> }
> .assembly extern System.Web
> {
>   .ver 4:0:0:0
>   .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....:
> }
> .assembly extern System.Configuration
> {
>   .ver 4:0:0:0
>   .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....:
> }
> .assembly extern System.Security
> {
>   .ver 4:0:0:0
>   .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....:
> }
> .assembly 'Foxit.PDF.40'
> {
>   .custom instance void class
> [mscorlib]System.Reflection.AssemblyTrademarkAttribute::'.ctor'(string) =
>  (01 00 00 00 00 ) // .....
>
>   .custom instance void class
> [mscorlib]System.Reflection.AssemblyTitleAttribute::'.ctor'(string) =  (
>  01 00 26 46 6F 78 69 74 20 50 44 46 20 66 6F 72   // ..&Foxit PDF for
> 20 2E 4E 45 54 20 53 44 4B 20 28 46 72 61 6D 65   //  .NET SDK (Frame
>  77 6F 72 6B 20 34 2E 30 29 00 00                ) // work 4.0)..
>
>   .custom instance void class
> [mscorlib]System.Reflection.AssemblyCompanyAttribute::'.ctor'(string) =  (
> 01 00 11 46 6F 78 69 74 20 43 6F 72 70 6F 72 61   // ...Foxit Corpora
>  74 69 6F 6E 00 00                               ) // tion..
>
>   .custom instance void class
> [mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::'.ctor'()
> =  (
> 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78   // ....T..WrapNonEx
>  63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01       ) // ceptionThrows.
>
>   .custom instance void class
> [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::'.ctor'(int32)
> =  (01 00 08 00 00 00 00 00 ) // ........
>
>   .custom instance void class
> [mscorlib]System.Security.AllowPartiallyTrustedCallersAttribute::'.ctor'()
> =  (01 00 00 00 ) // ....
>
>   .custom instance void class
> [mscorlib]System.Reflection.AssemblyCopyrightAttribute::'.ctor'(string) =  (
>  01 00 3F 43 6F 70 79 72 69 67 68 74 20 28 63 29   // ..?Copyright (c)
> 20 32 30 31 32 20 46 6F 78 69 74 20 43 6F 72 70   //  2012 Foxit Corp
>  6F 72 61 74 69 6F 6E 2C 20 32 30 30 31 20 2D 20   // oration, 2001 -
> 32 30 31 32 20 63 65 54 65 20 53 6F 66 74 77 61   // 2012 ceTe Softwa
>  72 65 00 00                                     ) // re..
>
>   .custom instance void class DotfuscatorAttribute::'.ctor'(string, int32)
> =  (
> 01 00 18 33 36 35 38 38 3A 31 3A 30 3A 34 2E 39   // ...36588:1:0:4.9
>  2E 37 30 30 30 2E 33 32 30 37 32 00 00 00 00 00   // .7000.32072.....
> 00                                              ) // .
>
>   .custom instance void class
> [mscorlib]System.CLSCompliantAttribute::'.ctor'(bool) =  (01 00 01 00 00 )
> // .....
>
>   .custom instance void class
> [mscorlib]System.Reflection.AssemblyProductAttribute::'.ctor'(string) =  (
>  01 00 16 46 6F 78 69 74 20 50 44 46 20 66 6F 72   // ...Foxit PDF for
> 20 2E 4E 45 54 20 53 44 4B 00 00                ) //  .NET SDK..
>
>   .custom instance void class
> [mscorlib]System.Reflection.AssemblyDescriptionAttribute::'.ctor'(string) =
>  (
>  01 00 42 50 72 6F 67 72 61 6D 61 74 69 63 61 6C   // ..BProgramatical
> 6C 79 20 63 72 65 61 74 65 20 61 6E 64 20 6D 61   // ly create and ma
>  6E 69 70 75 6C 61 74 65 20 50 44 46 20 64 6F 63   // nipulate PDF doc
> 75 6D 65 6E 74 73 2E 20 28 42 75 69 6C 64 20 32   // uments. (Build 2
>  31 31 35 34 29 00 00                            ) // 1154)..
>
>    .hash algorithm 0x00008004
>   .ver  1:0:0:40
>   .publickey = (
>  00 24 00 00 04 80 00 00 94 00 00 00 06 02 00 00   // .$..............
> 00 24 00 00 52 53 41 31 00 04 00 00 01 00 01 00   // .$..RSA1........
>  07 36 AA 1E 61 10 C4 95 4D EA 24 56 FF F3 3B EB   // .6..a...M.$V..;.
> B0 7D 85 4B 7A 62 F9 A2 F3 C4 45 53 86 BC C5 DF   // .}.Kzb....ES....
>  02 D3 8C F5 AC 5D 1B 8A 26 27 26 0B 12 6B B9 39   // .....]..&'&..k.9
> 89 39 44 2A 6D CF F9 F1 9B 0D C6 0D C0 F1 23 35   // .9D*m.........#5
>  D4 80 0E 32 30 AE B5 46 60 2D 96 4B 17 CC 3D B6   // ...20..F`-.K..=.
> 24 6D 30 60 93 72 97 0F 7C 90 BA E6 95 98 18 64   // $m0`.r..|......d
>  D5 BF 65 D6 84 45 8F C1 04 92 D7 40 34 86 C6 E9   // ..e..E..... at 4...
> 13 B2 64 2D FE 7E B0 EF 7C 01 60 E8 F1 84 A1 A7 ) // ..d-.~..|.`.....
> }
> .module Foxit.PDF.40.dll // GUID = {8F28163B-91FE-4F47-A5DD-ABAD2B03EAC7}
>
>
>   .class public auto ansi sealed beforefieldinit DotfuscatorAttribute
>   extends [mscorlib]System.Attribute
>   {
>     .custom instance void class
> [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype
> [mscorlib]System.AttributeTargets) =  (01 00 01 00 00 00 00 00 ) // ........
>
>     .custom instance void class
> [mscorlib]System.Runtime.InteropServices.ComVisibleAttribute::'.ctor'(bool)
> =  (01 00 00 00 00 ) // .....
>
>     .field  private  string a
>     .field  private  int32 c
>
>     // method line 1
>     .method public hidebysig specialname rtspecialname
>            instance default void '.ctor' (string a, int32 c)  cil managed
>     {
>         // Method begins at RVA 0xf25c
>  // Code size 21 (0x15)
> .maxstack 2
>  IL_0000:  ldarg.0
> IL_0001:  dup
>  IL_0002:  call instance void class [mscorlib]System.Attribute::'.ctor'()
> IL_0007:  ldarg.1
>  IL_0008:  stfld string DotfuscatorAttribute::a
> IL_000d:  ldarg.0
>  IL_000e:  ldarg.2
> IL_000f:  stfld int32 DotfuscatorAttribute::c
>  IL_0014:  ret
>     } // end of method DotfuscatorAttribute::.ctor
>
>
>   ~ Dilshod
>
> _______________________________________________
> Mono-list maillist  -  Mono-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-list
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ximian.com/pipermail/mono-list/attachments/20130924/a0e14407/attachment-0001.html>


More information about the Mono-list mailing list