Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

फ़ीडसंपर्कगोपनीयता© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
nmmp — Android की classes.dex फ़ाइल की सुरक्षा के लिए उपयोग किया जाने वाला dex-vm | Kitploit
उपकरण/GitHubGitHub/maoabc/nmmp
एंड्रॉइड सुरक्षास्थैतिक विश्लेषणगतिशील विश्लेषण (सैंडबॉक्सिंग)कोड विश्लेषणमोबाइल ऐप पेंटेस्टिंगरिवर्स इंजीनियरिंगमोबाइल सुरक्षाबाइनरी विश्लेषण
GitHubmaoabc/nmmp

nmmp

Android की classes.dex फ़ाइल की सुरक्षा के लिए उपयोग किया जाने वाला dex-vm

रिपॉजिटरी देखें
1.2k381181 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

nmmp

Dex-VM के आधार पर डाल्विक बाइटकोड चलाकर dex की सुरक्षा करना और डीकंपाइल करने की कठिनाई बढ़ाना। प्रोजेक्ट दो भागों में विभाजित है: nmm-protect एक शुद्ध Java प्रोजेक्ट है, जो dex को रूपांतरित करता है, dex में मौजूद डेटा को C स्ट्रक्चर में बदलता है, opcode को रैंडमाइज़ करके NDK प्रोजेक्ट जनरेट करता है, और कंपाइल करने के बाद सुरक्षित किया गया apk उत्पन्न करता है। nmmvm एक Android प्रोजेक्ट है, जिसमें dex-vm का कार्यान्वयन और विभिन्न डाल्विक निर्देशों के परीक्षण आदि शामिल हैं।

nmm-protect

  • NDK और पर्यावरण चर कॉन्फ़िगर करें

nmm-protect को कंपाइल न करें, आप सीधे इसका उपयोग करके प्रोजेक्ट और अंतिम apk बनाने का उदाहरण देख सकते हैं, apk प्रोसेसिंग का एक उदाहरण।

उदाहरण लिनक्स वातावरण में परीक्षण किया गया है, विंडोज़ पर भी समस्या नहीं होनी चाहिए, पहले JDK और android sdk तथा ndk इंस्टॉल करें।

vm-protect.jar डाउनलोड करें, पर्यावरण चर ANDROID_SDK_HOME, ANDROID_NDK_HOME कॉन्फ़िगर करें:

export ANDROID_SDK_HOME=/opt/android-sdk
export ANDROID_NDK_HOME=/opt/android-sdk/ndk/22.1.7171670
export CMAKE_PATH=/opt/android-sdk/cmake/3.18.1/   #可选,不配置的话直接使用/bin/cmake
  • APK सुदृढ़ीकरण
java -jar vm-protect-xxx.jar apk input.apk convertRules.txt mapping.txt

निष्पादन पूरा होने पर input.apk की निर्देशिका में एक build निर्देशिका उत्पन्न होगी, जिसमें अंतिम रूप से आउटपुट किया गया apk (build/input-protect.apk), पूर्ण c प्रोजेक्ट dex2c (cmake पर आधारित) तथा प्रसंस्करण के दौरान उत्पन्न .dex आदि शामिल होंगे।
पहली बार चलाने के बाद jar के स्थान पर tools निर्देशिका उत्पन्न होगी, जिसमें config.json है जिसे संपादित करके आप एंड्रॉइड sdk, ndk से संबंधित पथ कॉन्फ़िगर कर सकते हैं।

एक मित्र ने GUI इंटरफ़ेस बनाया है, जिससे उपयोग करना अधिक सुविधाजनक हो जाता है। जिन्हें आवश्यकता हो, वे इसे आज़मा सकते हैं, https://github.com/TimScriptov/nmmp

उत्पन्न apk को इंस्टॉल और उपयोग करने के लिए zipalign से संरेखित (नए संस्करण में apk को संभालने के लिए zipflinger का उपयोग किया गया है, अलग से zipalign का उपयोग करने की आवश्यकता नहीं है) तथा apksigner से हस्ताक्षरित करना आवश्यक है

apksigner sign --ks ~/.myapp.jks build/input-protect-align.apk
  • aab सुदृढ़ीकरण
java -jar vm-protect-xxx.jar aab test.aab convertRules.txt

इसके बाद jarsigner से हस्ताक्षर करना आवश्यक है, या signflinger को एकीकृत करके हस्ताक्षर किया जा सकता है

jarsigner -keystore ~/.myapp.jks -storepass pass -keypass pass test-protect.aab keyAlias
  • aar सुदृढ़ीकरण
java -jar vm-protect-xxx.jar aar testModule.aar convertRules.txt
  • प्रोजेक्ट डाउनलोड और कंपाइल करें
git clone https://github.com/maoabc/nmmp.git
cd nmmp/nmm-protect
./gradlew arsc:build
./gradlew build

成功后会在build/libs生成可直接执行的fatjar।

  • 需要转换的类和方法规则

无转换规则文件,则会转换dex里所有class里的方法(除了构造方法和静态初始化方法)。规则只支持一些简单的情况:

//支持的规则比较简单,*只是被转成正则表达式的.*,支持一些简单的继承关系
class * extends android.app.Activity
class * implements java.io.Serializable
class my.package.AClass
class my.package.* { *; }
class * extends java.util.ArrayList {
  if*;
}


class A {
}
class B extends A {
}
class C extends B {
}
//比如'class * extends A' 只会匹配B而不会再匹配C

nmmvm

nmmvm, dex वर्चुअल मशीन का ठोस कार्यान्वयन है, प्रवेश बिंदु केवल एक फ़ंक्शन है:

jvalue vmInterpret(
        JNIEnv *env,
        const vmCode *code,
        const vmResolver *dvmResolver
);

typedef struct {
    const u2 *insns;             //指令
    const u4 insnsSize;          //指令大小
    regptr_t *regs;                    //寄存器
    u1 *reg_flags;               //寄存器数据类型标记,主要标记是否为对象
    const u1 *triesHandlers;     //异常表
} vmCode;


typedef struct {

    const vmField *(*dvmResolveField)(JNIEnv *env, u4 idx, bool isStatic);

    const vmMethod *(*dvmResolveMethod)(JNIEnv *env, u4 idx, bool isStatic);

    //从类型常量池取得类型名
    const char *(*dvmResolveTypeUtf)(JNIEnv *env, u4 idx);

    //直接返回jclass对象,本地引用需要释放引用
    jclass (*dvmResolveClass)(JNIEnv *env, u4 idx);

    //根据类型名得到class
    jclass (*dvmFindClass)(JNIEnv *env, const char *type);

    //const_string指令加载的字符串对象
    jstring (*dvmConstantString)(JNIEnv *env, u4 idx);

} vmResolver;

vmCode निष्पादन के लिए आवश्यक निर्देश, अपवाद तालिका और रजिस्टर स्थान प्रदान करता है, vmResolver में फ़ंक्शन पॉइंटर्स का एक सेट होता है, जो रनटाइम प्रतीक प्रदान करता है, जैसे field, method आदि। इन दोनों पैरामीटर को अनुकूलित करके विभिन्न हार्डनिंग विधियाँ लागू की जाती हैं, उदाहरण के लिए प्रोजेक्ट में test.cpp में libdex पर आधारित एक सरल vmResolver है, जिसका उपयोग मुख्य रूप से विकास और परीक्षण के लिए किया जाता है। जबकि nmm-protect .dex संबंधित डेटा को c स्ट्रक्चर में परिवर्तित करता है, इसमें opcode रैंडमाइज़ेशन आदि भी शामिल है, और मूल रूप से व्यावहारिक उपयोग के योग्य है।

aar मॉड्यूल हार्डनिंग

वर्तमान में मॉड्यूल संबंधित हार्डनिंग लागू की गई है, उपयोग apk हार्डनिंग के समान है, यदि कोई समस्या हो तो issue उठा सकते हैं।

Licences

nmm-protect gpl लाइसेंस के अंतर्गत जारी किया गया है,nmm-protect licence, dex-vm भाग Apache लाइसेंस के अंतर्गत जारी किया गया है, nmmvm licence. केवल vm भाग ही apk में पैकेज किया जाएगा, nmm-protect केवल dex को परिवर्तित करता है, लाइसेंस उत्पन्न परिणाम को प्रभावित नहीं करता है।

टूल डाउनलोड करें