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 -~----------~----~----~----~------~----~------~--~---
