Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: Meta en 23 Mayo 2015, 16:48 pm



Título: Usando ILSpy para ver el código fuente y adaptarlo a Visual C# o Visual C++
Publicado por: Meta en 23 Mayo 2015, 16:48 pm
Hola:

Estoy usando el programa ILSpy que puedes descargar aquí.
http://ilspy.net/

Se trata que muestra algo del código fuente.

Aquí hay un programa hecho en C, creo que lo hizo con el Visual Studio v8.0 del C o el C++, no estoy seguro.

La descarga es un ejecutable. Es el que quiero hacerle ingeniería inversa.

Descarga (http://magno.romhackhispano.org/BankSwap.exe) directa el programa llamado bankswap.exe. Puedes tener aviso en tu navegador favorito porque descarga un archivo exe y por seguridad lo bloquea.

Intento 1.
Pues no me sirve el ILSpy ya que solo usa VB, C# y otro que no tiene nada que ver con C nativo, sino el tema del .net, no puede hacer nada.

Si hay otro programa mejor para ver algo de código del que está hecho y hacer el propio programa desde cero con C# o el C++ de visual Studio Express.

¿Alguna ayuda?

Saludos.



Título: Re: Usando ILSpy para ver el código fuente y adaptarlo a Visual C# o Visual C++
Publicado por: kub0x en 23 Mayo 2015, 21:22 pm
Te dejo el .NET Reflector, es el mejor para este tipo de cosas pues permite decompilar en C#, F#, VB.NET, Delphi y C++/CLI. ILSpy es más viejo que el sol XD

https://mega.co.nz/#!Ck5VgAJR!ib8k4_ssP-gkGW4oFTnEBUOIbtZ19F_P6nDB1TuuZPE

Saludos.


Título: Re: Usando ILSpy para ver el código fuente y adaptarlo a Visual C# o Visual C++
Publicado por: MCKSys Argentina en 23 Mayo 2015, 21:56 pm
ILSpy es más viejo que el sol XD

No tan viejo y aún lo siguen desarrollando...  :P

Citar
Development started after Red Gate announced that the free version of .NET Reflector would cease to exist by end of February 2011.

...

Release History

Want to know when major new features are added? When a new stable version is released? Follow us on Twitter!

    3/9/2015 Version 2.3
    6/29/2014 Version 2.2

De todas formas, reflector también es una buena opción para decompilar.

Saludos!


Título: Re: Usando ILSpy para ver el código fuente y adaptarlo a Visual C# o Visual C++
Publicado por: Meta en 24 Mayo 2015, 00:13 am
Hola:

Intento 2. No funciona.
(http://www.subeimagenes.com/img/re-1329797.png)

Me da que el bankswap está hecho con C/C++ nativo y nada del .NET.

Lo que hace ese programa es que al arrastrar un archivo aunque sea una foto, audio mp3, lo que sea hacia el bankswap.exe crea dos archivos partidos a 1024 Kbytes cada uno.

Pues no se, no tengo idea. A lo mejor otro compilador que descompile C/C++ nativo.

Saludos y gracias. A seguir intentando.


Título: Re: Usando ILSpy para ver el código fuente y adaptarlo a Visual C# o Visual C++
Publicado por: ThunderCls en 25 Mayo 2015, 04:38 am
Si he entendido bien, lo que quieres lograr es obtener el codigo fuente del ejecutable "bankswap.exe", bueno aqui hay un par de cosas teniendo en encuenta la premisa de que la app que desas decompilar esta creada en VC++:

1- ILSpy, Reflector, etc solo te serviran para decompilar aplicaciones creadas en .NET (VB.NET, C#, etc), no vale para otro tipo de aplicaciones.
2- El "codigo fuente" o lo mas cerca a esto que se pueda (pseudocodigo en lenguaje de alto nivel) a aplicaciones en C++ solo lo he visto usando IDA+HexRays Decompiler (no se si exista algo mas parecido a esto) o algun decompiler como el mismo IDA, OllyDbg, etc, pero en este caso solo obtendrias codigo de bajo nivel, nada como lo que quieres.

Saludos


Título: Re: Usando ILSpy para ver el código fuente y adaptarlo a Visual C# o Visual C++
Publicado por: Meta en 25 Mayo 2015, 15:15 pm
Hola:

Ok.

El bankswap solo coge archivos y los partes por la mitad, por ejemplo, tengo un archivo que pesa 2048 KB, lo parte justamente a la mitad a 1024 KB cada uno y lo nombra así:

Archivo_1.bin y Archivo_2.bin

Por eso quiero saber que hace, para programarlo en C#.

Saludos.


Título: Re: Usando ILSpy para ver el código fuente y adaptarlo a Visual C# o Visual C++
Publicado por: tincopasan en 25 Mayo 2015, 16:09 pm
entonces este tema debería ir en programación C# y no en este, ahora bien no parece tan dificil lo que hace,no  se c# pero en otros lenguajes  solo tendrías que buscar información sobre drag and drop (para arrastar el archivo) len (para sacar el tamaño del archivo) operaciónes  con integer (el largo / 2) y manejo de archivos como readfile y writefile para leer y escribir los archivos. 


Título: Re: Usando ILSpy para ver el código fuente y adaptarlo a Visual C# o Visual C++
Publicado por: ThunderCls en 25 Mayo 2015, 19:44 pm
@Meta

Bueno si lo que quieres es simplemente dividir un fichero en partes iguales de 1MB no creo que tengas que hacer reversing a una app para saber como se hace, la cosa es bien sencilla, vendria siendo algo como esto mas o menos basicamente:

Código
  1. const int CHUNKSIZE = 1024 * 1024;
  2. byte[] buffer;
  3. int i = 1;
  4.  
  5. FileStream infile = new FileStream(@"C:\app.xxx", FileMode.Open, FileAccess.Read);
  6. BinaryReader reader = new BinaryReader(infile);
  7.  
  8. reader.BaseStream.Position = 0;
  9. buffer = reader.ReadBytes(CHUNKSIZE);
  10. while (buffer.Length != 0)
  11. {
  12.    FileStream outfile = new FileStream(@"C:\File_" + i + ".bin", FileMode.CreateNew, FileAccess.Write);
  13.    BinaryWriter writer = new BinaryWriter(outfile);
  14.  
  15.    writer.Write(buffer);
  16.    writer.Flush();
  17.    writer.Close();
  18.    outfile.Close();
  19.  
  20.    buffer = reader.ReadBytes(CHUNKSIZE);
  21.    i++;
  22. }
  23.  
  24. reader.Close();
  25. infile.Close();

Y si, como dice tincopasan, esto deberia ir en Programacion C# y no aqui  :-\
Saludos


Título: Re: Usando ILSpy para ver el código fuente y adaptarlo a Visual C# o Visual C++
Publicado por: Meta en 25 Mayo 2015, 20:00 pm
Hola:

Gracias, lopondré en programación.

Código
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. using System.IO; // No olvidar.
  8.  
  9. namespace Partir_Archivo
  10. {
  11.    class Program
  12.    {
  13.        static void Main(string[] args)
  14.        {
  15.  
  16.            const int CHUNKSIZE = 1024 * 1024;
  17.            byte[] buffer;
  18.            int i = 1;
  19.  
  20.            FileStream infile = new FileStream(@"Illusion of Time (E).smc", FileMode.Open, FileAccess.Read);
  21.            BinaryReader reader = new BinaryReader(infile);
  22.  
  23.            reader.BaseStream.Position = 0;
  24.            buffer = reader.ReadBytes(CHUNKSIZE);
  25.            while (buffer.Length != 0)
  26.            {
  27.                FileStream outfile = new FileStream(@"File_" + i + ".bin", FileMode.CreateNew, FileAccess.Write);
  28.                BinaryWriter writer = new BinaryWriter(outfile);
  29.  
  30.                writer.Write(buffer);
  31.                writer.Flush();
  32.                writer.Close();
  33.                outfile.Close();
  34.  
  35.                buffer = reader.ReadBytes(CHUNKSIZE);
  36.                i++;
  37.            }
  38.  
  39.            reader.Close();
  40.            infile.Close();
  41.        }
  42.    }
  43. }

Tengo un archivo que pesa 2049 K Bytes, a partirlo con el BankSawp.exe si lo parte en dos, pero este que hice arriba gracias a ustedes me lo parte en tres cachos. El último cacho a 1 KB.

Saludos.



Título: Re: Usando ILSpy para ver el código fuente y adaptarlo a Visual C# o Visual C++
Publicado por: ThunderCls en 25 Mayo 2015, 23:36 pm
Tengo un archivo que pesa 2049 K Bytes, a partirlo con el BankSawp.exe si lo parte en dos, pero este que hice arriba gracias a ustedes me lo parte en tres cachos. El último cacho a 1 KB.

Bro es solo cuestion de matematicas:
2049 KB = 1024 KB + 1024 KB + 1 KB

O lo que seria lo mismo dos partes de 1024 KB y una parte de 1 KB lo que completaria los 2049 KB.


Título: Re: Usando ILSpy para ver el código fuente y adaptarlo a Visual C# o Visual C++
Publicado por: tincopasan en 26 Mayo 2015, 01:12 am
Meta:
         ¿la parte de lógica no juega? no es necesario saber programación para darse cuenta que no todos los números son exactamente divisibles por 2 en integer, por lo tanto una solución fácil sería que si hay resto se sume al segundo archivo y listo


Título: Re: Usando ILSpy para ver el código fuente y adaptarlo a Visual C# o Visual C++
Publicado por: MCKSys Argentina en 26 Mayo 2015, 04:08 am
Como ya no se trata de Ing. Inversa, cierro el post. Pueden seguir con el tema en el post creado: click (https://foro.elhacker.net/net/partir_archivo_con_c-t435802.0.html)