diff --git a/files/leechcore.dylib b/files/leechcore.dylib
deleted file mode 100644
index bf99ad2..0000000
Binary files a/files/leechcore.dylib and /dev/null differ
diff --git a/m_vmemd/Makefile.macos b/m_vmemd/Makefile.macos
index d3770d0..37ac1a3 100644
--- a/m_vmemd/Makefile.macos
+++ b/m_vmemd/Makefile.macos
@@ -18,23 +18,47 @@ CFLAGS += -mmacosx-version-min=11.0
LDFLAGS += -dynamiclib -L. ./leechcore.dylib ./vmm.dylib -lm
LDFLAGS += -Wl,-rpath,@loader_path
LDFLAGS += -g -mmacosx-version-min=11.0
-DEPS = vmmdll.h
+
+DEPS =
OBJ = m_vmemd.o oscompatibility.o
-%.o: %.c $(DEPS)
- $(CC) -c -o $@ $< $(CFLAGS)
+# ARCH SPECIFIC FLAGS:
+CFLAGS_X86_64 = $(CFLAGS) -arch x86_64
+CFLAGS_ARM64 = $(CFLAGS) -arch arm64
+LDFLAGS_X86_64 = $(LDFLAGS) -arch x86_64
+LDFLAGS_ARM64 = $(LDFLAGS) -arch arm64
+OBJ_X86_64 = $(OBJ:.o=.o.x86_64)
+OBJ_ARM64 = $(OBJ:.o=.o.arm64)
-m_vmemd: $(OBJ)
+all: m_vmemd.dylib
+
+%.o.x86_64: %.c $(DEPS)
+ $(CC) $(CFLAGS_X86_64) -c -o $@ $<
+
+%.o.arm64: %.c $(DEPS)
+ $(CC) $(CFLAGS_ARM64) -c -o $@ $<
+
+m_vmemd_x86_64.dylib: $(OBJ_X86_64)
+ cp ../files/vmm.dylib . || cp ../../LeechCore*/files/vmm.dylib . || true
cp ../files/leechcore.dylib . || cp ../../LeechCore*/files/leechcore.dylib . || true
- cp ../files/vmm.dylib . || cp ../../MemProcFS*/files/vmm.dylib . || true
- $(CC) $(CFLAGS) $(LDFLAGS) -o m_vmemd.dylib $^
+ $(CC) $(LDFLAGS_X86_64) -o $@ $^
+
+m_vmemd_arm64.dylib: $(OBJ_ARM64)
+ cp ../files/vmm.dylib . || cp ../../LeechCore*/files/vmm.dylib . || true
+ cp ../files/leechcore.dylib . || cp ../../LeechCore*/files/leechcore.dylib . || true
+ $(CC) $(LDFLAGS_ARM64) -o $@ $^
+
+m_vmemd.dylib: m_vmemd_x86_64.dylib m_vmemd_arm64.dylib
+ lipo -create -output m_vmemd.dylib m_vmemd_x86_64.dylib m_vmemd_arm64.dylib
+ install_name_tool -id @rpath/m_vmemd.dylib m_vmemd.dylib
+ mkdir -p ../files/plugins
mv m_vmemd.dylib ../files/plugins/
- rm -f *.o || true
- rm -f */*.o || true
+ rm -f *.o *.o.x86_64 *.o.arm64 || true
+ rm -f */*.o */*.o.x86_64 */*.o.arm64 || true
rm -f *.dylib || true
true
clean:
- rm -f *.o || true
- rm -f */*.o || true
+ rm -f *.o *.o.x86_64 *.o.arm64 || true
+ rm -f */*.o */*.o.x86_64 */*.o.arm64 || true
rm -f *.dylib || true
diff --git a/m_vmemd/version.h b/m_vmemd/version.h
index 12e6ec3..8ccb135 100644
--- a/m_vmemd/version.h
+++ b/m_vmemd/version.h
@@ -3,8 +3,8 @@
#define VERSION_MAJOR 5
#define VERSION_MINOR 14
-#define VERSION_REVISION 0
-#define VERSION_BUILD 190
+#define VERSION_REVISION 1
+#define VERSION_BUILD 191
#define VER_FILE_DESCRIPTION_STR "MemProcFS : Plugin vmemd"
#define VER_FILE_VERSION VERSION_MAJOR, VERSION_MINOR, VERSION_REVISION, VERSION_BUILD
diff --git a/memprocfs/Makefile.macos b/memprocfs/Makefile.macos
index 13aa29f..49d08ae 100644
--- a/memprocfs/Makefile.macos
+++ b/memprocfs/Makefile.macos
@@ -1,9 +1,7 @@
-# brew install pkg-config macfuse openssl
CC=clang
-CFLAGS += -I. -I../includes -D MACOS -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -pthread
-CFLAGS += -I/usr/local/include/fuse -D_FILE_OFFSET_BITS=64
+CFLAGS += -I. -I../includes -D MACOS -D _GNU_SOURCE -D _FILE_OFFSET_BITS=64 -pthread
+CFLAGS += -fPIE -fPIC -fstack-protector -D_FORTIFY_SOURCE=2 -O1
#CFLAGS += `pkg-config fuse --cflags`
-CFLAGS += -fPIC -fPIE -fstack-protector-strong -D_FORTIFY_SOURCE=2 -O1
CFLAGS += -Wall -Wno-enum-compare -Wno-pointer-sign -Wno-multichar -Wno-unused-variable -Wno-unused-value
CFLAGS += -Wno-pointer-to-int-cast -Wno-int-to-pointer-cast
CFLAGS += -mmacosx-version-min=11.0
@@ -16,25 +14,48 @@ LDFLAGS += -ldl -L. ./leechcore.dylib ./vmm.dylib
LDFLAGS += -L/usr/local/lib -lfuse -pthread
LDFLAGS += -Wl,-rpath,@loader_path
LDFLAGS += -mmacosx-version-min=11.0
-DEPS = vfs.h
+
+DEPS = vfslist.h
OBJ = oscompatibility.o charutil.o vfslist.o memprocfs_fuse.o ob/ob_cachemap.o ob/ob_core.o ob/ob_map.o ob/ob_set.o
-%.o: %.c $(DEPS)
- $(CC) -c -o $@ $< $(CFLAGS)
+# ARCH SPECIFIC FLAGS:
+CFLAGS_X86_64 = $(CFLAGS) -arch x86_64
+CFLAGS_ARM64 = $(CFLAGS) -arch arm64
+LDFLAGS_X86_64 = $(LDFLAGS) -arch x86_64
+LDFLAGS_ARM64 = $(LDFLAGS) -arch arm64
+OBJ_X86_64 = $(OBJ:.o=.o.x86_64)
+OBJ_ARM64 = $(OBJ:.o=.o.arm64)
-memprocfs: $(OBJ)
+all: memprocfs
+
+%.o.x86_64: %.c $(DEPS)
+ $(CC) $(CFLAGS_X86_64) -c -o $@ $<
+
+%.o.arm64: %.c $(DEPS)
+ $(CC) $(CFLAGS_ARM64) -c -o $@ $<
+
+memprocfs_x86_64: $(OBJ_X86_64)
cp ../files/vmm.dylib . || cp ../../MemProcFS*/files/vmm.dylib . || true
cp ../files/leechcore.dylib . || cp ../../LeechCore*/files/leechcore.dylib . || true
- $(CC) -o $@ $^ $(CFLAGS) $(LDFLAGS)
+ $(CC) $(LDFLAGS_X86_64) -o $@ $^
+
+memprocfs_arm64: $(OBJ_ARM64)
+ cp ../files/vmm.dylib . || cp ../../MemProcFS*/files/vmm.dylib . || true
+ cp ../files/leechcore.dylib . || cp ../../LeechCore*/files/leechcore.dylib . || true
+ $(CC) $(LDFLAGS_ARM64) -o $@ $^
+
+memprocfs: memprocfs_x86_64 memprocfs_arm64
+ lipo -create -output memprocfs memprocfs_x86_64 memprocfs_arm64
+ install_name_tool -id @rpath/memprocfs memprocfs
mv memprocfs ../files/ |true
mv vmm.dylib ../files/ |true
mv leechcore.dylib ../files/ |true
- rm -f *.o || true
- rm -f */*.o || true
+ rm -f *.o *.o.x86_64 *.o.arm64 || true
+ rm -f */*.o */*.o.x86_64 */*.o.arm64 || true
rm -f *.dylib || true
true
clean:
- rm -f *.o || true
- rm -f */*.o || true
+ rm -f *.o *.o.x86_64 *.o.arm64 || true
+ rm -f */*.o */*.o.x86_64 */*.o.arm64 || true
rm -f *.dylib || true
diff --git a/memprocfs/version.h b/memprocfs/version.h
index 0f08d03..cbeeba3 100644
--- a/memprocfs/version.h
+++ b/memprocfs/version.h
@@ -3,8 +3,8 @@
#define VERSION_MAJOR 5
#define VERSION_MINOR 14
-#define VERSION_REVISION 0
-#define VERSION_BUILD 190
+#define VERSION_REVISION 1
+#define VERSION_BUILD 191
#define VER_FILE_DESCRIPTION_STR "MemProcFS"
#define VER_FILE_VERSION VERSION_MAJOR, VERSION_MINOR, VERSION_REVISION, VERSION_BUILD
diff --git a/vmm/Makefile.macos b/vmm/Makefile.macos
index e1f6bc6..c464407 100644
--- a/vmm/Makefile.macos
+++ b/vmm/Makefile.macos
@@ -11,6 +11,7 @@ CFLAGS += -mmacosx-version-min=11.0
LDFLAGS += -dynamiclib -L. ./leechcore.dylib -lm
LDFLAGS += -Wl,-rpath,@loader_path
LDFLAGS += -g -mmacosx-version-min=11.0
+
DEPS = vmmdll.h
OBJ = oscompatibility.o charutil.o util.o pe.o vmmdll.o vmmdll_core.o \
vmmdll_remote.o vmmdll_scatter.o vmm.o fc.o \
@@ -49,20 +50,41 @@ OBJ = oscompatibility.o charutil.o util.o pe.o vmmdll.o vmmdll_core.o \
modules/m_proc_thread.o modules/m_proc_token.o \
modules/m_proc_virt2phys.o
-%.o: %.c $(DEPS)
- $(CC) -c -o $@ $< $(CFLAGS)
+# ARCH SPECIFIC FLAGS:
+CFLAGS_X86_64 = $(CFLAGS) -arch x86_64
+CFLAGS_ARM64 = $(CFLAGS) -arch arm64
+LDFLAGS_X86_64 = $(LDFLAGS) -arch x86_64
+LDFLAGS_ARM64 = $(LDFLAGS) -arch arm64
+OBJ_X86_64 = $(OBJ:.o=.o.x86_64)
+OBJ_ARM64 = $(OBJ:.o=.o.arm64)
-leechcore: $(OBJ)
+all: vmm.dylib
+
+%.o.x86_64: %.c $(DEPS)
+ $(CC) $(CFLAGS_X86_64) -c -o $@ $<
+
+%.o.arm64: %.c $(DEPS)
+ $(CC) $(CFLAGS_ARM64) -c -o $@ $<
+
+vmm_x86_64.dylib: $(OBJ_X86_64)
cp ../files/leechcore.dylib . || cp ../../LeechCore*/files/leechcore.dylib . || true
- $(CC) $(CFLAGS) $(LDFLAGS) -o vmm.dylib $^
+ $(CC) $(LDFLAGS_X86_64) -o $@ $^
+
+vmm_arm64.dylib: $(OBJ_ARM64)
+ cp ../files/leechcore.dylib . || cp ../../LeechCore*/files/leechcore.dylib . || true
+ $(CC) $(LDFLAGS_ARM64) -o $@ $^
+
+vmm.dylib: vmm_x86_64.dylib vmm_arm64.dylib
+ lipo -create -output vmm.dylib vmm_x86_64.dylib vmm_arm64.dylib
+ install_name_tool -id @rpath/vmm.dylib vmm.dylib
mv vmm.dylib ../files/
mv leechcore.dylib ../files/
- rm -f *.o || true
- rm -f */*.o || true
+ rm -f *.o *.o.x86_64 *.o.arm64 || true
+ rm -f */*.o */*.o.x86_64 */*.o.arm64 || true
rm -f *.dylib || true
true
clean:
- rm -f *.o || true
- rm -f */*.o || true
+ rm -f *.o *.o.x86_64 *.o.arm64 || true
+ rm -f */*.o */*.o.x86_64 */*.o.arm64 || true
rm -f *.dylib || true
diff --git a/vmm/version.h b/vmm/version.h
index 3027a8a..9803727 100644
--- a/vmm/version.h
+++ b/vmm/version.h
@@ -3,8 +3,8 @@
#define VERSION_MAJOR 5
#define VERSION_MINOR 14
-#define VERSION_REVISION 0
-#define VERSION_BUILD 190
+#define VERSION_REVISION 1
+#define VERSION_BUILD 191
#define VER_FILE_DESCRIPTION_STR "MemProcFS : Core"
#define VER_FILE_VERSION VERSION_MAJOR, VERSION_MINOR, VERSION_REVISION, VERSION_BUILD
diff --git a/vmmpyc/version.h b/vmmpyc/version.h
index 62b49cd..26a4e55 100644
--- a/vmmpyc/version.h
+++ b/vmmpyc/version.h
@@ -3,8 +3,8 @@
#define VERSION_MAJOR 5
#define VERSION_MINOR 14
-#define VERSION_REVISION 0
-#define VERSION_BUILD 190
+#define VERSION_REVISION 1
+#define VERSION_BUILD 191
#define VER_FILE_DESCRIPTION_STR "MemProcFS : Python API"
#define VER_FILE_VERSION VERSION_MAJOR, VERSION_MINOR, VERSION_REVISION, VERSION_BUILD
diff --git a/vmmrust/leechcore_example/Cargo.toml b/vmmrust/leechcore_example/Cargo.toml
index 65538fa..23ecf95 100644
--- a/vmmrust/leechcore_example/Cargo.toml
+++ b/vmmrust/leechcore_example/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "leechcore_example"
-version = "5.14.0"
+version = "5.14.1"
edition = "2021"
publish = false
diff --git a/vmmrust/m_example_plugin/Cargo.toml b/vmmrust/m_example_plugin/Cargo.toml
index 429334c..a7e8679 100644
--- a/vmmrust/m_example_plugin/Cargo.toml
+++ b/vmmrust/m_example_plugin/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "m_example_plugin"
-version = "5.14.0"
+version = "5.14.1"
edition = "2021"
publish = false
diff --git a/vmmrust/memprocfs/Cargo.toml b/vmmrust/memprocfs/Cargo.toml
index 8b15f2c..db7bc3a 100644
--- a/vmmrust/memprocfs/Cargo.toml
+++ b/vmmrust/memprocfs/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "memprocfs"
-version = "5.14.0"
+version = "5.14.1"
edition = "2021"
description = "MemProcFS - Physical Memory Analysis Framework"
documentation = "https://docs.rs/memprocfs"
diff --git a/vmmrust/memprocfs_example/Cargo.toml b/vmmrust/memprocfs_example/Cargo.toml
index c39f5e0..81471da 100644
--- a/vmmrust/memprocfs_example/Cargo.toml
+++ b/vmmrust/memprocfs_example/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "memprocfs_example"
-version = "5.14.0"
+version = "5.14.1"
edition = "2021"
publish = false
diff --git a/vmmsharp/vmmsharp/Properties/AssemblyInfo.cs b/vmmsharp/vmmsharp/Properties/AssemblyInfo.cs
index d9d8c1d..7a5519b 100644
--- a/vmmsharp/vmmsharp/Properties/AssemblyInfo.cs
+++ b/vmmsharp/vmmsharp/Properties/AssemblyInfo.cs
@@ -32,5 +32,5 @@ using System.Runtime.Versioning;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("5.14.0.190")]
-[assembly: AssemblyFileVersion("5.14.0.190")]
+[assembly: AssemblyVersion("5.14.1.191")]
+[assembly: AssemblyFileVersion("5.14.1.191")]
diff --git a/vmmsharp/vmmsharp/vmmsharp.csproj b/vmmsharp/vmmsharp/vmmsharp.csproj
index 20bda09..e2c0b8d 100644
--- a/vmmsharp/vmmsharp/vmmsharp.csproj
+++ b/vmmsharp/vmmsharp/vmmsharp.csproj
@@ -109,7 +109,7 @@
- 5.14.0
+ 5.14.1
https://github.com/ufrisk/MemProcFS
git
LICENSE