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