Skip to content

Commit b22d79b

Browse files
committed
Merge branch 'master' of github.com:ReClassNET/ReClass.NET
2 parents 78fbe80 + bd7b3a0 commit b22d79b

File tree

85 files changed

+203
-75
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

85 files changed

+203
-75
lines changed

ReClass.NET/AddressParser/Interpreter.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
using System;
44
using System.Diagnostics.Contracts;
5+
using ReClassNET.Extensions;
56
using ReClassNET.Memory;
67
using ReClassNET.Util;
78

ReClass.NET/CodeGenerator/CSharpCodeGenerator.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using System.Diagnostics.Contracts;
44
using System.Linq;
55
using System.Text;
6+
using ReClassNET.Extensions;
67
using ReClassNET.Logger;
78
using ReClassNET.Nodes;
89
using ReClassNET.Util;

ReClass.NET/CodeGenerator/CppCodeGenerator.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using System.Diagnostics.Contracts;
44
using System.Linq;
55
using System.Text;
6+
using ReClassNET.Extensions;
67
using ReClassNET.Logger;
78
using ReClassNET.Nodes;
89
using ReClassNET.Util;

ReClass.NET/Core/CoreFunctionsManager.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using System.IO;
55
using System.Windows.Forms;
66
using ReClassNET.Debugger;
7+
using ReClassNET.Extensions;
78
using ReClassNET.Memory;
89
using ReClassNET.Util;
910

ReClass.NET/Core/InternalCoreFunctions.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using System.IO;
33
using System.Runtime.InteropServices;
44
using System.Windows.Forms;
5+
using ReClassNET.Extensions;
56
using ReClassNET.Native;
67
using ReClassNET.Util;
78

ReClass.NET/Core/NativeCoreWrapper.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System;
22
using System.Runtime.InteropServices;
33
using ReClassNET.Debugger;
4+
using ReClassNET.Extensions;
45
using ReClassNET.Native;
56
using ReClassNET.Util;
67

ReClass.NET/DataExchange/ReClass/ReClass2007File.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using System.Data.SQLite;
55
using System.Diagnostics.Contracts;
66
using System.Linq;
7+
using ReClassNET.Extensions;
78
using ReClassNET.Logger;
89
using ReClassNET.Nodes;
910
using ReClassNET.Util;

ReClass.NET/DataExchange/ReClass/ReClassFile.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using System.Drawing;
55
using System.Linq;
66
using System.Xml.Linq;
7+
using ReClassNET.Extensions;
78
using ReClassNET.Logger;
89
using ReClassNET.Nodes;
910
using ReClassNET.UI;

ReClass.NET/DataExchange/ReClass/ReClassNetFile.Read.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using System.IO.Compression;
66
using System.Linq;
77
using System.Xml.Linq;
8+
using ReClassNET.Extensions;
89
using ReClassNET.Logger;
910
using ReClassNET.Nodes;
1011
using ReClassNET.Util;

ReClass.NET/DataExchange/ReClass/ReClassQtFile.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using System.Diagnostics.Contracts;
44
using System.Linq;
55
using System.Xml.Linq;
6+
using ReClassNET.Extensions;
67
using ReClassNET.Logger;
78
using ReClassNET.Nodes;
89
using ReClassNET.Util;

ReClass.NET/Debugger/RemoteDebugger.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using System.Collections.Generic;
33
using System.Diagnostics.Contracts;
44
using System.Linq;
5+
using ReClassNET.Extensions;
56
using ReClassNET.Forms;
67
using ReClassNET.Memory;
78
using ReClassNET.Util;

ReClass.NET/Util/Extension.BinaryReaderWriter.cs renamed to ReClass.NET/Extensions/BinaryReaderWriterExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
using System.Diagnostics.Contracts;
33
using System.IO;
44

5-
namespace ReClassNET.Util
5+
namespace ReClassNET.Extensions
66
{
77
public static class BinaryReaderWriterExtension
88
{

ReClass.NET/Util/Extension.Color.cs renamed to ReClass.NET/Extensions/ColorExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using System.Drawing;
22

3-
namespace ReClassNET.Util
3+
namespace ReClassNET.Extensions
44
{
55
public static class ExtensionColor
66
{

ReClass.NET/Util/Extension.DataGridView.cs renamed to ReClass.NET/Extensions/DataGridViewExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
using System.Collections.Generic;
22
using System.Windows.Forms;
33

4-
namespace ReClassNET.Util
4+
namespace ReClassNET.Extensions
55
{
66
public static class DataGridViewExtension
77
{

ReClass.NET/Util/Extension.Dictionary.cs renamed to ReClass.NET/Extensions/DictionaryExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
using System.Diagnostics.Contracts;
44
using System.Linq;
55

6-
namespace ReClassNET.Util
6+
namespace ReClassNET.Extensions
77
{
88
public static class DictionaryExtension
99
{

ReClass.NET/Util/Extension.Encoding.cs renamed to ReClass.NET/Extensions/EncodingExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
using System;
22
using System.Text;
33

4-
namespace ReClassNET.Util
4+
namespace ReClassNET.Extensions
55
{
66
public static class EncodingExtension
77
{

ReClass.NET/Util/Extensions.cs renamed to ReClass.NET/Extensions/Extensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
using System.Linq;
77
using ReClassNET.Nodes;
88

9-
namespace ReClassNET.Util
9+
namespace ReClassNET.Extensions
1010
{
1111
public static class Extensions
1212
{

ReClass.NET/Util/Extension.FloatingPoint.cs renamed to ReClass.NET/Extensions/FloatingPointExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
using System.Diagnostics;
33
using System.Diagnostics.Contracts;
44

5-
namespace ReClassNET.Util
5+
namespace ReClassNET.Extensions
66
{
77
public static class FloatingPointExtension
88
{

ReClass.NET/Util/Extension.Graphics.cs renamed to ReClass.NET/Extensions/GraphicsExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
using System.Drawing;
22
using System.Windows.Forms;
33

4-
namespace ReClassNET.Util
4+
namespace ReClassNET.Extensions
55
{
66
public static class GraphicsExtension
77
{

ReClass.NET/Util/Extension.IntPtr.cs renamed to ReClass.NET/Extensions/IntPtrExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
using System.Diagnostics;
33
using System.Diagnostics.Contracts;
44

5-
namespace ReClassNET.Util
5+
namespace ReClassNET.Extensions
66
{
77
public static class IntPtrExtension
88
{

ReClass.NET/Util/Extension.Linq.cs renamed to ReClass.NET/Extensions/LinqExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
using System.Diagnostics.Contracts;
55
using System.Linq;
66

7-
namespace ReClassNET.Util
7+
namespace ReClassNET.Extensions
88
{
99
public static class LinqExtension
1010
{

ReClass.NET/Util/Extension.RichTextBox.cs renamed to ReClass.NET/Extensions/RichTextBoxExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
using System.Runtime.InteropServices;
44
using System.Windows.Forms;
55

6-
namespace ReClassNET.Util
6+
namespace ReClassNET.Extensions
77
{
88
public static class RichTextBoxExtension
99
{

ReClass.NET/Util/Extension.Size.cs renamed to ReClass.NET/Extensions/SizeExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using System.Drawing;
22

3-
namespace ReClassNET.Util
3+
namespace ReClassNET.Extensions
44
{
55
public static class SizeExtension
66
{

ReClass.NET/Util/Extension.String.cs renamed to ReClass.NET/Extensions/StringExtensions.cs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@
33
using System.Diagnostics;
44
using System.Diagnostics.Contracts;
55
using System.Linq;
6+
using System.Text.RegularExpressions;
67

7-
namespace ReClassNET.Util
8+
namespace ReClassNET.Extensions
89
{
910
public static class StringExtension
1011
{
@@ -84,5 +85,14 @@ public static string LimitLength(this string s, int length)
8485
}
8586
return s.Substring(0, length);
8687
}
88+
89+
private static readonly Regex HexRegex = new Regex("(0x|h)?([0-9A-F]+)", RegexOptions.Compiled | RegexOptions.IgnoreCase);
90+
public static bool TryGetHexString(this string s, out string value)
91+
{
92+
var match = HexRegex.Match(s);
93+
value = match.Success ? match.Groups[2].Value : null;
94+
95+
return match.Success;
96+
}
8797
}
8898
}

ReClass.NET/Util/Extension.StringReader.cs renamed to ReClass.NET/Extensions/StringReaderExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using System.IO;
22

3-
namespace ReClassNET.Util
3+
namespace ReClassNET.Extensions
44
{
55
public static class StringReaderExtension
66
{

ReClass.NET/Forms/CodeForm.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
using ColorCode;
99
using ColorCode.Parsing;
1010
using ReClassNET.CodeGenerator;
11+
using ReClassNET.Extensions;
1112
using ReClassNET.Logger;
1213
using ReClassNET.Nodes;
1314
using ReClassNET.UI;

ReClass.NET/Forms/FoundCodeForm.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using System.Text;
77
using System.Windows.Forms;
88
using ReClassNET.Debugger;
9+
using ReClassNET.Extensions;
910
using ReClassNET.Memory;
1011
using ReClassNET.Nodes;
1112
using ReClassNET.UI;

ReClass.NET/Forms/MainForm.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
using ReClassNET.CodeGenerator;
1111
using ReClassNET.Core;
1212
using ReClassNET.DataExchange.ReClass;
13+
using ReClassNET.Extensions;
1314
using ReClassNET.Logger;
1415
using ReClassNET.Memory;
1516
using ReClassNET.Nodes;

ReClass.NET/Forms/NamedAddressesForm.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using System.Diagnostics.Contracts;
55
using System.Linq;
66
using System.Windows.Forms;
7+
using ReClassNET.Extensions;
78
using ReClassNET.Memory;
89
using ReClassNET.UI;
910
using ReClassNET.Util;

ReClass.NET/Forms/ScannerForm.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
using System.Threading.Tasks;
1010
using System.Windows.Forms;
1111
using ReClassNET.DataExchange.Scanner;
12+
using ReClassNET.Extensions;
1213
using ReClassNET.Logger;
1314
using ReClassNET.Memory;
1415
using ReClassNET.MemoryScanner;

ReClass.NET/Forms/SettingsForm.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System;
22
using System.Diagnostics.Contracts;
33
using System.Windows.Forms;
4+
using ReClassNET.Extensions;
45
using ReClassNET.Native;
56
using ReClassNET.UI;
67
using ReClassNET.Util;

ReClass.NET/Memory/Disassembler.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using System.Diagnostics.Contracts;
44
using System.Runtime.InteropServices;
55
using ReClassNET.Core;
6+
using ReClassNET.Extensions;
67
using ReClassNET.Util;
78

89
namespace ReClassNET.Memory

ReClass.NET/Memory/MemoryBuffer.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using System.Diagnostics.Contracts;
33
using System.Runtime.InteropServices;
44
using System.Text;
5+
using ReClassNET.Extensions;
56
using ReClassNET.Util;
67

78
namespace ReClassNET.Memory

ReClass.NET/Memory/NodeDissector.cs

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using System.Collections.Generic;
33
using System.Diagnostics.Contracts;
44
using System.Linq;
5+
using ReClassNET.Extensions;
56
using ReClassNET.Nodes;
67
using ReClassNET.Util;
78

@@ -123,17 +124,10 @@ private static Type GuessPointerType(IntPtr address, MemoryBuffer memory)
123124
if (section.Category == SectionCategory.DATA || section.Category == SectionCategory.HEAP) // If the section contains data, it is at least a pointer to a class or something.
124125
{
125126
// Check if it is a vtable. Check if the first 3 values are pointers to a code section.
126-
bool valid = true;
127-
for (var i = 0; i < 3; ++i)
128-
{
129-
var pointee = memory.Process.ReadRemoteIntPtr(address);
130-
if (memory.Process.GetSectionToPointer(pointee)?.Category != SectionCategory.CODE)
131-
{
132-
valid = false;
133-
break;
134-
}
135-
}
136-
if (valid)
127+
var possibleVmt = memory.Process.ReadRemoteObject<ThreePointersData>(address);
128+
if (memory.Process.GetSectionToPointer(possibleVmt.Pointer1)?.Category == SectionCategory.CODE
129+
&& memory.Process.GetSectionToPointer(possibleVmt.Pointer2)?.Category == SectionCategory.CODE
130+
&& memory.Process.GetSectionToPointer(possibleVmt.Pointer3)?.Category == SectionCategory.CODE)
137131
{
138132
return typeof(VTableNode);
139133
}

ReClass.NET/Memory/RemoteProcess.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
using ReClassNET.AddressParser;
1010
using ReClassNET.Core;
1111
using ReClassNET.Debugger;
12+
using ReClassNET.Extensions;
1213
using ReClassNET.Native;
1314
using ReClassNET.Symbols;
1415
using ReClassNET.Util;

ReClass.NET/Memory/UnionDataType.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,4 +69,12 @@ public struct UInt64FloatDoubleData
6969
[FieldOffset(0)]
7070
public double DoubleValue;
7171
}
72+
73+
[StructLayout(LayoutKind.Sequential)]
74+
public struct ThreePointersData
75+
{
76+
public IntPtr Pointer1;
77+
public IntPtr Pointer2;
78+
public IntPtr Pointer3;
79+
}
7280
}

ReClass.NET/MemoryScanner/BytePattern.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using System.IO;
55
using System.Linq;
66
using System.Text;
7+
using ReClassNET.Extensions;
78
using ReClassNET.Util;
89

910
namespace ReClassNET.MemoryScanner

ReClass.NET/MemoryScanner/Comparer/DoubleMemoryComparer.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using System.Diagnostics;
3+
using ReClassNET.Extensions;
34
using ReClassNET.Util;
45

56
namespace ReClassNET.MemoryScanner.Comparer

ReClass.NET/MemoryScanner/Comparer/FloatMemoryComparer.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using System.Diagnostics;
3+
using ReClassNET.Extensions;
34
using ReClassNET.Util;
45

56
namespace ReClassNET.MemoryScanner.Comparer

ReClass.NET/MemoryScanner/Comparer/StringMemoryComparer.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System;
22
using System.Diagnostics;
33
using System.Text;
4+
using ReClassNET.Extensions;
45
using ReClassNET.Util;
56

67
namespace ReClassNET.MemoryScanner.Comparer

ReClass.NET/MemoryScanner/MemoryRecord.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using System.Diagnostics.Contracts;
44
using System.Globalization;
55
using System.Text;
6+
using ReClassNET.Extensions;
67
using ReClassNET.Memory;
78
using ReClassNET.Util;
89

ReClass.NET/MemoryScanner/ScanResultBlock.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System;
22
using System.Collections.Generic;
33
using System.Diagnostics.Contracts;
4+
using ReClassNET.Extensions;
45
using ReClassNET.Util;
56

67
namespace ReClassNET.MemoryScanner

ReClass.NET/MemoryScanner/ScanResultStore.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using System.Diagnostics.Contracts;
44
using System.IO;
55
using System.Text;
6+
using ReClassNET.Extensions;
67
using ReClassNET.Util;
78

89
namespace ReClassNET.MemoryScanner

0 commit comments

Comments
 (0)