A ver... No lo quería decir tan abiertamente porque se podía dar a malas interprtaciones. Pero pongamos el caso de una demo de un WCC de X Empresa. El Custom Control (una DLL) tiene programada una fecha de caducidad, además de otras cuestiones de seguridad. Pero en todos los casos la demo no tiene C o C++ para tratar la seguridad interna, en caso de que alguien quiera decompilar y reutilizar. Todo está en IL Ofuscado. Entones, si lo quiero comprar me pasan un pacth y listo, o un Nº IUD y tolis. Ahora, todo eso, al estar en IL es suceptible de ser dado vuelta con Ing. Inversa. Aunque en realidad ya estaríamos hablando de crackear. Y esto, no sólo le puede pasar a la Empresa X, sino a lo que yo he desarrollado. Por eso la consulta. Alguna vez, con las versiones .NET 1.1 he dado vuelta algún que otro WCC sólo para ver si podía hacerlo, y sólo había que ubicar el reloj interno. Hoy es más complicado. Pero el trabajo que está haciendo por denajo el Fx, aun cuando sea ininteligible, es lógico. Por eso mi insistencia sobre el asunto. Pero de verdad no quiero joder más, porque me parece que estoy pecando de hincha quinotos.
Mil gracias cumpas El día 30 de abril de 2008 15:08, Daniel Calvin <[EMAIL PROTECTED]> escribió: Porque si tenias una clase Asiento y otra PlanDeCuentas una vez ofuscadas > pasan a llamarse a1 y a2, por ejemplo... > > Daniel Calvin > > El día 30/04/08, 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/ > > > -- > Daniel A. Calvin > Cooperator Team Member > http://www.cooperator.com.ar > Microsoft Certified Professional >
