En realidad con la explicación de Diego me quedó claro cómo lo interpreta el
framework.
Es decir, eso que pareciera ser ilegible para un humano no lo es para el Fx.
Pero igualmente quiero ir más allá, aunque ya estaría r*mpiendo las b*las
por mi parte. =)

Voy a ver a qué llego con los textos que me recomendó Ángel.

Saludos

 El día 30 de abril de 2008 14:57, Leonardo Micheloni <
[EMAIL PROTECTED]> escribió:

> Diego, lo que creo que dice Oscar es que estamos de acuerdo con el el IL
> es el mismo y que el CLI lo interpreta, ahora, si esto es así, por qué no lo
> puedo descompilar de un modo legible?
>  2008/4/30 Diego Jancic <[EMAIL PROTECTED]>:
>
> >  Oscar, Te pego aca un IL sin obfuscar:
> >   IL_0011:  brtrue.s   IL_001e
> >  IL_0013:  ldstr      ".\\Private$\\AccuMessages"
> >  IL_0018:  newobj     instance void
> >
> > [ProcessingServer.Common]ProcessingServer.Common.QueueNotExistsException::.ctor(string)
> >  IL_001d:  throw
> >  IL_001e:  ldc.i4.1
> >  IL_001f:  stsfld     bool ProcessingServer.Client.Helper::isValidQueue
> >  IL_0024:  ldstr      ".\\Private$\\AccuMessages"
> >   Y despues el mismo IL, obfuscado a mano:
> >   IL_0011:  brtrue.s   IL_001e
> >  IL_0013:  ldstr      ".\\Private$\\AccuMessages"
> >  IL_0018:  newobj     instance void [a]a.b.c::.ctor(string)
> >  IL_001d:  throw
> >  IL_001e:  ldc.i4.1
> >  IL_001f:  stsfld     bool a.b.d::x
> >  IL_0024:  ldstr      ".\\Private$\\AccuMessages"
> >   No obfusque el string porque es mas complicado, pero: podes decirme
> > que hace el primer y el segundo bloque de IL ??
> > El primero es facil... sabes que tenes un servidor que hace
> > procesamiento (ProcessingServer), que esta validando el nombre de una
> > Queue y que tira una excepcion... del segundo no podes saber nada,
> > pero para el CLR es exactamente lo mismo, por eso anda...
> >  Espero que se entienda..
> >  Saludos
> >    2008/4/30 Oscar Onorato <[EMAIL PROTECTED]>:
> > >
> > >
> >  > Claro, es eso justamente. >
> > > Por eso no termino de entender cómo hace el NetFx para
> > reinterpretarlo. Por eso en el email inicial preguntaba sobre uno o unos
> > buenos textos sobre la arquitectura interna del NetFramework. Para conocer
> > qué pasa internamente en este tipo de casos.
> > >
> > > Gracias Luis
> > >
> > >
> > > El día 30 de abril de 2008 12:37, Luis Farzati <[EMAIL PROTECTED]>
> > escribió:
> >  >
> > > >
> > > > Acá tenés una página interesante:
> > > >
> > > >
> > http://www.lesser-software.com/en/content/products/LSW%20DotNet-Tools/LSW_DotNet_IL-Obfuscator.htm
> > > >
> > > > "Decompilation of Assemblies to human readable source-code is
> > possible because of the containment of meta data in the Assemblies and
> > because of the higher level of the compiled "MSIL" code.
> > > > The LSW IL-Obfuscator ( LSW-ILOBF ) is a tool to make the
> > Decompilation "useless" because it destroys the Metadata information by
> > replacing meaningful Names by meaningless ones."Esto último es lo que te
> > está pasando a vos?
> > > >
> > > > Un saludo,
> > > >
> > > > Luis
> > > >
> > > >
> > > >
> > > > 2008/4/30 Luis Farzati <[EMAIL PROTECTED]>:
> > > >
> > > > >
> > > > >
> > > > >
> > > > > Hola Oscar,
> > > > >
> > > > > Me parece que hay una confusión, el IL no se puede obfuscar... O
> > sea no hay un IL obfuscado y un IL no obfuscado, ya que es lo que ejecuta el
> > runtime del framework. Sería como querer obfuscar el binario de un EXE, no
> > funcionaría.
> > > > >
> > > > > Cuando decompilás, te encontrás con código que pareciera haber
> > estado obfuscado por la simple razón de que el descompilador no tiene idea
> > de la vida :P excepto saber la lógica del programa. No te va a poner los
> > nombres de variables (ya que esa info no se guarda en IL) y va a generar
> > nombres aleatorios o secuenciales (a, b, c, a1, b1) y cualquier otro
> > syntactic sugar que puedas usar en C# / VB.NET <http://vb.net/> tampoco
> > lo vas a ver en el código fuente generado por un descompilador.
> > > > >
> > > > > Un saludo!
> > > > >
> > > > > Luis
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > 2008/4/30 Diego Jancic <[EMAIL PROTECTED]>:
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > Hola Oscar,
> > > > > > No se cuales son tus objetivos, pero me parece que bien no se
> > puede hacer...
> > > > > > Es decir, si tenes un metodo que se llama ObtenerPorId y cuando
> > lo obfuscas se llama "a", obviamente estas perdiendo informacion y no lo
> > podes desobfuscar...
> > > > > > Ahora, podrias inventar un nuevo nombre en base al contenido...
> > pero no lo veo muy exacto..
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > 2008/4/30 Oscar Onorato <[EMAIL PROTECTED]>:
> > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > Gracias Diego,
> > > > > > >
> > > > > > > Gracias por la herramienta, había perdido el Link. La había
> > usado en la versión .NET 1.1
> > > > > > >
> > > > > > > Aunque en realidad quiero hacer una App para que "desofusque".
> > Es decir, si estoy viendo una DLL decompilada -el IL- y está ofuscada,
> > quiero cargar esa parte ofuscada en una App propia para que traduzca esa
> > parte a un IL no ofuscado.
> > > > > > >
> > > > > > > Por eso antes necesito entender el IL como si fuese C#. Aunque
> > sé que me va a costar un poco más.
> > > > > > >
> > > > > > > Salutti
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > El día 30 de abril de 2008 11:38, Diego Jancic <
> > [EMAIL PROTECTED]> escribió:
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > Si tu idea es solamente ver el codigo obfuscado, podes usar
> > reflector y verlo en C# o cualquier otro lenguaje sin ser un dios...
> > > > > > > > La obfuscacion basicamente lo que hace es renombra las cosas
> > para hacerlo mas complicado y en algunos casos puede cambiar forma de hacer
> > algo manteniendo la misma logica...
> > > > > > > > Si no lo tenes podes bajartelo de aca:
> > http://www.aisto.com/roeder/dotnet/
> > > > > > > >
> > > > > > > > O sino el viejo ildasm, pero es solo para IL
> > > > > > > >
> > > > > > > > Saludos,
> > > > > > > > Diego
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > 2008/4/30 Oscar Onorato <[EMAIL PROTECTED]>:
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > Cumpas,
> > > > > > > > >
> > > > > > > > > Necesito conocer el framework a fondo para interpretar el
> > IL.
> > > > > > > > >
> > > > > > > > > El motivo se que quiero saber cómo lo interpreto cuando
> > decompilo y me encuentro con código ofuscado.
> > > > > > > > > Quizás este pifiado en el razonamiento, pero ese mismo
> > código ofuscado está siendo interpretado ¿del mismo modo que el no ofuscado?
> > > > > > > > > Por eso necesito conocer a fondo el Core y la arquitectura
> > de NetFx, en el mejor de los casos desde la versión 2.0 en adelante.
> > > > > > > > >
> > > > > > > > > ¿Me podrían recomendar algun/os buenos textos?
> > > > > > > > >
> > > > > > > > > Saludos
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
>  --
> Leonardo Micheloni.
>  http://leomicheloni.blogspot.com/
>

Responder a