maoabc / nmmp

dex-vm used to protect the android classes.dex file
736 stars 260 forks source link

No CMAKE_PATH #65

Open stellawills opened 1 year ago

stellawills commented 1 year ago

I get this error message anytime i run the command. I'm a noob as I don't have much idea, and i did search the internet already.

PS C:\Users\user\Documents> set CMAKE_PATH=C:\Users\user\AppData\Local\Android\Sdk\cmake\3.22.1\bin
PS C:\Users\user\Documents> java -jar nmm-protect-1.2.jar C:\Users\user\Documents\universal.apk
No CMAKE_PATH
Exception in thread "main" com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Invalid escape sequence at line 11 column
 21 path $.path.sdk
        at com.google.gson.Gson.fromJson(Gson.java:947)
        at com.google.gson.Gson.fromJson(Gson.java:897)
        at com.google.gson.Gson.fromJson(Gson.java:846)
        at com.google.gson.Gson.fromJson(Gson.java:817)
        at com.nmmedit.apkprotect.data.Prefs.config(Prefs.java:34)
        at com.nmmedit.apkprotect.data.Prefs.cmakePath(Prefs.java:61)
        at com.nmmedit.apkprotect.ApkProtect.generateNativeLibs(ApkProtect.java:171)
        at com.nmmedit.apkprotect.ApkProtect.run(ApkProtect.java:124)
        at com.nmmedit.protect.Main.main(Main.java:52)
Caused by: com.google.gson.stream.MalformedJsonException: Invalid escape sequence at line 11 column 21 path $.path.sdk
        at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1562)
        at com.google.gson.stream.JsonReader.readEscapeCharacter(JsonReader.java:1553)
        at com.google.gson.stream.JsonReader.nextQuotedValue(JsonReader.java:1013)
        at com.google.gson.stream.JsonReader.nextString(JsonReader.java:814)
        at com.google.gson.internal.bind.TypeAdapters$16.read(TypeAdapters.java:402)
        at com.google.gson.internal.bind.TypeAdapters$16.read(TypeAdapters.java:390)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222)
        at com.google.gson.Gson.fromJson(Gson.java:932)
        ... 8 more
PS C:\Users\user\Documents>

image image

stellawills commented 1 year ago

image

stellawills commented 1 year ago

My last query wasn't answered. i decided to try it on a linux terminal and I get getting same error.

At least can the developer respond?

root@localhost:~# java -jar nmm-protect.jar universal.apk
[/root/cmake/bin/cmake, -H/root/build/dex2c, -DCMAKE_TOOLCHAIN_FILE=/usr/lib/and                                                                        roid-sdk/ndk/android-ndk-r22b/build/cmake/android.toolchain.cmake, -DCMAKE_BUILD                                                                        _TYPE=Release, -DANDROID_ABI=armeabi-v7a, -DANDROID_NDK=/usr/lib/android-sdk/ndk                                                                        /android-ndk-r22b/, -DANDROID_PLATFORM=android-21, -DCMAKE_ANDROID_ARCH_ABI=arme                                                                        abi-v7a, -DCMAKE_ANDROID_NDK=/usr/lib/android-sdk/ndk/android-ndk-r22b/, -DCMAKE                                                                        _EXPORT_COMPILE_COMMANDS=ON, -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/root/build/obj/ar                                                                        meabi-v7a, -DCMAKE_MAKE_PROGRAM=/root/cmake/bin/ninja, -DCMAKE_SYSTEM_NAME=Andro                                                                        id, -DCMAKE_SYSTEM_VERSION=21, -B/root/build/.cxx/cmake/Release/armeabi-v7a, -GN                                                                        inja]
-- Configuring incomplete, errors occurred!
CMake Error at CMakeLists.txt:2 (project):
  Running

   '/root/cmake/bin/ninja' '--version'

  failed with:

   No such file or directory

Exception in thread "main" java.io.IOException: Cmd '[/root/cmake/bin/cmake, -H/                                                                        root/build/dex2c, -DCMAKE_TOOLCHAIN_FILE=/usr/lib/android-sdk/ndk/android-ndk-r2                                                                        2b/build/cmake/android.toolchain.cmake, -DCMAKE_BUILD_TYPE=Release, -DANDROID_AB                                                                        I=armeabi-v7a, -DANDROID_NDK=/usr/lib/android-sdk/ndk/android-ndk-r22b/, -DANDRO                                                                        ID_PLATFORM=android-21, -DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a, -DCMAKE_ANDROID_ND                                                                        K=/usr/lib/android-sdk/ndk/android-ndk-r22b/, -DCMAKE_EXPORT_COMPILE_COMMANDS=ON                                                                        , -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/root/build/obj/armeabi-v7a, -DCMAKE_MAKE_PRO                                                                        GRAM=/root/cmake/bin/ninja, -DCMAKE_SYSTEM_NAME=Android, -DCMAKE_SYSTEM_VERSION=                                                                        21, -B/root/build/.cxx/cmake/Release/armeabi-v7a, -GNinja]' exec failed
        at com.nmmedit.apkprotect.BuildNativeLib.execCmd(BuildNativeLib.java:53)
        at com.nmmedit.apkprotect.BuildNativeLib.build(BuildNativeLib.java:17)
        at com.nmmedit.apkprotect.ApkProtect.generateNativeLibs(ApkProtect.java:                                                                        201)
        at com.nmmedit.apkprotect.ApkProtect.run(ApkProtect.java:124)
        at com.nmmedit.protect.Main.main(Main.java:52)
root@localhost:~#
maoabc commented 1 year ago

/root/cmake/bin/ninja' '--version'

failed with:

No such file or directory

ninja is not installed.

stellawills @.***> 于 2023年2月16日周四 13:56写道:

My last query wasn't answered. i decided to try it on a linux terminal and I get getting same error.

At least can the developer respond?

@.***:~# java -jar nmm-protect.jar universal.apk [/root/cmake/bin/cmake, -H/root/build/dex2c, -DCMAKE_TOOLCHAIN_FILE=/usr/lib/and roid-sdk/ndk/android-ndk-r22b/build/cmake/android.toolchain.cmake, -DCMAKE_BUILD _TYPE=Release, -DANDROID_ABI=armeabi-v7a, -DANDROID_NDK=/usr/lib/android-sdk/ndk /android-ndk-r22b/, -DANDROID_PLATFORM=android-21, -DCMAKE_ANDROID_ARCH_ABI=arme abi-v7a, -DCMAKE_ANDROID_NDK=/usr/lib/android-sdk/ndk/android-ndk-r22b/, -DCMAKE _EXPORT_COMPILE_COMMANDS=ON, -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/root/build/obj/ar meabi-v7a, -DCMAKE_MAKE_PROGRAM=/root/cmake/bin/ninja, -DCMAKE_SYSTEM_NAME=Andro id, -DCMAKE_SYSTEM_VERSION=21, -B/root/build/.cxx/cmake/Release/armeabi-v7a, -GN inja] -- Configuring incomplete, errors occurred! CMake Error at CMakeLists.txt:2 (project): Running

'/root/cmake/bin/ninja' '--version'

failed with:

No such file or directory

Exception in thread "main" java.io.IOException: Cmd '[/root/cmake/bin/cmake, -H/ root/build/dex2c, -DCMAKE_TOOLCHAIN_FILE=/usr/lib/android-sdk/ndk/android-ndk-r2 2b/build/cmake/android.toolchain.cmake, -DCMAKE_BUILD_TYPE=Release, -DANDROID_AB I=armeabi-v7a, -DANDROID_NDK=/usr/lib/android-sdk/ndk/android-ndk-r22b/, -DANDRO ID_PLATFORM=android-21, -DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a, -DCMAKE_ANDROID_ND K=/usr/lib/android-sdk/ndk/android-ndk-r22b/, -DCMAKE_EXPORT_COMPILE_COMMANDS=ON , -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/root/build/obj/armeabi-v7a, -DCMAKE_MAKE_PRO GRAM=/root/cmake/bin/ninja, -DCMAKE_SYSTEM_NAME=Android, -DCMAKE_SYSTEM_VERSION= 21, -B/root/build/.cxx/cmake/Release/armeabi-v7a, -GNinja]' exec failed at com.nmmedit.apkprotect.BuildNativeLib.execCmd(BuildNativeLib.java:53) at com.nmmedit.apkprotect.BuildNativeLib.build(BuildNativeLib.java:17) at com.nmmedit.apkprotect.ApkProtect.generateNativeLibs(ApkProtect.java: 201) at com.nmmedit.apkprotect.ApkProtect.run(ApkProtect.java:124) at com.nmmedit.protect.Main.main(Main.java:52) @.***:~#

— Reply to this email directly, view it on GitHub https://github.com/maoabc/nmmp/issues/65#issuecomment-1432567329, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA27LV3QBHYYSBAK6KVHTV3WXW6SXANCNFSM6AAAAAAUZT757M . You are receiving this because you are subscribed to this thread.Message ID: @.***>

maoabc commented 1 year ago

It is recommended to use the cmake provided by Android, if you don’t know how to configure it.

mao kai @.***> 于 2023年2月16日周四 14:16写道:

/root/cmake/bin/ninja' '--version'

failed with:

No such file or directory

ninja is not installed.

stellawills @.***> 于 2023年2月16日周四 13:56写道:

My last query wasn't answered. i decided to try it on a linux terminal and I get getting same error.

At least can the developer respond?

@.***:~# java -jar nmm-protect.jar universal.apk [/root/cmake/bin/cmake, -H/root/build/dex2c, -DCMAKE_TOOLCHAIN_FILE=/usr/lib/and roid-sdk/ndk/android-ndk-r22b/build/cmake/android.toolchain.cmake, -DCMAKE_BUILD _TYPE=Release, -DANDROID_ABI=armeabi-v7a, -DANDROID_NDK=/usr/lib/android-sdk/ndk /android-ndk-r22b/, -DANDROID_PLATFORM=android-21, -DCMAKE_ANDROID_ARCH_ABI=arme abi-v7a, -DCMAKE_ANDROID_NDK=/usr/lib/android-sdk/ndk/android-ndk-r22b/, -DCMAKE _EXPORT_COMPILE_COMMANDS=ON, -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/root/build/obj/ar meabi-v7a, -DCMAKE_MAKE_PROGRAM=/root/cmake/bin/ninja, -DCMAKE_SYSTEM_NAME=Andro id, -DCMAKE_SYSTEM_VERSION=21, -B/root/build/.cxx/cmake/Release/armeabi-v7a, -GN inja] -- Configuring incomplete, errors occurred! CMake Error at CMakeLists.txt:2 (project): Running

'/root/cmake/bin/ninja' '--version'

failed with:

No such file or directory

Exception in thread "main" java.io.IOException: Cmd '[/root/cmake/bin/cmake, -H/ root/build/dex2c, -DCMAKE_TOOLCHAIN_FILE=/usr/lib/android-sdk/ndk/android-ndk-r2 2b/build/cmake/android.toolchain.cmake, -DCMAKE_BUILD_TYPE=Release, -DANDROID_AB I=armeabi-v7a, -DANDROID_NDK=/usr/lib/android-sdk/ndk/android-ndk-r22b/, -DANDRO ID_PLATFORM=android-21, -DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a, -DCMAKE_ANDROID_ND K=/usr/lib/android-sdk/ndk/android-ndk-r22b/, -DCMAKE_EXPORT_COMPILE_COMMANDS=ON , -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/root/build/obj/armeabi-v7a, -DCMAKE_MAKE_PRO GRAM=/root/cmake/bin/ninja, -DCMAKE_SYSTEM_NAME=Android, -DCMAKE_SYSTEM_VERSION= 21, -B/root/build/.cxx/cmake/Release/armeabi-v7a, -GNinja]' exec failed at com.nmmedit.apkprotect.BuildNativeLib.execCmd(BuildNativeLib.java:53) at com.nmmedit.apkprotect.BuildNativeLib.build(BuildNativeLib.java:17) at com.nmmedit.apkprotect.ApkProtect.generateNativeLibs(ApkProtect.java: 201) at com.nmmedit.apkprotect.ApkProtect.run(ApkProtect.java:124) at com.nmmedit.protect.Main.main(Main.java:52) @.***:~#

— Reply to this email directly, view it on GitHub https://github.com/maoabc/nmmp/issues/65#issuecomment-1432567329, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA27LV3QBHYYSBAK6KVHTV3WXW6SXANCNFSM6AAAAAAUZT757M . You are receiving this because you are subscribed to this thread.Message ID: @.***>

maoabc commented 1 year ago

The generated dex2c directory can also be imported into android studio, and compiled using android studio. Create a new project and add in build.gradle:

externalNativeBuild { cmake { path "xxxxpath/dex2c/CMakeLists.txt" } }

mao kai @.***> 于 2023年2月16日周四 14:28写道:

It is recommended to use the cmake provided by Android, if you don’t know how to configure it.

mao kai @.***> 于 2023年2月16日周四 14:16写道:

/root/cmake/bin/ninja' '--version'

failed with:

No such file or directory

ninja is not installed.

stellawills @.***> 于 2023年2月16日周四 13:56写道:

My last query wasn't answered. i decided to try it on a linux terminal and I get getting same error.

At least can the developer respond?

@.***:~# java -jar nmm-protect.jar universal.apk [/root/cmake/bin/cmake, -H/root/build/dex2c, -DCMAKE_TOOLCHAIN_FILE=/usr/lib/and roid-sdk/ndk/android-ndk-r22b/build/cmake/android.toolchain.cmake, -DCMAKE_BUILD _TYPE=Release, -DANDROID_ABI=armeabi-v7a, -DANDROID_NDK=/usr/lib/android-sdk/ndk /android-ndk-r22b/, -DANDROID_PLATFORM=android-21, -DCMAKE_ANDROID_ARCH_ABI=arme abi-v7a, -DCMAKE_ANDROID_NDK=/usr/lib/android-sdk/ndk/android-ndk-r22b/, -DCMAKE _EXPORT_COMPILE_COMMANDS=ON, -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/root/build/obj/ar meabi-v7a, -DCMAKE_MAKE_PROGRAM=/root/cmake/bin/ninja, -DCMAKE_SYSTEM_NAME=Andro id, -DCMAKE_SYSTEM_VERSION=21, -B/root/build/.cxx/cmake/Release/armeabi-v7a, -GN inja] -- Configuring incomplete, errors occurred! CMake Error at CMakeLists.txt:2 (project): Running

'/root/cmake/bin/ninja' '--version'

failed with:

No such file or directory

Exception in thread "main" java.io.IOException: Cmd '[/root/cmake/bin/cmake, -H/ root/build/dex2c, -DCMAKE_TOOLCHAIN_FILE=/usr/lib/android-sdk/ndk/android-ndk-r2 2b/build/cmake/android.toolchain.cmake, -DCMAKE_BUILD_TYPE=Release, -DANDROID_AB I=armeabi-v7a, -DANDROID_NDK=/usr/lib/android-sdk/ndk/android-ndk-r22b/, -DANDRO ID_PLATFORM=android-21, -DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a, -DCMAKE_ANDROID_ND K=/usr/lib/android-sdk/ndk/android-ndk-r22b/, -DCMAKE_EXPORT_COMPILE_COMMANDS=ON , -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/root/build/obj/armeabi-v7a, -DCMAKE_MAKE_PRO GRAM=/root/cmake/bin/ninja, -DCMAKE_SYSTEM_NAME=Android, -DCMAKE_SYSTEM_VERSION= 21, -B/root/build/.cxx/cmake/Release/armeabi-v7a, -GNinja]' exec failed at com.nmmedit.apkprotect.BuildNativeLib.execCmd(BuildNativeLib.java:53) at com.nmmedit.apkprotect.BuildNativeLib.build(BuildNativeLib.java:17) at com.nmmedit.apkprotect.ApkProtect.generateNativeLibs(ApkProtect.java: 201) at com.nmmedit.apkprotect.ApkProtect.run(ApkProtect.java:124) at com.nmmedit.protect.Main.main(Main.java:52) @.***:~#

— Reply to this email directly, view it on GitHub https://github.com/maoabc/nmmp/issues/65#issuecomment-1432567329, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA27LV3QBHYYSBAK6KVHTV3WXW6SXANCNFSM6AAAAAAUZT757M . You are receiving this because you are subscribed to this thread.Message ID: @.***>

stellawills commented 1 year ago

externalNativeBuild { cmake { path "xxxxpath/dex2c/CMakeLists.txt" } }

root@localhost:~# export CMAKE_PATH=/root/cmake/
root@localhost:~# java -jar nmm-protect.jar universal.apk
Exception in thread "main" java.lang.NullPointerException
        at com.nmmedit.apkprotect.data.Prefs.sdkPath(Prefs.java:57)
        at com.nmmedit.apkprotect.ApkProtect.generateNativeLibs(ApkProtect.java:175)
        at com.nmmedit.apkprotect.ApkProtect.run(ApkProtect.java:124)
        at com.nmmedit.protect.Main.main(Main.java:52)
root@localhost:~#

Here on my linux server I get this and I downloaded ninja already using apt install ninja-build

I'm yet to try it on my windows PC again but I just discovered cmake has been installed already before by Android IDE (Android Studio)

image

stellawills commented 1 year ago

So I was able to successfully run it on windows via android studio using the code externalNativeBuild { cmake { path "xxxxpath/dex2c/CMakeLists.txt" } } image

stellawills commented 1 year ago

I really appreciate the Android Studio method but I have an issue cos if I'm uploading to Google Play Console I need to upload an aab file although I can use apk2abb converter, I also use aabResGuard which protects my res files and to use both would be a problem as nmmp protect only support apk then i decided to use command prompt seems all path are configured correctly now as earlier i did not restart command prompt that why i get the same error but now i get this error with cmd.

C:\Users\user\Documents>java -jar nmm-protect.jar C:\Users\user\ ... \app\release\universal.apk
Exception in thread "main" com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Invalid escape sequence at line 11 column 21 path $.path.sdk
        at com.google.gson.Gson.fromJson(Gson.java:947)
        at com.google.gson.Gson.fromJson(Gson.java:897)
        at com.google.gson.Gson.fromJson(Gson.java:846)
        at com.google.gson.Gson.fromJson(Gson.java:817)
        at com.nmmedit.apkprotect.data.Prefs.config(Prefs.java:34)
        at com.nmmedit.apkprotect.data.Prefs.sdkPath(Prefs.java:57)
        at com.nmmedit.apkprotect.ApkProtect.generateNativeLibs(ApkProtect.java:175)
        at com.nmmedit.apkprotect.ApkProtect.run(ApkProtect.java:124)
        at com.nmmedit.protect.Main.main(Main.java:52)
Caused by: com.google.gson.stream.MalformedJsonException: Invalid escape sequence at line 11 column 21 path $.path.sdk
        at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1562)
        at com.google.gson.stream.JsonReader.readEscapeCharacter(JsonReader.java:1553)
        at com.google.gson.stream.JsonReader.nextQuotedValue(JsonReader.java:1013)
        at com.google.gson.stream.JsonReader.nextString(JsonReader.java:814)
        at com.google.gson.internal.bind.TypeAdapters$16.read(TypeAdapters.java:402)
        at com.google.gson.internal.bind.TypeAdapters$16.read(TypeAdapters.java:390)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222)
        at com.google.gson.Gson.fromJson(Gson.java:932)
        ... 8 more

C:\Users\user\Documents>
maoabc commented 1 year ago

Delete tools/config-windows.json in the same directory as nmm-protect.jar

stellawills commented 1 year ago

I deleted the config.json as there was no config-windows.json. Really appreciate

image

stellawills commented 1 year ago

Trying to install the dex2c protected app shows an invalid package but before using nmm-protect.jar the app installs successfully. Could there be any solution or running the java jar code incorrectly?

[10/10] Linking C shared library C:\Users\user\Documents\ ... \build\obj\arm64-v8a\libnmmp.so
[C:\Users\user\AppData\Local\Android\Sdk\ndk\21.4.7075529\toolchains\aarch64-linux-android-4.9\prebuilt\windows-x86_64\bin\aarch64-linux-android-strip, --strip-unneeded, C:\Users\user\Documents\ ... \build\obj\arm64-v8a\libnmmvm.so]
[C:\Users\user\AppData\Local\Android\Sdk\ndk\21.4.7075529\toolchains\aarch64-linux-android-4.9\prebuilt\windows-x86_64\bin\aarch64-linux-android-strip, --strip-unneeded, C:\Users\user\Documents\ ... \build\obj\arm64-v8a\libnmmp.so]
Exception in thread "main" java.util.zip.ZipException: duplicate entry: lib/armeabi-v7a/libnmmvm.so
        at java.util.zip.ZipOutputStream.putNextEntry(Unknown Source)
        at com.nmmedit.apkprotect.ApkProtect.addFileToZip(ApkProtect.java:160)
        at com.nmmedit.apkprotect.ApkProtect.run(ApkProtect.java:149)
        at com.nmmedit.protect.Main.main(Main.java:52)

C:\Users\user\Documents>
maoabc commented 1 year ago

Use the latest version vm-protect.jar or compile it yourself from source