Hi,

On Tue, Dec 21, 2010 at 2:50 PM, Contra <[email protected]> wrote:
> I'm curious how cecil manages invalid OpCodes. Taking a look through
> cecil I see no handling of invalid opcodes, so where should I start?
> So far I've made a few edits to Code (just added an Invalid type),
> OpCodes, and OpCode. Specifically I'm referring to invalid opcodes
> from babel and other similar obfuscators.

Indeed, there's no handling of invalid opcodes. And I don't have any
interest in supporting them, API wise. Cecil is made to
read/manipulate and write ecma CIL images, and if I don't mind
avoiding a crash to support some weird constructs emitted by
obfuscators, I mind adding API surface just for the sake of them.

Now that the rant part if over, if you want to implement support for
it, you'll have to deal with reading them in the
Mono.Cecil.Cil.CodeReader, and possible to write them in the
Mono.Cecil.Cil.CodeWriter if you want to write them.

The instructions are read per opcode, so you'll have to add some code
here to deal with the case where the opcode is unknown.

Jb

-- 
--
mono-cecil

Reply via email to