Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/12/2017, 16:15
aguml
 
Fecha de Ingreso: febrero-2015
Mensajes: 404
Antigüedad: 9 años, 2 meses
Puntos: 3
No puedo comprender el siguiente codigo

Hola amigos, tengo un código que estoy intentando entender pero en visual studio c# no compila. La parte que quiero entender por ahora y donde da los errores es esta:
Código C++:
Ver original
  1. public unsafe byte[] Decrypt(byte[] eData)
  2. {
  3.     byte[] buffer2;
  4.     byte[] buffer = Class41.smethod_0((int) Class37.smethod_0(eData));
  5.     if (((buffer2 = eData) != null) && (((int) Class37.smethod_0(buffer2)) != 0))
  6.     {
  7.         numRef2 = &(buffer2[Class4.smethod_0(0x114)]);
  8.     }
  9.     fixed (byte* numRef2 = ((byte*) Class4.smethod_0(0x110)))
  10.     {
  11.         if (((buffer2 = buffer) != null) && (((int) Class37.smethod_0(buffer2)) != 0))
  12.         {
  13.             numRef = &(buffer2[Class4.smethod_0(0x11c)]);
  14.         }
  15.         fixed (byte* numRef = ((byte*) Class4.smethod_0(280)))
  16.         {
  17.             int* numPtr = (int*) numRef2;
  18.             int* numPtr2 = (int*) numRef;
  19.             int num = Class4.smethod_0(0x120);
  20.             do
  21.             {
  22.                 numPtr += Class4.smethod_0(0x124);
  23.                 int num2 = numPtr[0].smethod_2();
  24.                 numPtr += Class4.smethod_0(0x128);
  25.                 int num3 = numPtr[0].smethod_2();
  26.                 this.ccfae92404b1d8caf890158f763ac579b(ref num2, ref num3);
  27.                 numPtr2 += Class4.smethod_0(300);
  28.                 numPtr2[0] = num2 = num2.smethod_2();
  29.                 numPtr2 += Class4.smethod_0(0x130);
  30.                 numPtr2[0] = num3 = num3.smethod_2();
  31.                 num += Class4.smethod_0(0x134);
  32.             }
  33.             while (num < (((int) Class37.smethod_0(eData)) >> Class4.smethod_0(0x138)));
  34.         }
  35.     }
  36.     return buffer;
  37. }
Los errores los da en las líneas con fixed.
¿Alguien puede corregir el código y comentarlo para entender que hace en cada línea?
Otra duda que tengo pero no aparece en este código es ¿Que diferencia hay entre usar IntPtr y int*?