// 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); }
// 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); }
// 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); }
// 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."); }
// 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); }
// 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); }
// 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); }