Skip to content

Commit d9c73d6

Browse files
committed
Merge branch 'master' of https://github.com/KN4CK3R/ReClass.NET
2 parents aa5047b + d0b26c4 commit d9c73d6

File tree

10 files changed

+245
-8
lines changed

10 files changed

+245
-8
lines changed

Dependencies/nuget.exe

4.83 MB
Binary file not shown.

Makefile

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
all: debug release dist
2+
3+
clean: clean_debug clean_release
4+
5+
debug:
6+
cd ReClass.NET_Launcher && make debug
7+
cd ReClass.NET && make debug
8+
cd NativeCore/Unix && make debug
9+
10+
clean_debug:
11+
cd ReClass.NET_Launcher && make clean_debug
12+
cd ReClass.NET && make clean_debug
13+
cd NativeCore/Unix && make clean_debug
14+
rm -rf build/Debug
15+
16+
release:
17+
cd ReClass.NET_Launcher && make release
18+
cd ReClass.NET && make release
19+
cd NativeCore/Unix && make release
20+
21+
clean_release:
22+
cd ReClass.NET_Launcher && make clean_release
23+
cd ReClass.NET && make clean_release
24+
cd NativeCore/Unix && make clean_release
25+
rm -rf build/Release
26+
27+
update:
28+
cd ReClass.NET && make update
29+
30+
dist:
31+
test -d build || mkdir -p build
32+
cp -r ReClass.NET/bin/* build/
33+
cp -r ReClass.NET_Launcher/bin/* build/
34+
cp NativeCore/Unix/build/debug/NativeCore.so build/Debug/x64
35+
cp NativeCore/Unix/build/release/NativeCore.so build/Release/x64
36+
test -d build/Debug/x86/Plugins || mkdir build/Debug/x86/Plugins
37+
test -d build/Debug/x64/Plugins || mkdir build/Debug/x64/Plugins
38+
test -d build/Release/x86/Plugins || mkdir build/Release/x86/Plugins
39+
test -d build/Release/x64/Plugins || mkdir build/Release/x64/Plugins
40+
test -d build/Debug/x86 && cp -r Dependencies/x86/* build/Debug/x86
41+
test -d build/Debug/x64 && cp -r Dependencies/x64/* build/Debug/x64
42+
test -d build/Release/x86 && cp -r Dependencies/x86/* build/Release/x86
43+
test -d build/Release/x64 && cp -r Dependencies/x64/* build/Release/x64

NativeCore/ReClassNET_Plugin.hpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@
77
#include <locale>
88
#include <cstring>
99

10+
// OS Specific
11+
12+
#ifdef __linux__
13+
#define __stdcall __attribute__((__stdcall__))
14+
#endif
15+
1016
// Types
1117

1218
using RC_Pointer = void*;

NativeCore/Unix/Makefile

Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
WORKDIR = `pwd`
2+
3+
CC = gcc
4+
CXX = g++
5+
AR = ar
6+
LD = g++
7+
WINDRES = windres
8+
9+
INC = -I../Dependencies/beaengine/include
10+
CFLAGS = -Wall -fPIC -D RECLASSNET64=1
11+
RESINC =
12+
LIBDIR =
13+
LIB = -lstdc++fs
14+
LDFLAGS = -shared
15+
16+
INC_DEBUG = $(INC)
17+
CFLAGS_DEBUG = $(CFLAGS) -g
18+
RESINC_DEBUG = $(RESINC)
19+
RCFLAGS_DEBUG = $(RCFLAGS)
20+
LIBDIR_DEBUG = $(LIBDIR)
21+
LIB_DEBUG = $(LIB)
22+
LDFLAGS_DEBUG = $(LDFLAGS)
23+
OBJDIR_DEBUG = obj/debug
24+
DEP_DEBUG =
25+
OUT_DEBUG = build/debug/NativeCore.so
26+
27+
INC_RELEASE = $(INC)
28+
CFLAGS_RELEASE = $(CFLAGS) -O2
29+
RESINC_RELEASE = $(RESINC)
30+
RCFLAGS_RELEASE = $(RCFLAGS)
31+
LIBDIR_RELEASE = $(LIBDIR)
32+
LIB_RELEASE = $(LIB)
33+
LDFLAGS_RELEASE = $(LDFLAGS) -s
34+
OBJDIR_RELEASE = obj/release
35+
DEP_RELEASE =
36+
OUT_RELEASE = build/release/NativeCore.so
37+
38+
OBJ_DEBUG = $(OBJDIR_DEBUG)/WriteRemoteMemory.o $(OBJDIR_DEBUG)/ReadRemoteMemory.o $(OBJDIR_DEBUG)/OpenRemoteProcess.o $(OBJDIR_DEBUG)/IsProcessValid.o $(OBJDIR_DEBUG)/Input.o $(OBJDIR_DEBUG)/EnumerateRemoteSectionsAndModules.o $(OBJDIR_DEBUG)/EnumerateProcesses.o $(OBJDIR_DEBUG)/DisassembleCode.o $(OBJDIR_DEBUG)/Debugger.o $(OBJDIR_DEBUG)/ControlRemoteProcess.o $(OBJDIR_DEBUG)/CloseRemoteProcess.o $(OBJDIR_DEBUG)/BaeEngine.o
39+
40+
OBJ_RELEASE = $(OBJDIR_RELEASE)/WriteRemoteMemory.o $(OBJDIR_RELEASE)/ReadRemoteMemory.o $(OBJDIR_RELEASE)/OpenRemoteProcess.o $(OBJDIR_RELEASE)/IsProcessValid.o $(OBJDIR_RELEASE)/Input.o $(OBJDIR_RELEASE)/EnumerateRemoteSectionsAndModules.o $(OBJDIR_RELEASE)/EnumerateProcesses.o $(OBJDIR_RELEASE)/DisassembleCode.o $(OBJDIR_RELEASE)/Debugger.o $(OBJDIR_RELEASE)/ControlRemoteProcess.o $(OBJDIR_RELEASE)/CloseRemoteProcess.o $(OBJDIR_RELEASE)/BaeEngine.o
41+
42+
all: debug release
43+
44+
clean: clean_debug clean_release
45+
46+
before_debug:
47+
test -d build/debug || mkdir -p build/debug
48+
test -d $(OBJDIR_DEBUG) || mkdir -p $(OBJDIR_DEBUG)
49+
50+
after_debug:
51+
52+
debug: before_debug out_debug after_debug
53+
54+
out_debug: before_debug $(OBJ_DEBUG) $(DEP_DEBUG)
55+
$(CXX) $(LIBDIR_DEBUG) -o $(OUT_DEBUG) $(OBJ_DEBUG) $(LDFLAGS_DEBUG) $(LIB_DEBUG)
56+
57+
$(OBJDIR_DEBUG)/WriteRemoteMemory.o: WriteRemoteMemory.cpp
58+
$(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c WriteRemoteMemory.cpp -o $(OBJDIR_DEBUG)/WriteRemoteMemory.o
59+
60+
$(OBJDIR_DEBUG)/ReadRemoteMemory.o: ReadRemoteMemory.cpp
61+
$(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c ReadRemoteMemory.cpp -o $(OBJDIR_DEBUG)/ReadRemoteMemory.o
62+
63+
$(OBJDIR_DEBUG)/OpenRemoteProcess.o: OpenRemoteProcess.cpp
64+
$(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c OpenRemoteProcess.cpp -o $(OBJDIR_DEBUG)/OpenRemoteProcess.o
65+
66+
$(OBJDIR_DEBUG)/IsProcessValid.o: IsProcessValid.cpp
67+
$(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c IsProcessValid.cpp -o $(OBJDIR_DEBUG)/IsProcessValid.o
68+
69+
$(OBJDIR_DEBUG)/Input.o: Input.cpp
70+
$(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c Input.cpp -o $(OBJDIR_DEBUG)/Input.o
71+
72+
$(OBJDIR_DEBUG)/EnumerateRemoteSectionsAndModules.o: EnumerateRemoteSectionsAndModules.cpp
73+
$(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c EnumerateRemoteSectionsAndModules.cpp -o $(OBJDIR_DEBUG)/EnumerateRemoteSectionsAndModules.o
74+
75+
$(OBJDIR_DEBUG)/EnumerateProcesses.o: EnumerateProcesses.cpp
76+
$(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c EnumerateProcesses.cpp -o $(OBJDIR_DEBUG)/EnumerateProcesses.o
77+
78+
$(OBJDIR_DEBUG)/DisassembleCode.o: DisassembleCode.cpp
79+
$(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c DisassembleCode.cpp -o $(OBJDIR_DEBUG)/DisassembleCode.o
80+
81+
$(OBJDIR_DEBUG)/Debugger.o: Debugger.cpp
82+
$(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c Debugger.cpp -o $(OBJDIR_DEBUG)/Debugger.o
83+
84+
$(OBJDIR_DEBUG)/ControlRemoteProcess.o: ControlRemoteProcess.cpp
85+
$(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c ControlRemoteProcess.cpp -o $(OBJDIR_DEBUG)/ControlRemoteProcess.o
86+
87+
$(OBJDIR_DEBUG)/CloseRemoteProcess.o: CloseRemoteProcess.cpp
88+
$(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c CloseRemoteProcess.cpp -o $(OBJDIR_DEBUG)/CloseRemoteProcess.o
89+
90+
$(OBJDIR_DEBUG)/BaeEngine.o: ../Dependencies/beaengine/src/BeaEngine.c
91+
$(CXX) $(CFLAGS_DEBUG) $(INC_DEBUG) -c ../Dependencies/beaengine/src/BeaEngine.c -o $(OBJDIR_DEBUG)/BaeEngine.o
92+
93+
clean_debug:
94+
rm -f $(OBJ_DEBUG) $(OUT_DEBUG)
95+
rm -rf build/debug
96+
rm -rf $(OBJDIR_DEBUG)
97+
98+
before_release:
99+
test -d build/release || mkdir -p build/release
100+
test -d $(OBJDIR_RELEASE) || mkdir -p $(OBJDIR_RELEASE)
101+
102+
after_release:
103+
104+
release: before_release out_release after_release
105+
106+
out_release: before_release $(OBJ_RELEASE) $(DEP_RELEASE)
107+
$(LD) $(LIBDIR_RELEASE) -o $(OUT_RELEASE) $(OBJ_RELEASE) $(LDFLAGS_RELEASE) $(LIB_RELEASE)
108+
109+
$(OBJDIR_RELEASE)/WriteRemoteMemory.o: WriteRemoteMemory.cpp
110+
$(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c WriteRemoteMemory.cpp -o $(OBJDIR_RELEASE)/WriteRemoteMemory.o
111+
112+
$(OBJDIR_RELEASE)/ReadRemoteMemory.o: ReadRemoteMemory.cpp
113+
$(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c ReadRemoteMemory.cpp -o $(OBJDIR_RELEASE)/ReadRemoteMemory.o
114+
115+
$(OBJDIR_RELEASE)/OpenRemoteProcess.o: OpenRemoteProcess.cpp
116+
$(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c OpenRemoteProcess.cpp -o $(OBJDIR_RELEASE)/OpenRemoteProcess.o
117+
118+
$(OBJDIR_RELEASE)/IsProcessValid.o: IsProcessValid.cpp
119+
$(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c IsProcessValid.cpp -o $(OBJDIR_RELEASE)/IsProcessValid.o
120+
121+
$(OBJDIR_RELEASE)/Input.o: Input.cpp
122+
$(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c Input.cpp -o $(OBJDIR_RELEASE)/Input.o
123+
124+
$(OBJDIR_RELEASE)/EnumerateRemoteSectionsAndModules.o: EnumerateRemoteSectionsAndModules.cpp
125+
$(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c EnumerateRemoteSectionsAndModules.cpp -o $(OBJDIR_RELEASE)/EnumerateRemoteSectionsAndModules.o
126+
127+
$(OBJDIR_RELEASE)/EnumerateProcesses.o: EnumerateProcesses.cpp
128+
$(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c EnumerateProcesses.cpp -o $(OBJDIR_RELEASE)/EnumerateProcesses.o
129+
130+
$(OBJDIR_RELEASE)/DisassembleCode.o: DisassembleCode.cpp
131+
$(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c DisassembleCode.cpp -o $(OBJDIR_RELEASE)/DisassembleCode.o
132+
133+
$(OBJDIR_RELEASE)/Debugger.o: Debugger.cpp
134+
$(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c Debugger.cpp -o $(OBJDIR_RELEASE)/Debugger.o
135+
136+
$(OBJDIR_RELEASE)/ControlRemoteProcess.o: ControlRemoteProcess.cpp
137+
$(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c ControlRemoteProcess.cpp -o $(OBJDIR_RELEASE)/ControlRemoteProcess.o
138+
139+
$(OBJDIR_RELEASE)/CloseRemoteProcess.o: CloseRemoteProcess.cpp
140+
$(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c CloseRemoteProcess.cpp -o $(OBJDIR_RELEASE)/CloseRemoteProcess.o
141+
142+
$(OBJDIR_RELEASE)/BaeEngine.o: ../Dependencies/beaengine/src/BeaEngine.c
143+
$(CXX) $(CFLAGS_RELEASE) $(INC_RELEASE) -c ../Dependencies/beaengine/src/BeaEngine.c -o $(OBJDIR_RELEASE)/BaeEngine.o
144+
145+
clean_release:
146+
rm -f $(OBJ_RELEASE) $(OUT_RELEASE)
147+
rm -rf build/release
148+
rm -rf $(OBJDIR_RELEASE)
149+
150+
.PHONY: before_debug after_debug clean_debug before_release after_release clean_release

ReClass.NET/Makefile

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
all: debug release
2+
3+
clean: clean_debug clean_release
4+
5+
debug:
6+
xbuild /p:Configuration=Debug /p:Platform=x86 ReClass.NET.csproj
7+
xbuild /p:Configuration=Debug /p:Platform=x64 ReClass.NET.csproj
8+
9+
clean_debug:
10+
xbuild /t:Clean ReClass.NET.csproj
11+
12+
release:
13+
xbuild /p:Configuration=Release /p:Platform=x86 ReClass.NET.csproj
14+
xbuild /p:Configuration=Release /p:Platform=x64 ReClass.NET.csproj
15+
16+
clean_release:
17+
xbuild /t:Clean ReClass.NET.csproj
18+
19+
update:
20+
mono --runtime=v4.0 ../Dependencies/nuget.exe restore ReClass.NET.csproj -SolutionDirectory ../

ReClass.NET/Memory/ProcessInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public ProcessInfo(IntPtr id, string name, string path)
2626
{
2727
using (var i = NativeMethods.GetIconForFile(Path))
2828
{
29-
return i.ToBitmap();
29+
return i?.ToBitmap();
3030
}
3131
});
3232
}

ReClass.NET/Plugins/PluginInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public PluginInfo(string filePath, FileVersionInfo versionInfo)
3434
Contract.Requires(versionInfo != null);
3535

3636
FilePath = filePath;
37-
IsNative = versionInfo.ProductName == PluginNativeName;
37+
IsNative = versionInfo.ProductName == null ? true : (versionInfo.ProductName == PluginNativeName);
3838

3939
FileVersion = (versionInfo.FileVersion ?? string.Empty).Trim();
4040

ReClass.NET/Plugins/PluginManager.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,17 +39,19 @@ public void LoadAllPlugins(string path, ILogger logger)
3939

4040
var directory = new DirectoryInfo(path);
4141

42-
LoadPlugins(directory.GetFiles("*.dll"), logger);
42+
LoadPlugins(directory.GetFiles("*.dll"), logger, true);
4343

44-
LoadPlugins(directory.GetFiles("*.exe"), logger);
44+
LoadPlugins(directory.GetFiles("*.exe"), logger, true);
45+
46+
LoadPlugins(directory.GetFiles("*.so"), logger, false);
4547
}
4648
catch (Exception ex)
4749
{
4850
logger.Log(ex);
4951
}
5052
}
5153

52-
private void LoadPlugins(IEnumerable<FileInfo> files, ILogger logger)
54+
private void LoadPlugins(IEnumerable<FileInfo> files, ILogger logger, bool checkProductName)
5355
{
5456
// TODO: How to include plugin infos for unix files as they don't have embedded version info.
5557

@@ -63,7 +65,7 @@ private void LoadPlugins(IEnumerable<FileInfo> files, ILogger logger)
6365
{
6466
fvi = FileVersionInfo.GetVersionInfo(fi.FullName);
6567

66-
if (fvi.ProductName != PluginInfo.PluginName && fvi.ProductName != PluginInfo.PluginNativeName)
68+
if (checkProductName && fvi.ProductName != PluginInfo.PluginName && fvi.ProductName != PluginInfo.PluginNativeName)
6769
{
6870
continue;
6971
}

ReClass.NET/ReClass.NET.csproj

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -932,7 +932,8 @@
932932
</ItemGroup>
933933
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
934934
<PropertyGroup>
935-
<PreBuildEvent>powershell -Command "((Get-Date).ToUniversalTime()).ToString(\"yyyy\/MM\/dd HH:mm:ss\") | Out-File '$(ProjectDir)Resources\BuildDate.txt'"</PreBuildEvent>
935+
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">powershell -Command "((Get-Date).ToUniversalTime()).ToString(\"yyyy\/MM\/dd HH:mm:ss\") | Out-File '$(ProjectDir)Resources\BuildDate.txt'"</PreBuildEvent>
936+
<PreBuildEvent Condition=" '$(OS)' == 'Unix' ">date +"%Y/%m/%d %H:%M:%S" > $(ProjectDir)/Resources/BuildDate.txt</PreBuildEvent>
936937
</PropertyGroup>
937938
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
938939
<PropertyGroup>
@@ -947,4 +948,4 @@
947948
<Target Name="AfterBuild">
948949
</Target>
949950
-->
950-
</Project>
951+
</Project>

ReClass.NET_Launcher/Makefile

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
all: debug release
2+
3+
clean: clean_debug clean_release
4+
5+
debug:
6+
xbuild /p:Configuration=Debug ReClass.NET_Launcher.csproj
7+
8+
clean_debug:
9+
xbuild /t:Clean ReClass.NET_Launcher.csproj
10+
11+
release:
12+
xbuild /p:Configuration=Release ReClass.NET_Launcher.csproj
13+
14+
clean_release:
15+
xbuild /t:Clean ReClass.NET_Launcher.csproj

0 commit comments

Comments
 (0)