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