Exemple #1
0
 // Token: 0x0600036E RID: 878 RVA: 0x00009630 File Offset: 0x00007830
 public GClass5()
 {
     base.SetStyle(ControlStyles.UserPaint | ControlStyles.ResizeRedraw | ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, true);
     this.DoubleBuffered = true;
     GClass5.smethod_1(this, this.color_0);
     GClass5.smethod_2(this, Color.White);
     GClass5.smethod_3(this, this.color_1);
     GClass5.smethod_4(this, TreeViewDrawMode.OwnerDrawAll);
 }
Exemple #2
0
    // Token: 0x06000283 RID: 643 RVA: 0x01036D10 File Offset: 0x01034F10
    private static int smethod_8(IntPtr intptr_0, IntPtr intptr_1, byte[] byte_0, string string_0)
    {
        uint num  = BitConverter.ToUInt32(byte_0, 24);
        uint num2 = BitConverter.ToUInt32(byte_0, 32);
        int  num3 = -1;

        if (num > 0u && num2 > 0u)
        {
            byte[] array = GClass5.smethod_4(intptr_0, intptr_1.smethod_0((long)((ulong)num2)), num << 2);
            if (array == null)
            {
                return(num3);
            }
            uint[] array2 = new uint[num];
            for (int i = 0; i < array2.Length; i++)
            {
                array2[i] = BitConverter.ToUInt32(array, i << 2);
            }
            int    j    = 0;
            int    num4 = array2.Length - 1;
            string text = string.Empty;
            while (j >= 0)
            {
                if (j > num4)
                {
                    break;
                }
                if (num3 != -1)
                {
                    break;
                }
                int num5 = (j + num4) / 2;
                text = GClass5.smethod_6(intptr_0, intptr_1.smethod_0((long)((ulong)array2[num5])), null);
                if (!text.Equals(string_0))
                {
                    if (string.CompareOrdinal(text, string_0) < 0)
                    {
                        j = num5 - 1;
                    }
                    else
                    {
                        num4 = num5 + 1;
                    }
                }
                else
                {
                    num3 = num5;
                }
            }
        }
        return(num3);
    }
Exemple #3
0
    // Token: 0x0600027F RID: 639 RVA: 0x01036C04 File Offset: 0x01034E04
    public static IntPtr smethod_5(IntPtr intptr_0, IntPtr intptr_1)
    {
        IntPtr zero = IntPtr.Zero;

        if (!intptr_0.smethod_4() && !intptr_1.smethod_4())
        {
            byte[] array = GClass5.smethod_4(intptr_0, intptr_1, (uint)IntPtr.Size);
            if (array != null)
            {
                zero = new IntPtr(BitConverter.ToInt32(array, 0));
            }
        }
        return(zero);
    }
Exemple #4
0
 // Token: 0x06000330 RID: 816 RVA: 0x0103825C File Offset: 0x0103645C
 public override IntPtr[] \u200E\u206B\u200D\u202B\u200F\u206A\u206D\u200E\u200E\u206B\u206F\u202E\u200F\u200B\u206E\u202B\u206A\u200E\u206B\u206A\u206C\u202A\u206C\u202B\u206B\u206F\u206A\u200F\u206A\u200E\u202B\u200F\u200F\u200E\u200E\u200B\u200E\u202B\u206D\u202A\u202E(string[] string_0, IntPtr intptr_0)
 {
     this.vmethod_0();
     if (!intptr_0.smethod_4() && !intptr_0.smethod_2(-1L))
     {
         try
         {
             IntPtr   zero   = IntPtr.Zero;
             IntPtr   intPtr = this.vmethod_10(string_0, intptr_0, out zero, 0u);
             IntPtr[] array  = null;
             if (!intPtr.smethod_4())
             {
                 try
                 {
                     if (GClass5.smethod_7(intptr_0, intPtr, 0u, 10000) == 4294967295u)
                     {
                         throw new Exception("Error occurred while executing remote thread.");
                     }
                     byte[] array2 = GClass5.smethod_4(intptr_0, zero, (uint)((uint)string_0.Length << 2));
                     if (array2 == null)
                     {
                         throw new InvalidOperationException("Unable to read from the remote process.");
                     }
                     array = new IntPtr[string_0.Length];
                     for (int i = 0; i < array.Length; i++)
                     {
                         array[i] = new IntPtr(BitConverter.ToInt32(array2, i << 2));
                     }
                 }
                 finally
                 {
                     GClass5.VirtualFreeEx(intptr_0, zero, 0, 32768);
                     GClass5.VirtualFreeEx(intptr_0, intPtr, 0, 32768);
                 }
             }
             return(array);
         }
         catch (Exception exception_)
         {
             this.vmethod_2(exception_);
             return(null);
         }
     }
     throw new ArgumentOutOfRangeException("hProcess", "Invalid process handle specified.");
 }
Exemple #5
0
 // Token: 0x0600034A RID: 842 RVA: 0x010385D4 File Offset: 0x010367D4
 private static uint smethod_2(IntPtr intptr_7, IntPtr intptr_8)
 {
     if (intptr_7.smethod_4() || intptr_7.smethod_2(-1L))
     {
         throw new ArgumentException("Invalid process handle.", "hProcess");
     }
     if (intptr_8.smethod_4())
     {
         throw new ArgumentException("Invalid module handle.", "hModule");
     }
     byte[] array = GClass5.smethod_4(intptr_7, intptr_8, (uint)Marshal.SizeOf(typeof(GStruct6)));
     if (array != null)
     {
         ushort num  = BitConverter.ToUInt16(array, 0);
         uint   num2 = BitConverter.ToUInt32(array, 60);
         if (num == 23117)
         {
             byte[] array2 = GClass5.smethod_4(intptr_7, intptr_8.smethod_0((long)((ulong)num2)), (uint)Marshal.SizeOf(typeof(GStruct9)));
             if (array2 != null && BitConverter.ToUInt32(array2, 0) == 17744u)
             {
                 GStruct9 gstruct = default(GStruct9);
                 uint     addressOfEntryPoint;
                 using (GClass9 gclass = new GClass9(256))
                 {
                     if (!gclass.method_9 <GStruct9>(array2, out gstruct))
                     {
                         return(0u);
                     }
                     addressOfEntryPoint = gstruct.OptionalHeader.AddressOfEntryPoint;
                 }
                 return(addressOfEntryPoint);
             }
         }
     }
     return(0u);
 }
Exemple #6
0
    // Token: 0x06000384 RID: 900 RVA: 0x010399F8 File Offset: 0x01037BF8
    public override bool[] \u202B\u200E\u206C\u200C\u202C\u200F\u202C\u206C\u202D\u200F\u206B\u200B\u200B\u206E\u200D\u200C\u206C\u200C\u206F\u206E\u206D\u200C\u200B\u202C\u200B\u202D\u202C\u206B\u206B\u206D\u202E\u202B\u202D\u200C\u206D\u206D\u206D\u202A\u202D\u206C\u202E(IntPtr[] intptr_0, IntPtr intptr_1)
    {
        this.vmethod_0();
        IntPtr intPtr  = IntPtr.Zero;
        IntPtr intPtr2 = IntPtr.Zero;
        IntPtr intPtr3 = IntPtr.Zero;

        bool[] result;
        try
        {
            uint   num         = 0u;
            IntPtr procAddress = GClass5.GetProcAddress(GClass5.GetModuleHandleA("kernel32.dll"), "FreeLibrary");
            if (procAddress.smethod_4())
            {
                throw new Exception("Unable to find necessary function entry points in the remote process");
            }
            intPtr  = GClass5.VirtualAllocEx(intptr_1, IntPtr.Zero, (uint)((uint)intptr_0.Length << 2), 12288, 4);
            intPtr2 = GClass5.VirtualAllocEx(intptr_1, IntPtr.Zero, (uint)((uint)(intptr_0.Length + 1) << 2), 12288, 4);
            intPtr3 = GClass5.VirtualAllocEx(intptr_1, IntPtr.Zero, (uint)Class8.byte_1.Length, 12288, 64);
            if (!intPtr.smethod_4() && !intPtr2.smethod_4() && !intPtr3.smethod_4())
            {
                byte[] array = new byte[intptr_0.Length + 1 << 2];
                for (int i = 0; i < intptr_0.Length; i++)
                {
                    BitConverter.GetBytes(intptr_0[i].ToInt32()).CopyTo(array, i << 2);
                }
                GClass5.WriteProcessMemory(intptr_1, intPtr2, array, array.Length, out num);
                byte[] array2 = (byte[])Class8.byte_1.Clone();
                BitConverter.GetBytes(intPtr2.ToInt32()).CopyTo(array2, 7);
                BitConverter.GetBytes(intPtr.ToInt32()).CopyTo(array2, 15);
                BitConverter.GetBytes(procAddress.smethod_7(intPtr3.smethod_0(56L)).ToInt32()).CopyTo(array2, 52);
                if (GClass5.WriteProcessMemory(intptr_1, intPtr3, array2, array2.Length, out num))
                {
                    if ((ulong)num == (ulong)((long)array2.Length))
                    {
                        if (GClass5.smethod_7(intptr_1, intPtr3, 0u, 1000) == 4294967295u)
                        {
                            throw new InvalidOperationException("Error occurred when running remote function stub.");
                        }
                        byte[] array3 = GClass5.smethod_4(intptr_1, intPtr, (uint)((uint)intptr_0.Length << 2));
                        if (array3 == null)
                        {
                            throw new Exception("Unable to read results from the remote process.");
                        }
                        bool[] array4 = new bool[intptr_0.Length];
                        for (int i = 0; i < array4.Length; i++)
                        {
                            array4[i] = (BitConverter.ToInt32(array3, i << 2) != 0);
                        }
                        return(array4);
                    }
                }
                throw new InvalidOperationException("Unable to write the function stub to the remote process.");
            }
            throw new InvalidOperationException("Unable to allocate memory in the remote process");
        }
        catch (Exception exception_)
        {
            this.vmethod_2(exception_);
            result = null;
        }
        finally
        {
            GClass5.VirtualFreeEx(intptr_1, intPtr3, 0, 32768);
            GClass5.VirtualFreeEx(intptr_1, intPtr, 0, 32768);
            GClass5.VirtualFreeEx(intptr_1, intPtr2, 0, 32768);
        }
        return(result);
    }
Exemple #7
0
    // Token: 0x06000278 RID: 632 RVA: 0x010369A0 File Offset: 0x01034BA0
    public static IntPtr smethod_3(IntPtr intptr_0, IntPtr intptr_1, object object_0)
    {
        IntPtr result = IntPtr.Zero;

        byte[] array = GClass5.smethod_4(intptr_0, intptr_1, 64u);
        if (array == null || BitConverter.ToUInt16(array, 0) != 23117)
        {
            return(result);
        }
        uint num = BitConverter.ToUInt32(array, 60);

        if (num > 0u)
        {
            byte[] array2 = GClass5.smethod_4(intptr_0, intptr_1.smethod_0((long)((ulong)num)), 264u);
            if (array2 != null)
            {
                if (BitConverter.ToUInt32(array2, 0) == 17744u)
                {
                    uint num2 = BitConverter.ToUInt32(array2, 120);
                    uint num3 = BitConverter.ToUInt32(array2, 124);
                    if (num2 <= 0u || num3 <= 0u)
                    {
                        return(result);
                    }
                    byte[] array3 = GClass5.smethod_4(intptr_0, intptr_1.smethod_0((long)((ulong)num2)), 40u);
                    uint   num4   = BitConverter.ToUInt32(array3, 28);
                    uint   num5   = BitConverter.ToUInt32(array3, 36);
                    uint   num6   = BitConverter.ToUInt32(array3, 20);
                    int    num7   = -1;
                    if (num4 <= 0u || num5 <= 0u)
                    {
                        return(result);
                    }
                    if (object_0.GetType().Equals(typeof(string)))
                    {
                        int num8 = GClass5.smethod_8(intptr_0, intptr_1, array3, (string)object_0);
                        if (num8 > -1)
                        {
                            byte[] array4 = GClass5.smethod_4(intptr_0, intptr_1.smethod_0((long)((ulong)num5 + (ulong)((long)((long)num8 << 1)))), 2u);
                            num7 = ((array4 == null) ? -1 : ((int)BitConverter.ToUInt16(array4, 0)));
                        }
                    }
                    else if (object_0.GetType().Equals(typeof(short)) || object_0.GetType().Equals(typeof(ushort)))
                    {
                        num7 = int.Parse(object_0.ToString());
                    }
                    if (num7 <= -1 || (long)num7 >= (long)((ulong)num6))
                    {
                        return(result);
                    }
                    byte[] array5 = GClass5.smethod_4(intptr_0, intptr_1.smethod_0((long)((ulong)num4 + (ulong)((long)((long)num7 << 2)))), 4u);
                    if (array5 == null)
                    {
                        return(result);
                    }
                    uint num9 = BitConverter.ToUInt32(array5, 0);
                    if (num9 >= num2 && num9 < num2 + num3)
                    {
                        string text = GClass5.smethod_6(intptr_0, intptr_1.smethod_0((long)((ulong)num9)), null);
                        if (!string.IsNullOrEmpty(text) && text.Contains("."))
                        {
                            result = GClass5.smethod_3(intptr_0, GClass5.smethod_2(intptr_0, text.Split(new char[]
                            {
                                '.'
                            })[0]), text.Split(new char[]
                            {
                                '.'
                            })[1]);
                        }
                        return(result);
                    }
                    return(intptr_1.smethod_0((long)((ulong)num9)));
                }
            }
            return(result);
        }
        return(result);
    }