Hey, Jb,

I just tried the SVN version and it's fixed.

Thanks.

On Nov 6, 8:54 am, "Wicky Hu" <[EMAIL PROTECTED]> wrote:
> Hey, Jb,
>
> I got errors with this obfuscated 
> assembly:http://www.fileden.com/files/2008/8/5/2035756/Test/BoojobNet.zip
>
> The assembly loading is ok, but lots of the methods' body cannot be visited.
> e.g. when visiting BoojobNet.Code.8e2b8b29d41c1929(), error occurs:
>
> *Index was outside the bounds of the array.
> *   at Mono.Cecil.Metadata.UserStringsHeap.ReadStringAt(Int32 offset) in
> \Mono.Cecil\Mono.Cecil.Metadata\UserStringsHeap.cs:line 67
>    at Mono.Cecil.Metadata.UserStringsHeap.get_Item(UInt32 offset) in
> \Mono.Cecil\Mono.Cecil.Metadata\UserStringsHeap.cs:line 44
>    at Mono.Cecil.Cil.CodeReader.ReadCilBody(MethodBody body, BinaryReader
> br) in \Mono.Cecil\Mono.Cecil.Cil\CodeReader.cs:line 176
>    at Mono.Cecil.Cil.CodeReader.VisitMethodBody(MethodBody body) in
> \Mono.Cecil\Mono.Cecil.Cil\CodeReader.cs:line 75
>    at Mono.Cecil.MethodDefinition.LoadBody() in
> \Mono.Cecil\Mono.Cecil\MethodDefinition.cs:line 564
>    at Mono.Cecil.MethodDefinition.get_Body() in
> \Mono.Cecil\Mono.Cecil\MethodDefinition.cs:line 104
>
> *string ReadStringAt (int offset)*
>   {
>    int length = Utilities.ReadCompressedInteger (this.Data, offset, out
> offset) - 1;
>    if (length < 1)
>     return string.Empty;
>    char [] chars = new char [length / 2];
>    for (int i = offset, j = 0; i < offset + length; i += 2)
>     chars [j++] = (char) (Data [i] | (Data [i + 1] << 8));
> //<----------------Error occurs here
>    return new string (chars);
>   }
>
> Could you help to take a look?
>
> Thanks
> Wicky Hu
--~--~---------~--~----~------------~-------~--~----~
--
mono-cecil
-~----------~----~----~----~------~----~------~--~---

Reply via email to