Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
उपकरण/GitHubGitHub/ax/apk.sh
एंड्रॉइड सुरक्षागतिशील विश्लेषण (सैंडबॉक्सिंग)पेलोड जनरेशनरिवर्स इंजीनियरिंगमोबाइल सुरक्षाबाइनरी विश्लेषण
GitHubax/apk.sh

apk.sh

एंड्रॉइड ऐप्स के रिवर्स इंजीनियरिंग को आसान बनाता है, APK को खींचने, डिकोड करने, पुनर्निर्माण करने और पैच करने जैसे दोहराए जाने वाले कार्यों को स्वचालित करता है।

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

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

सभी देखें →

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

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

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

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

🕹️ apk.sh

apk.sh एक Bash स्क्रिप्ट है जो Android ऐप्स के रिवर्स इंजीनियरिंग को आसान बनाती है, तथा पुलिंग, डिकोडिंग, रीबिल्डिंग और APK पैचिंग जैसे कुछ दोहराए जाने वाले कार्यों को स्वचालित करती है।

विशेषताएँ

apk.sh मूल रूप से संसाधनों को डिसअसेंबल, डिकोड और रीबिल्ड करने के लिए apktool और frida गैजेट इंजेक्शन प्रक्रिया को स्वचालित करने के लिए कुछ bash का उपयोग करता है। यह ऐप बंडल/स्प्लिट APK को भी सपोर्ट करता है।

  • 🍄 स्टार्ट पर frida-gadget.so लोड करने के लिए APK को पैच करना।
  • 🆕 बिना डीकंपाइलेशन के सीधे बाइटकोड में हेरफेर का समर्थन, इससे डीकंपाइलेशन/रीकंपाइलेशन त्रुटियों से बचा जा सकता है।
  • 🍱 ऐप बंडल/स्प्लिट APK के लिए समर्थन।
  • 🔧 apktool के साथ संसाधनों को लगभग मूल रूप में डिसअसेंबल करना।
  • 🔩 apktool के साथ डिकोड किए गए संसाधनों को वापस बाइनरी APK/JAR में रीबिल्ड करना।
  • 🗝️ apksigner के साथ APK पर कोड हस्ताक्षर करना।
  • 🖥️ एकाधिक आर्क सपोर्ट (arm, arm64, x86, x86_64)।
  • 📵 रूटेड Android डिवाइस की आवश्यकता नहीं।

आरंभ करना

⬅️ डिवाइस से APK खींचना उतना ही सरल है जितना ./apk.sh pull <package_name> चलाना।

🔧 APK को डिकोड करना उतना ही सरल है जितना ./apk.sh decode <apk_name> चलाना।

🔩 APK को रीबिल्ड करना उतना ही सरल है जितना ./apk.sh build <apk_dir> चलाना।

apk.sh pull

apk.sh pull डिवाइस से एक APK खींचता है। यह ऐप बंडल/स्प्लिट APK को सपोर्ट करता है, जिसका अर्थ है कि स्प्लिट APK को एक ही APK में जोड़ दिया जाएगा (यह पैचिंग के लिए उपयोगी है)। यदि पैकेज एक ऐप बंडल/स्प्लिट APK है, तो apk.sh APK को एक ही APK में जोड़ देगा, सभी सार्वजनिक संसाधन पहचानकर्ताओं को ठीक करता है।

apk.sh patch

apk.sh patch स्टार्ट पर frida-gadget.so लोड करने के लिए एक APK को पैच करता है।

frida-gadget.so Frida की एक साझा लाइब्रेरी है जिसे प्रोग्राम द्वारा इंस्ट्रूमेंटेड होने के लिए लोड किया जाना है (जब इंजेक्टेड मोड उपयुक्त न हो)। केवल लाइब्रेरी को लोड करने से आप मौजूदा Frida-आधारित टूल जैसे frida-trace का उपयोग करके इसके साथ बातचीत कर सकेंगे। यह एक पूरी तरह से स्वायत्त दृष्टिकोण का भी समर्थन करता है जहाँ यह बिना किसी बाहरी संचार के फाइलसिस्टम से स्क्रिप्ट चला सकता है।

APK पैच करना उतना ही सरल है जितना ./apk.sh patch <apk_name> --arch arm चलाना।

आप ./apk.sh patch <apk_name> --arch arm --gadget-conf <config.json> के साथ एक json में Frida गैजेट कॉन्फ़िगरेशन भी निर्दिष्ट कर सकते हैं।

यदि आप #30 जैसी "already interned" apktool d त्रुटियों का सामना करते हैं, तो आप --only-main-classes फ़्लैग पास कर सकते हैं, जो आपके APK को डिकोड करते समय apktool को पास किया जाएगा।

🍄 Frida के गैजेट कॉन्फ़िगरेशन

डिफ़ॉल्ट इंटरैक्शन में, Frida Gadget frida-server संगत इंटरफ़ेस को उजागर करता है, डिफ़ॉल्ट रूप से localhost:27042 पर सुनता है। प्रारंभिक इंस्ट्रूमेंटेशन प्राप्त करने के लिए, Frida Gadget के कंस्ट्रक्टर फ़ंक्शन को तब तक ब्लॉक करने देता है जब तक आप या तो attach() करते हैं या resume() कॉल करते हैं।

यदि आप इस ब्लॉकिंग व्यवहार को नहीं चाहते हैं और प्रोग्राम को तुरंत बूट होने देना चाहते हैं, या आप चाहते हैं कि यह किसी भिन्न इंटरफ़ेस या पोर्ट पर सुने, तो आप इसे json कॉन्फ़िगरेशन फ़ाइल के माध्यम से अनुकूलित कर सकते हैं।

डिफ़ॉल्ट कॉन्फ़िगरेशन है:

root@kitploit:~
{
  "interaction": {
    "type": "listen",
    "address": "127.0.0.1",
    "port": 27042,
    "on_port_conflict": "fail",
    "on_load": "wait"
  }
}

आप --gadget-conf विकल्प के साथ गैजेट कॉन्फ़िगरेशन फ़ाइल को apk.sh में पास कर सकते हैं।

स्क्रिप्ट इंटरैक्शन

एक सामान्य सुझाया गया कॉन्फ़िगरेशन हो सकता है:

root@kitploit:~
{
  "interaction": {
    "type": "script",
    "path": "/data/local/tmp/script.js",
    "on_change":"reload"
  }
}

script.js कुछ इस तरह हो सकता है:

root@kitploit:~
var android_log_write = new NativeFunction(
    Module.getExportByName(null, '__android_log_write'),
    'int',
    ['int', 'pointer', 'pointer']
);

var tag = Memory.allocUtf8String("[frida-script][ax]");

var work = function() {
    setTimeout(function() {
        android_log_write(3, tag, Memory.allocUtf8String("ping @ " + Date.now()));
        work();
    }, 1000);
}

work();

android_log_write(3, tag, Memory.allocUtf8String(">--(O.o)-<"));

adb push script.js /data/local/tmp

./apk.sh patch <apk_name> --arch arm --gadget-conf <config.json>

adb install file.gadget.apk

नोट

स्क्रिप्ट इंटरैक्शन प्रकार का उपयोग करते समय frida codeshare से किसी भी स्क्रिप्ट के console.log आउटपुट को logcat पर प्रिंट करने के लिए निम्नलिखित कोड जोड़ें।

root@kitploit:~
// print to logcat the console.log output
// see: https://github.com/frida/frida/issues/382
var android_log_write = new NativeFunction(
    Module.getExportByName(null, '__android_log_write'),
    'int',
    ['int', 'pointer', 'pointer']
);
var tag = Memory.allocUtf8String("[frida-script][ax]");
console.log = function(str) {
    android_log_write(3, tag, Memory.allocUtf8String(str));
}

आवश्यकताएँ

  • apktool
  • apksigner
  • unxz
  • zipalign
  • aapt
  • adb

उपयोग

सारांश (SYNOPSIS)

root@kitploit:~
apk.sh [उपकमांड] [APK फ़ाइल|APK निर्देशिका|PKG नाम] [फ़्लैग]
apk.sh pull [PKG नाम] [फ़्लैग]
apk.sh decode [APK फ़ाइल] [फ़्लैग]
apk.sh build [APK निर्देशिका] [फ़्लैग]
apk.sh patch [APK फ़ाइल] [फ़्लैग]
apk.sh rename [APK फ़ाइल] [PKG नाम] [फ़्लैग]

उपकमांड

root@kitploit:~
pull	डिवाइस/एम्यूलेटर से एक apk खींचें।
decode	एक apk डिकोड करें।
build	एक apk पुनः-बिल्ड करें।
patch	एक apk पैच करें।
rename	apk पैकेज का नाम बदलें।

फ़्लैग

-a, --arch <arch> लक्ष्य आर्किटेक्चर निर्दिष्ट करें, पैच करते समय अनिवार्य है।

-g, --gadget-conf <json_file> एक frida-gadget कॉन्फ़िगरेशन फ़ाइल निर्दिष्ट करें, पैच करते समय वैकल्पिक है।

-n, --net बिल्ड करते समय एक अनुमेय नेटवर्क सुरक्षा कॉन्फ़िगरेशन जोड़ें, वैकल्पिक। इसका उपयोग patch, pull और rename के साथ भी किया जा सकता है।

-r, --no-res डिकोड करते समय संसाधनों को डिकोड न करें (अर्थात् apktool -r), वैकल्पिक। पैच करते समय उपयोग किया जा सकता है।

-s, --no-src डिकोड करते समय dex को डिसअसेंबल न करें (अर्थात् apktool -s), वैकल्पिक। पैच करते समय उपयोग किया जा सकता है।

📃 रुचि के लिंक

https://frida.re/docs/gadget/

https://lief-project.github.io/doc/latest/tutorials/09_frida_lief.html

https://koz.io/using-frida-on-android-without-root/

https://github.com/sensepost/objection/

https://github.com/NickstaDB/patch-apk/

https://neo-geo2.gitbook.io/adventures-on-security/frida-scripting-guide/frida-scripting-guide

https://github.com/ax/DEXPatch

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