visual valid tag method example documentacion description cref comment comentarios c# mono mono.cecil

valid - summary tag in c#



Creación Estática de Constructores (1)

utilizar esta :

void AddConstructor(TypeDefinition type, MethodReference baseEmptyConstructor) { var methodAttributes = MethodAttributes.Public | MethodAttributes.HideBySig | MethodAttributes.SpecialName | MethodAttributes.RTSpecialName; var method = new MethodDefinition(".ctor", methodAttributes, ModuleDefinition.TypeSystem.Void); method.Body.Instructions.Add(Instruction.Create(OpCodes.Ldarg_0)); method.Body.Instructions.Add(Instruction.Create(OpCodes.Call, baseEmptyConstructor)); method.Body.Instructions.Add(Instruction.Create(OpCodes.Ret)); type.Methods.Add(method); }

también puedes referirte:

http://www.mono-project.com/Cecil:FAQ

He tenido algunos problemas con los constructores estáticos con mi proyecto. Necesito agregar un constructor estático al tipo "" para llamar a mi método de descifrado de recursos.

A continuación, en el archivo .gif, verá el problema que encuentro.

También incluiré el fragmento de código.

Código para crear cctor:

MethodDefinition method = new MethodDefinition( ".cctor", Mono.Cecil.MethodAttributes.Private | Mono.Cecil.MethodAttributes.Static | Mono.Cecil.MethodAttributes.HideBySig | Mono.Cecil.MethodAttributes.SpecialName | Mono.Cecil.MethodAttributes.RTSpecialName, mod.Import(typeof(void)) );

También intenté cambiar los atributos exactamente como los de Yano. De alguna manera, nunca funciona. Por "obras" me refiero a detectarlo como un constructor estático en DotNet Resolver.

Aquí hay más información sobre el resultado real y el resultado esperado.

No tengo un ResolveEventHandler conectado a mi punto de entrada. Lo tengo adjunto a la aplicación, que está siendo ofuscado y está ubicado en el constructor estático del tipo "" que se ejecuta incluso antes de que se llame al punto de entrada.

Los recursos de la aplicación se han cifrado con AES y no se reconocen como recursos válidos por el resolutor dotnet u otros decompiladores. Simplemente estoy preguntando por qué el evento no se está desencadenando, ya que debe activarse cuando un recurso no es válido o falta. Como puede ver en el ejemplo, debe aparecer un cuadro de mensaje antes de que se inicie la aplicación, pero nunca lo hace (el cifrado de cadenas cifra las cadenas, por lo que es un poco difícil de ver que haya una cadena ahí).

Cualquier ayuda es apreciada.