APK ஐ எவ்வாறு திறப்பது மற்றும் எவ்வாறு திருத்துவது? apktool A நிரலைப் பயன்படுத்தி apk கோப்பைப் பிரித்து அசெம்பிள் செய்யலாம்

சில சமயங்களில் ஆண்ட்ராய்டில் உள்ள சில அப்ளிகேஷன்கள் பயனருக்கு சில வகையில் பொருந்தாது. ஒரு உதாரணம் ஊடுருவும் விளம்பரம். நிரல் அனைவருக்கும் நல்லது என்பதும் நடக்கும், ஆனால் அதில் உள்ள மொழிபெயர்ப்பு வளைந்திருக்கும் அல்லது முற்றிலும் இல்லை. அல்லது, எடுத்துக்காட்டாக, நிரல் ஒரு சோதனை, ஆனால் முழு பதிப்பைப் பெற வழி இல்லை. நிலைமையை எப்படி மாற்றுவது?

அறிமுகம்

இந்த கட்டுரையில், ஒரு APK தொகுப்பை ஒரு பயன்பாட்டுடன் எவ்வாறு பிரிப்பது, அதன் உள் கட்டமைப்பைப் பார்ப்பது, பைட்கோடை பிரித்தெடுப்பது மற்றும் சிதைப்பது எப்படி என்பதைப் பற்றி பேசுவோம், மேலும் பயன்பாடுகளில் பல மாற்றங்களைச் செய்ய முயற்சிப்போம்.

இதையெல்லாம் நீங்களே செய்ய, ஆண்ட்ராய்டு பயன்பாடுகள் எழுதப்பட்ட ஜாவா மொழி மற்றும் ஆண்ட்ராய்டில் எல்லா இடங்களிலும் பயன்படுத்தப்படும் எக்ஸ்எம்எல் மொழி பற்றிய அடிப்படை அறிவு உங்களுக்குத் தேவைப்படும் - பயன்பாட்டை விவரிப்பது மற்றும் சரங்களை சேமிப்பது வரை அதன் அணுகல் உரிமைகள். திரையில் காட்டப்படும். சிறப்பு கன்சோல் மென்பொருளைப் பயன்படுத்தும் திறனும் உங்களுக்குத் தேவைப்படும்.

எனவே, அனைத்து ஆண்ட்ராய்டு மென்பொருட்களும் விநியோகிக்கப்படும் APK தொகுப்பு என்றால் என்ன?

விண்ணப்ப சிதைவு

இந்த கட்டுரையில், நாங்கள் பிரித்தெடுக்கப்பட்ட பயன்பாட்டுக் குறியீட்டுடன் மட்டுமே பணிபுரிந்தோம், ஆனால் பெரிய பயன்பாடுகளில் மிகவும் தீவிரமான மாற்றங்கள் செய்யப்பட்டால், ஸ்மாலி குறியீட்டைப் புரிந்துகொள்வது மிகவும் கடினமாக இருக்கும். அதிர்ஷ்டவசமாக, நாம் டெக்ஸ் குறியீட்டை ஜாவா குறியீட்டில் சிதைக்கலாம், இது அசல் இல்லை மற்றும் மீண்டும் தொகுக்கப்படவில்லை என்றாலும், பயன்பாட்டின் தர்க்கத்தைப் படித்து புரிந்துகொள்வது மிகவும் எளிதானது. இதைச் செய்ய, எங்களுக்கு இரண்டு கருவிகள் தேவைப்படும்:

  • dex2jar என்பது டால்விக் பைட்கோடை JVM பைட்கோடாக மொழிபெயர்ப்பதாகும், அதன் அடிப்படையில் நாம் ஜாவா மொழியில் குறியீட்டைப் பெறலாம்;
  • jd-gui என்பது ஒரு டிகம்பைலர் ஆகும், இது JVM பைட்கோடில் இருந்து படிக்கக்கூடிய ஜாவா குறியீட்டைப் பெற உங்களை அனுமதிக்கிறது. மாற்றாக, நீங்கள் ஜாட் (www.varaneckas.com/jad) ஐப் பயன்படுத்தலாம்; இது மிகவும் பழையதாக இருந்தாலும், சில சமயங்களில் இது Jd-gui ஐ விட அதிகமாக படிக்கக்கூடிய குறியீட்டை உருவாக்குகிறது.

இப்படித்தான் பயன்படுத்த வேண்டும். முதலில், dex2jar ஐ துவக்குகிறோம், apk தொகுப்பிற்கான பாதையை ஒரு வாதமாக குறிப்பிடுகிறோம்:

% dex2jar.sh mail.apk

இதன் விளைவாக, Java தொகுப்பு mail.jar தற்போதைய கோப்பகத்தில் தோன்றும், இது ஏற்கனவே jd-gui இல் ஜாவா குறியீட்டைப் பார்க்க திறக்கப்படலாம்.

APK தொகுப்புகளின் ஏற்பாடு மற்றும் அவற்றைப் பெறுதல்

ஆண்ட்ராய்டு ஆப் பேக்கேஜ் என்பது வழக்கமான ஜிப் கோப்பாகும், அதன் உள்ளடக்கங்களைப் பார்க்க அல்லது பிரித்தெடுக்க எந்த சிறப்புக் கருவிகளும் தேவையில்லை. விண்டோஸுக்கு ஆர்க்கிவர் - 7ஜிப் அல்லது லினக்ஸில் கன்சோல் அன்சிப் இருந்தால் போதும். ஆனால் அது போர்வையைப் பற்றியது. உள்ளே என்ன இருக்கிறது? பொதுவாக, உள்ளே பின்வரும் அமைப்பு உள்ளது:

  • META-INF/- பயன்பாட்டின் டிஜிட்டல் சான்றிதழ், அதன் உருவாக்கியவரை அடையாளம் காணுதல் மற்றும் தொகுப்பு கோப்புகளின் சரிபார்ப்பு ஆகியவற்றைக் கொண்டுள்ளது;
  • res/ - படங்கள், இடைமுகத்தின் அறிவிப்பு விளக்கம் மற்றும் பிற தரவு போன்ற பயன்பாடு அதன் வேலையில் பயன்படுத்தும் பல்வேறு ஆதாரங்கள்;
  • AndroidManifest.xml- விண்ணப்பத்தின் விளக்கம். எடுத்துக்காட்டாக, தேவையான அனுமதிகளின் பட்டியல், தேவையான Android பதிப்பு மற்றும் தேவையான திரை தெளிவுத்திறன் ஆகியவை இதில் அடங்கும்;
  • class.dex- டால்விக் மெய்நிகர் இயந்திரத்திற்கான தொகுக்கப்பட்ட பயன்பாட்டு பைட்கோடு;
  • வளங்கள்.arsc- வளங்களும், ஆனால் வேறு வகையான - குறிப்பாக, சரங்கள் (ஆம், இந்தக் கோப்பை ரஸ்ஸிஃபிகேஷனுக்குப் பயன்படுத்தலாம்!).

பட்டியலிடப்பட்ட கோப்புகள் மற்றும் கோப்பகங்கள் அனைத்தும் இல்லாவிட்டாலும், பெரும்பாலான APKகளில் இருக்கலாம். இருப்பினும், குறிப்பிடத் தகுந்த சில பொதுவான கோப்புகள்/கோப்பகங்கள் உள்ளன:

  • சொத்துக்கள்- வளங்களின் அனலாக். முக்கிய வேறுபாடு என்னவென்றால், ஒரு ஆதாரத்தை அணுக, அதன் அடையாளங்காட்டியை நீங்கள் அறிந்து கொள்ள வேண்டும், ஆனால் பயன்பாட்டுக் குறியீட்டில் உள்ள AssetManager.list() முறையைப் பயன்படுத்தி சொத்துகளின் பட்டியலை மாறும் வகையில் பெறலாம்;
  • லிப்- NDK (நேட்டிவ் டெவலப்மெண்ட் கிட்) பயன்படுத்தி எழுதப்பட்ட சொந்த லினக்ஸ் நூலகங்கள்.

C/C++ இல் எழுதப்பட்ட கேம் என்ஜின்களை அங்கு வைக்கும் கேம் தயாரிப்பாளர்கள் மற்றும் உயர் செயல்திறன் கொண்ட பயன்பாடுகளை (உதாரணமாக, கூகுள் குரோம்) உருவாக்கியவர்களால் இந்த அடைவு பயன்படுத்தப்படுகிறது. நாங்கள் சாதனத்தை கண்டுபிடித்தோம். ஆனால் நீங்கள் விரும்பும் பயன்பாட்டின் தொகுப்பு கோப்பை எவ்வாறு பெறுவது? ரூட் இல்லாமல் சாதனத்திலிருந்து APK கோப்புகளை எடுக்க இயலாது (அவை /data/app கோப்பகத்தில் அமைந்துள்ளன), மற்றும் ரூட்டிங் எப்போதும் பரிந்துரைக்கப்படாது என்பதால், உங்கள் கணினியில் பயன்பாட்டு கோப்பைப் பெற குறைந்தது மூன்று வழிகள் உள்ளன:

  • Chrome க்கான APK பதிவிறக்கி நீட்டிப்பு;
  • உண்மையான APK Leecher பயன்பாடு;
  • பல்வேறு கோப்பு ஹோஸ்டிங் மற்றும் Varezniks.

எதைப் பயன்படுத்துவது என்பது சுவையின் விஷயம்; நாங்கள் தனித்தனி பயன்பாடுகளைப் பயன்படுத்த விரும்புகிறோம், எனவே உண்மையான APK லீச்சரின் பயன்பாட்டை விவரிப்போம், குறிப்பாக இது ஜாவாவில் எழுதப்பட்டிருப்பதால், அதன்படி, விண்டோஸ் அல்லது நிக்ஸில் வேலை செய்யும்.

நிரலைத் தொடங்கிய பிறகு, நீங்கள் மூன்று புலங்களை நிரப்ப வேண்டும்: மின்னஞ்சல், கடவுச்சொல் மற்றும் சாதன ஐடி - மற்றும் ஒரு மொழியைத் தேர்ந்தெடுக்கவும். முதல் இரண்டு சாதனத்தில் நீங்கள் பயன்படுத்தும் உங்கள் Google கணக்கின் மின்னஞ்சல் மற்றும் கடவுச்சொல். மூன்றாவது சாதன அடையாளங்காட்டி, மற்றும் டயலரில் குறியீட்டை தட்டச்சு செய்வதன் மூலம் பெறலாம் # #8255## பின்னர் சாதன ஐடி வரியைக் கண்டறிதல். நிரப்பும்போது, ​​ஆண்ட்ராய்டு- முன்னொட்டு இல்லாமல் ஐடியை மட்டும் உள்ளிட வேண்டும்.

பூர்த்தி செய்து சேமித்த பிறகு, "சேவையகத்துடன் இணைக்கும்போது பிழை" என்ற செய்தி அடிக்கடி மேல்தோன்றும். இதற்கும் Google Play உடன் எந்த தொடர்பும் இல்லை, எனவே இதைப் புறக்கணித்து, உங்களுக்கு விருப்பமான தொகுப்புகளைத் தேடுங்கள்.

பார்க்கவும் மாற்றவும்

உங்களுக்கு விருப்பமான ஒரு தொகுப்பைக் கண்டுபிடித்து, அதைப் பதிவிறக்கம் செய்து, அதை அன்பேக் செய்தீர்கள்... மேலும் சில XML கோப்பைப் பார்க்க முயற்சித்தபோது, ​​அந்தக் கோப்பு உரை இல்லை என்பதைக் கண்டு நீங்கள் ஆச்சரியப்பட்டீர்கள். அதை எவ்வாறு சிதைப்பது மற்றும் பொதுவாக தொகுப்புகளுடன் எவ்வாறு வேலை செய்வது? SDK ஐ நிறுவுவது உண்மையில் அவசியமா? இல்லை, SDK ஐ நிறுவ வேண்டிய அவசியமில்லை. உண்மையில், APK தொகுப்புகளைப் பிரித்தெடுத்தல், மாற்றுதல் மற்றும் தொகுத்தல் ஆகிய அனைத்துப் படிகளுக்கும் பின்வரும் கருவிகள் தேவைப்படுகின்றன:

  • ZIP காப்பகம்பேக்கிங் மற்றும் பேக்கிங்;
  • ஸ்மாலி- டால்விக் மெய்நிகர் இயந்திரம் பைட்கோட் அசெம்பிளர்/டிஸ்ஸெம்ப்ளர் (code.google.com/p/smali);
  • aapt- பேக்கேஜிங் ஆதாரங்களுக்கான ஒரு கருவி (இயல்புநிலையாக, பயன்பாட்டின் செயல்திறனை மேம்படுத்துவதற்கு ஆதாரங்கள் பைனரி வடிவத்தில் சேமிக்கப்படும்). Android SDK இல் சேர்க்கப்பட்டுள்ளது, ஆனால் தனித்தனியாகப் பெறலாம்;
  • கையெழுத்திட்டவர்- மாற்றியமைக்கப்பட்ட தொகுப்பில் டிஜிட்டல் கையொப்பமிடுவதற்கான ஒரு கருவி (bit.ly/Rmrv4M).

இந்த அனைத்து கருவிகளையும் நீங்கள் தனித்தனியாகப் பயன்படுத்தலாம், ஆனால் இது சிரமமாக உள்ளது, எனவே அவற்றின் அடிப்படையில் உருவாக்கப்பட்ட உயர்-நிலை மென்பொருளைப் பயன்படுத்துவது நல்லது. நீங்கள் Linux அல்லது Mac OS Xஐ இயக்குகிறீர்கள் என்றால், apktool என்று ஒரு கருவி உள்ளது. ஆதாரங்களை அவற்றின் அசல் வடிவத்தில் (பைனரி XML மற்றும் arsc கோப்புகள் உட்பட) திறக்க இது உங்களை அனுமதிக்கிறது, மாற்றப்பட்ட ஆதாரங்களுடன் ஒரு தொகுப்பை மீண்டும் உருவாக்கவும், ஆனால் தொகுப்புகளில் கையொப்பமிடுவது எப்படி என்று தெரியவில்லை, எனவே நீங்கள் கையொப்பமிடும் பயன்பாட்டை கைமுறையாக இயக்க வேண்டும். பயன்பாடு ஜாவாவில் எழுதப்பட்டிருந்தாலும், அதன் நிறுவல் மிகவும் தரமற்றது. முதலில் நீங்கள் ஜார் கோப்பைப் பெற வேண்டும்:

$ cd /tmp $ wget http://bit.ly/WC3OCz $ tar -xjf apktool1.5.1.tar.bz2

$ wget http://bit.ly/WRjEc7 $ tar -xjf apktool-install-linux-r05-ibot.tar.bz2

$ mv apktool.jar ~/bin $ mv apktool-install-linux-r05-ibot/* ~/பின் $ ஏற்றுமதி PATH=~/bin:$PATH

நீங்கள் விண்டோஸில் பணிபுரிந்தால், அதற்கு Virtuous Ten Studio என்று அழைக்கப்படும் ஒரு சிறந்த கருவி உள்ளது, இது இந்த அனைத்து கருவிகளையும் (apktool உட்பட) குவிக்கிறது, ஆனால் CLI இடைமுகத்திற்கு பதிலாக இது பயனருக்கு உள்ளுணர்வு வரைகலை இடைமுகத்தை வழங்குகிறது. ஒரு சில கிளிக்குகளில் அன்பேக்கிங், பிரித்தெடுத்தல் மற்றும் டிகம்பைல் செய்வதற்கான செயல்பாடுகளைச் செய்யவும். இந்த கருவி நன்கொடை-வேர், அதாவது, சில நேரங்களில் சாளரங்கள் உங்களிடம் உரிமம் பெறும்படி கேட்கும், ஆனால் இறுதியில் இதை பொறுத்துக்கொள்ளலாம். அதை விவரிப்பதில் எந்த அர்த்தமும் இல்லை, ஏனென்றால் சில நிமிடங்களில் நீங்கள் இடைமுகத்தை புரிந்து கொள்ளலாம். ஆனால் apktool, அதன் கன்சோல் தன்மை காரணமாக, இன்னும் விரிவாக விவாதிக்கப்பட வேண்டும்.


apktool விருப்பங்களைப் பார்ப்போம். சுருக்கமாக, மூன்று அடிப்படை கட்டளைகள் உள்ளன: d (டிகோட்), b (உருவாக்கம்) மற்றும் if (கட்டமைப்பை நிறுவவும்). முதல் இரண்டு கட்டளைகளுடன் எல்லாம் தெளிவாக இருந்தால், மூன்றாவது, நிபந்தனை அறிக்கை என்ன செய்கிறது? இது குறிப்பிட்ட UI கட்டமைப்பை திறக்கிறது, நீங்கள் எந்த கணினி தொகுப்பையும் பிரிக்கும் சந்தர்ப்பங்களில் இது அவசியம்.

முதல் கட்டளையின் மிகவும் சுவாரஸ்யமான விருப்பங்களைப் பார்ப்போம்:

  • -கள்- dex கோப்புகளை பிரிக்க வேண்டாம்;
  • -ஆர்- வளங்களைத் திறக்க வேண்டாம்;
  • -பி- dex கோப்பை பிரித்தெடுப்பதன் முடிவுகளில் பிழைத்திருத்தத் தகவலைச் செருக வேண்டாம்;
  • --சட்ட பாதை- apktool இல் கட்டமைக்கப்பட்டதற்குப் பதிலாக குறிப்பிட்ட UI கட்டமைப்பைப் பயன்படுத்தவும். இப்போது b கட்டளைக்கான இரண்டு விருப்பங்களைப் பார்ப்போம்:
  • -எஃப்- மாற்றங்களை சரிபார்க்காமல் கட்டாய சட்டசபை;
  • -அ- சில காரணங்களால் நீங்கள் அதை வேறொரு மூலத்திலிருந்து பயன்படுத்த விரும்பினால், aapt (APK காப்பகத்தை உருவாக்குவதற்கான ஒரு கருவி)க்கான பாதையைக் குறிப்பிடவும்.

apktool ஐப் பயன்படுத்துவது மிகவும் எளிதானது, எடுத்துக்காட்டாக, கட்டளைகளில் ஒன்றையும் APKக்கான பாதையையும் குறிப்பிடவும்:

$ apktool d mail.apk

இதற்குப் பிறகு, தொகுப்பின் அனைத்து பிரித்தெடுக்கப்பட்ட மற்றும் பிரிக்கப்பட்ட கோப்புகள் அஞ்சல் கோப்பகத்தில் தோன்றும்.

தயாரிப்பு. விளம்பரத்தை முடக்குகிறது

கோட்பாடு, நிச்சயமாக, நல்லது, ஆனால் தொகுக்கப்படாத தொகுப்பை என்ன செய்வது என்று எங்களுக்குத் தெரியாவிட்டால் அது ஏன் தேவைப்படுகிறது? கோட்பாட்டை நமது நன்மைக்காகப் பயன்படுத்த முயற்சிப்போம், அதாவது, சில மென்பொருட்களை மாற்றியமைத்து, அது நமக்கு விளம்பரத்தைக் காட்டாது. எடுத்துக்காட்டாக, இது மெய்நிகர் டார்ச்சாக இருக்கட்டும் - ஒரு மெய்நிகர் ஜோதி. இந்த மென்பொருள் எங்களுக்கு ஏற்றது, ஏனெனில் இது எரிச்சலூட்டும் விளம்பரங்களால் நிரம்பியுள்ளது, மேலும், குறியீட்டின் காட்டில் தொலைந்து போகாத அளவுக்கு எளிமையானது.


எனவே, மேலே உள்ள முறைகளில் ஒன்றைப் பயன்படுத்தி, சந்தையில் இருந்து பயன்பாட்டைப் பதிவிறக்கவும். Virtuous Ten Studio ஐப் பயன்படுத்த முடிவு செய்தால், பயன்பாட்டில் APK கோப்பைத் திறந்து, அதை அன்சிப் செய்து, ஒரு திட்டத்தை உருவாக்கவும் (கோப்பு -> புதிய திட்டம்), பின்னர் திட்ட சூழல் மெனுவில் கோப்பை இறக்குமதி செய்யவும். உங்கள் தேர்வு apktool மீது விழுந்தால், ஒரு கட்டளையை இயக்கவும்:

$ apktool d com.kauf.particle.virtualtorch.apk

இதற்குப் பிறகு, முந்தைய பிரிவில் விவரிக்கப்பட்டுள்ளதைப் போன்ற ஒரு கோப்பு மரம் com.kauf.particle.virtualtorch கோப்பகத்தில் தோன்றும், ஆனால் dex கோப்புகள் மற்றும் apktool.yml கோப்பிற்குப் பதிலாக கூடுதல் smali கோப்பகத்துடன் தோன்றும். முதலாவது பயன்பாட்டின் இயங்கக்கூடிய டெக்ஸ் கோப்பின் பிரிக்கப்பட்ட குறியீட்டைக் கொண்டுள்ளது, இரண்டாவது தொகுப்பை மீண்டும் இணைக்க apktool க்கு தேவையான சேவைத் தகவலைக் கொண்டுள்ளது.

நாம் முதலில் பார்க்க வேண்டிய இடம், நிச்சயமாக, AndroidManifest.xml. இங்கே நாம் உடனடியாக பின்வரும் வரியை சந்திக்கிறோம்:

இணைய இணைப்பைப் பயன்படுத்துவதற்கான பயன்பாட்டு அனுமதிகளை வழங்குவதற்கு இது பொறுப்பு என்று யூகிப்பது கடினம் அல்ல. உண்மையில், நாங்கள் விளம்பரத்திலிருந்து விடுபட விரும்பினால், இணையத்திலிருந்து பயன்பாட்டைத் தடுக்க வேண்டியிருக்கும். இதைச் செய்ய முயற்சிப்போம். நாங்கள் குறிப்பிட்ட வரியை நீக்கி, apktool ஐப் பயன்படுத்தி மென்பொருளை உருவாக்க முயற்சிக்கிறோம்:

$ apktool b com.kauf.particle.virtualtorch

இதன் விளைவாக வரும் APK கோப்பு com.kauf.particle.virtualtorch/build/ கோப்பகத்தில் தோன்றும். இருப்பினும், டிஜிட்டல் கையொப்பம் மற்றும் கோப்பு செக்சம்கள் இல்லாததால், அதை நிறுவ முடியாது (இது ஒரு META-INF/ அடைவு இல்லை). apk-signer பயன்பாட்டைப் பயன்படுத்தி நாம் தொகுப்பில் கையொப்பமிட வேண்டும். தொடங்கப்பட்டது. இடைமுகம் இரண்டு தாவல்களைக் கொண்டுள்ளது - முதல் (விசை ஜெனரேட்டர்) விசைகளை உருவாக்குகிறோம், இரண்டாவது (APK கையொப்பமிடுபவர்) கையொப்பமிடுகிறோம். எங்கள் தனிப்பட்ட விசையை உருவாக்க, பின்வரும் புலங்களை நிரப்பவும்:

  • இலக்கு கோப்பு- கீஸ்டோர் வெளியீட்டு கோப்பு; இது வழக்கமாக ஒரு ஜோடி விசைகளை சேமிக்கிறது;
  • கடவுச்சொல்மற்றும் உறுதிப்படுத்தவும்- சேமிப்பகத்திற்கான கடவுச்சொல்;
  • மாற்றுப்பெயர்- சேமிப்பகத்தில் உள்ள விசையின் பெயர்;
  • மாற்று கடவுச்சொல்மற்றும் உறுதிப்படுத்தவும்- ரகசிய விசை கடவுச்சொல்;
  • செல்லுபடியாகும்- செல்லுபடியாகும் காலம் (ஆண்டுகளில்). இயல்புநிலை மதிப்பு உகந்தது.

மீதமுள்ள புலங்கள், பொதுவாக, விருப்பமானவை - ஆனால் குறைந்தபட்சம் ஒன்றை நிரப்ப வேண்டும்.


எச்சரிக்கை

apk-signer ஐப் பயன்படுத்தி ஒரு பயன்பாட்டில் கையொப்பமிட, நீங்கள் Android SDK ஐ நிறுவ வேண்டும் மற்றும் பயன்பாட்டு அமைப்புகளில் அதற்கான முழு பாதையையும் குறிப்பிட வேண்டும்.

அனைத்து தகவல்களும் தகவல் நோக்கங்களுக்காக மட்டுமே வழங்கப்படுகின்றன. இந்தக் கட்டுரையின் பொருட்களால் ஏற்படக்கூடிய ஏதேனும் தீங்குகளுக்கு ஆசிரியர்களோ அல்லது ஆசிரியரோ பொறுப்பல்ல.

இப்போது நீங்கள் இந்த விசையுடன் APK இல் கையொப்பமிடலாம். APK Signer தாவலில், புதிதாக உருவாக்கப்பட்ட கோப்பைத் தேர்ந்தெடுத்து, கடவுச்சொல், முக்கிய மாற்றுப்பெயர் மற்றும் கடவுச்சொல்லை உள்ளிட்டு, பின்னர் APK கோப்பைக் கண்டுபிடித்து, "கையொப்பமிடு" பொத்தானை தைரியமாக கிளிக் செய்யவும். எல்லாம் சரியாக நடந்தால், தொகுப்பு கையொப்பமிடப்படும்.

தகவல்

நாங்கள் எங்கள் சொந்த விசையுடன் தொகுப்பில் கையொப்பமிட்டதால், அது அசல் பயன்பாட்டுடன் முரண்படும், அதாவது சந்தை மூலம் மென்பொருளைப் புதுப்பிக்க முயற்சிக்கும்போது, ​​​​எங்களுக்கு பிழை ஏற்படும்.

டிஜிட்டல் கையொப்பம் மூன்றாம் தரப்பு மென்பொருளுக்கு மட்டுமே தேவைப்படும், எனவே நீங்கள் நிறுவப்பட்ட கணினி பயன்பாடுகளை /system/app/ கோப்பகத்தில் நகலெடுத்து மாற்றினால், நீங்கள் அவற்றை கையொப்பமிடத் தேவையில்லை.

அதன் பிறகு, உங்கள் ஸ்மார்ட்போனில் தொகுப்பைப் பதிவிறக்கி, அதை நிறுவி அதைத் தொடங்கவும். Voila, விளம்பரம் போய்விட்டது! இருப்பினும், அதற்கு பதிலாக, எங்களிடம் இணையம் இல்லை அல்லது பொருத்தமான அனுமதிகள் இல்லை என்று ஒரு செய்தி தோன்றியது. கோட்பாட்டில், இது போதுமானதாக இருக்கலாம், ஆனால் செய்தி எரிச்சலூட்டுவதாகத் தெரிகிறது, மேலும், உண்மையைச் சொல்வதானால், முட்டாள்தனமான பயன்பாட்டின் மூலம் நாங்கள் அதிர்ஷ்டசாலி. பொதுவாக எழுதப்பட்ட மென்பொருள் அதன் நற்சான்றிதழ்களை தெளிவுபடுத்தும் அல்லது இணைய இணைப்பைச் சரிபார்த்து, இல்லையெனில் தொடங்க மறுக்கும். இந்த விஷயத்தில் எப்படி இருக்க வேண்டும்? நிச்சயமாக, குறியீட்டைத் திருத்தவும்.

பொதுவாக, பயன்பாடு அல்லது அதன் “செயல்பாடுகள்” (எளிமையான சொற்களில், பயன்பாட்டுத் திரைகள்) தொடங்கப்படும்போது, ​​இந்த வகுப்புகளின் விளம்பரங்கள் மற்றும் அழைப்பு முறைகளைக் காண்பிப்பதற்கான சிறப்பு வகுப்புகளை பயன்பாட்டு ஆசிரியர்கள் உருவாக்குகிறார்கள். இந்த வகுப்புகளைக் கண்டுபிடிக்க முயற்சிப்போம். நாங்கள் smali கோப்பகத்திற்குச் செல்கிறோம், பின்னர் com (org இல் திறந்திருக்கும் கிராஃபிக் லைப்ரரி cocos2d மட்டுமே உள்ளது), பின்னர் kauf (இது எங்கே உள்ளது, ஏனெனில் இது டெவலப்பரின் பெயர் மற்றும் அவருடைய அனைத்து குறியீடுகளும் உள்ளன) - இங்கே அது உள்ளது, சந்தைப்படுத்தல் அடைவு. உள்ளே ஸ்மாலி நீட்டிப்புடன் கூடிய சில கோப்புகளைக் காண்கிறோம். இவை வகுப்புகள், அவற்றில் மிகவும் குறிப்பிடத்தக்கது Ad.smali வகுப்பு ஆகும், இதன் பெயரிலிருந்து இது விளம்பரங்களைக் காண்பிக்கும் என்று யூகிக்க எளிதானது.

அதன் செயல்பாட்டின் தர்க்கத்தை நாம் மாற்றலாம், ஆனால் பயன்பாட்டிலிருந்தே அதன் எந்த முறைகளுக்கும் அழைப்புகளை அகற்றுவது மிகவும் எளிதாக இருக்கும். எனவே, நாங்கள் மார்க்கெட்டிங் கோப்பகத்தை விட்டுவிட்டு, அருகிலுள்ள துகள் கோப்பகத்திற்குச் செல்கிறோம், பின்னர் மெய்நிகர் டார்ச்சிற்குச் செல்கிறோம். MainActivity.smali கோப்பு இங்கே சிறப்பு கவனம் செலுத்த வேண்டும். இது நிலையான ஆண்ட்ராய்டு வகுப்பாகும், இது ஆண்ட்ராய்டு SDK ஆல் உருவாக்கப்பட்டு பயன்பாட்டிற்கான நுழைவுப் புள்ளியாக நிறுவப்பட்டது (C இல் உள்ள முக்கிய செயல்பாட்டிற்கு ஒப்பானது). திருத்துவதற்கு கோப்பைத் திறக்கவும்.

உள்ளே ஸ்மாலி குறியீடு (உள்ளூர் அசெம்பிளர்) உள்ளது. இது மிகவும் குழப்பமானதாகவும், அதன் குறைந்த-நிலை இயல்பினால் படிப்பது கடினமாகவும் உள்ளது, எனவே நாங்கள் அதைப் படிக்க மாட்டோம், ஆனால் குறியீட்டில் உள்ள விளம்பர வகுப்பின் அனைத்து குறிப்புகளையும் கண்டுபிடித்து அவற்றைக் கருத்துத் தெரிவிப்போம். தேடலில் “விளம்பரம்” என்ற வரியை உள்ளிட்டு வரி 25 க்கு வருகிறோம்:

புல தனியார் விளம்பரம்:Lcom/kauf/மார்கெட்டிங்/Ad;

இங்கே விளம்பர வகுப்பு பொருளைச் சேமிக்க ஒரு விளம்பர புலம் உருவாக்கப்பட்டுள்ளது. வரியின் முன் ### அடையாளத்தை வைத்து கருத்து தெரிவிக்கிறோம். நாங்கள் தேடலைத் தொடர்கிறோம். வரி 423:

New-instance v3, Lcom/kauf/marketing/Ad;

இங்குதான் பொருள் உருவாக்கம் நிகழ்கிறது. கருத்து தெரிவிப்போம். நாங்கள் தேடலைத் தொடர்கிறோம் மற்றும் 433, 435, 466, 468, 738, 740, 800 மற்றும் 802 ஆகிய வரிகளில் விளம்பர வகுப்பின் முறைகளுக்கான அழைப்புகளைக் கண்டறிகிறோம். கருத்து தெரிவிப்போம். அதுதான் போல இருக்கு. சேமிக்கவும். இப்போது தொகுப்பு மீண்டும் ஒன்றாக இணைக்கப்பட வேண்டும் மற்றும் செயல்பாடு மற்றும் விளம்பரம் இருப்பதை சரிபார்க்க வேண்டும். பரிசோதனையின் தூய்மைக்காக, AndroidManifest.xml இலிருந்து அகற்றப்பட்ட வரியைத் திருப்பி, தொகுப்பைச் சேகரித்து, கையொப்பமிட்டு நிறுவுவோம்.

எங்கள் கினிப் பன்றி. விளம்பரம் தெரியும்

அச்சச்சோ! பயன்பாடு இயங்கும் போது மட்டுமே விளம்பரம் மறைந்துவிட்டது, ஆனால் முக்கிய மெனுவில் இருந்தது, இது மென்பொருளைத் தொடங்கும்போது நாம் பார்க்கிறோம். எனவே, காத்திருங்கள், ஆனால் நுழைவு புள்ளி MainActivity வகுப்பு, மற்றும் பயன்பாடு இயங்கும் போது விளம்பரம் மறைந்து, ஆனால் முக்கிய மெனுவில் இருந்தது, எனவே நுழைவு புள்ளி வேறுபட்டதா? உண்மையான நுழைவுப் புள்ளியைக் கண்டறிய, AndroidManifest.xml கோப்பை மீண்டும் திறக்கவும். ஆம், இது பின்வரும் வரிகளைக் கொண்டுள்ளது:

android.intent.category.LAUNCHER வகையிலிருந்து ஒரு எண்ணம் (நிகழ்வு) android.intent.action.MAIN ஐ உருவாக்குவதற்கு பதிலளிக்கும் வகையில் ஸ்டார்ட் என்ற செயல்பாடு தொடங்கப்பட வேண்டும் என்று அவர்கள் எங்களிடம் (மற்றும், மிக முக்கியமாக, android) கூறுகிறார்கள். துவக்கியில் உள்ள பயன்பாட்டு ஐகானை நீங்கள் தட்டும்போது இந்த நிகழ்வு உருவாக்கப்படுகிறது, எனவே இது தொடக்க வகுப்பை, நுழைவு புள்ளியை தீர்மானிக்கிறது. பெரும்பாலும், புரோகிராமர் முதன்மை மெனு இல்லாமல் ஒரு பயன்பாட்டை எழுதினார், அதன் நுழைவுப் புள்ளி நிலையான மெயின் ஆக்டிவிட்டி வகுப்பாகும், பின்னர் மெனுவைக் கொண்ட புதிய சாளரத்தை (செயல்பாடு) சேர்த்து தொடக்க வகுப்பில் விவரித்தார், மேலும் அதை கைமுறையாக நுழைவு செய்தார். புள்ளி.

தொடக்கம் இது மூலக் குறியீட்டிலும் உள்ளது, மேலும் பெயரின் அடிப்படையில் ஆராயும்போது, ​​பிரதான திரையில் விளம்பரங்களைக் காண்பிக்கும் பொறுப்பாகும். மேலும் பார்ப்போம், FirstAd வகுப்பின் ஒரு நிகழ்வை உருவாக்குவதும், சூழலுக்கு ஏற்ப, இந்த நிகழ்வோடு தொடர்புடைய ஒரு உள்நோக்கமும் உள்ளது, பின்னர் cond_10 லேபிள், ஒரு நிகழ்வை உருவாக்கும் முன் சரியாக மேற்கொள்ளப்படும் நிபந்தனை மாற்றம் வகுப்பின்:

If-ne p1, v0, :cond_10 .line 74 new-instance v0, Landroid/content/Intent; ... :cond_10

பெரும்பாலும், நிரல் எப்படியோ, விளம்பரம் பிரதான திரையில் காட்டப்பட வேண்டுமா என்பதை தோராயமாக கணக்கிடுகிறது, இல்லையெனில், நேரடியாக cond_10 க்கு தாவுகிறது. சரி, அவளுடைய பணியை எளிதாக்குவோம் மற்றும் நிபந்தனையற்ற மாற்றத்தை நிபந்தனையற்ற ஒன்றை மாற்றுவோம்:

#if-ne p1, v0, :cond_10 goto:cond_10

குறியீட்டில் FirstAd பற்றிய குறிப்புகள் எதுவும் இல்லை, எனவே நாங்கள் கோப்பை மூடிவிட்டு apktool ஐப் பயன்படுத்தி எங்கள் மெய்நிகர் டார்ச்சை மீண்டும் இணைக்கிறோம். அதை உங்கள் ஸ்மார்ட்போனில் நகலெடுத்து, அதை நிறுவி, துவக்கவும். Voila, அனைத்து விளம்பரங்களும் மறைந்துவிட்டன, அதற்காக நாங்கள் அனைவரையும் வாழ்த்துகிறோம்.

முடிவுகள்

இந்த கட்டுரை ஆண்ட்ராய்டு பயன்பாடுகளை ஹேக்கிங் மற்றும் மாற்றியமைக்கும் முறைகள் பற்றிய ஒரு சுருக்கமான அறிமுகமாகும். பாதுகாப்பை அகற்றுதல், தெளிவற்ற குறியீட்டைப் பாகுபடுத்துதல், பயன்பாட்டு ஆதாரங்களை மொழிபெயர்த்தல் மற்றும் மாற்றுதல், அத்துடன் Android NDKஐப் பயன்படுத்தி எழுதப்பட்ட பயன்பாடுகளை மாற்றுதல் போன்ற பல சிக்கல்கள் திரைக்குப் பின்னால் இருந்தன. இருப்பினும், அடிப்படை அறிவைக் கொண்டிருப்பதால், எல்லாவற்றையும் கண்டுபிடிப்பது ஒரு நேரத்தின் விஷயம்.

இந்த கட்டுரையிலிருந்து நீங்கள் Android பயன்பாடு எதைக் கொண்டுள்ளது, APK கோப்பை எவ்வாறு திறப்பது மற்றும் எந்த நிரல்களுடன் கற்றுக் கொள்வீர்கள்.

APK கோப்பு என்றால் என்ன?

APK என்பது, காப்பகப்படுத்தப்பட்ட இயங்கக்கூடிய பயன்பாட்டுக் கோப்புகளுக்குப் பயன்படுத்தப்படும் ஆண்ட்ராய்டு இயங்குதளத்தின் வடிவமாகும், மேலும் கோப்பின் பெயரே எதுவாகவும் இருக்கலாம், ஆனால் நீட்டிப்பு இப்படித்தான் இருக்க வேண்டும்.apk. பிற இயக்க முறைமைகளில் உள்ள APK அனலாக்ஸ்கள் Windows இல் .msi, Symbian இல் .sis, Linux இல் .rpm அல்லது .deb ஆகும்.

உள்ளே என்ன இருக்கிறது என்று பார்ப்போம்
உண்மையில், .apk என்பது ஒரு ZIP காப்பகமாகும், எனவே நீங்கள் எந்த கோப்பு மேலாளர் அல்லது காப்பகத்தைப் பயன்படுத்தி உள் சாதனத்தைப் பார்க்கலாம், எடுத்துக்காட்டாக WinRAR அல்லது X-plore மொபைல் பயன்பாடு.




நீங்கள் உள் வளங்களுக்கான காட்சி அணுகலைப் பெறுவீர்கள் என்பதை நினைவில் கொள்வது மதிப்பு.

கட்டமைப்பைப் பார்ப்போம்
.apk இன் உள்ளே பல கோப்புகள் மற்றும் கோப்புறைகளைப் பார்க்கிறோம், அவை எதற்காக என்பதைக் கண்டுபிடிப்போம்:

  • AndroidManifest.xml என்பது பயன்பாட்டின் ஒரு வகையான “பாஸ்போர்ட்” ஆகும், அதில் இருந்து நீங்கள் அனைத்து முக்கிய புள்ளிகள், தேவைகள், பதிப்பு, அனுமதிகள் போன்றவற்றைக் கண்டறியலாம்.
  • META-INF இந்த கோப்பில் மெட்டாடேட்டா உள்ளது, அதாவது தரவு பற்றிய தரவு, செக்சம்கள், தரவுக்கான பாதைகள், பாதைகள் மற்றும் ஆதாரங்களின் செக்சம்கள், சான்றிதழ்கள். எந்த உரை திருத்தியிலும் இந்தக் கோப்பைத் திறக்கலாம், ஆனால் Notepad++ ஐப் பயன்படுத்த பரிந்துரைக்கப்படுகிறது.
  • ரெஸ் கோப்புறையில் ஐகான்கள், படங்கள், உரை மற்றும் வரைகலை இடைமுக கூறுகள் போன்ற கிராஃபிக் அனைத்து நிரல் ஆதாரங்களும் உள்ளன. நீங்கள் கோப்புறையை எளிதாக அணுகலாம்.
  • Class.dex என்பது Dalvik VM மெய்நிகர் இயந்திரத்தால் செயல்படுத்தப்படும் நேரடி பயன்பாட்டு நிரல் குறியீடு ஆகும். source.arsc - தொகுக்கப்பட்ட XML கோப்பு, இந்த கோப்பில் நிரலில் உள்ள அனைத்து ஆதாரங்கள் பற்றிய தரவு உள்ளது.
  • lib - சொந்த நூலகங்களைக் கொண்ட கோப்புறை, சிறப்பு நிரல்களைப் பயன்படுத்தும் போது மட்டுமே அதன் ஆதாரங்களை அணுக முடியும். APK இல் com, org, udk போன்ற கோப்புகள் மற்றும் கோப்புறைகள் இருக்கலாம், ஆனால் எப்போதும் இல்லை.

இப்போது உள் கட்டமைப்பை இன்னும் விரிவாகப் பார்ப்போம், இதற்கு நமக்கு ஒரு சிதைவு நிரல், ஜாவா மற்றும் ஒரு APK கோப்பு தேவை. .apk பிரித்தெடுப்பதற்கான முக்கிய கருவி Apktool ஆகும், ஆனால் இந்த நிரல் வரியிலிருந்து மட்டுமே செயல்படுகிறது, இது மிகவும் வசதியானது அல்ல. வேகமான மற்றும் வசதியான பகுப்பாய்விற்கு, நீங்கள் APKing ஐப் பயன்படுத்தலாம், இது இன்னும் அதே Apktool தான், ஆனால் சூழல் மெனுவிலிருந்து வேலை செய்யும் திறனுடன்.


எனவே, விண்டோஸிற்கான எந்தவொரு பயன்பாட்டையும் போலவே APKing ஐ நிறுவி, .apk ஐத் தேர்ந்தெடுத்து, வலது சுட்டி பொத்தானைக் கொண்டு அதைக் கிளிக் செய்து, ஒரே நேரத்தில் Shift ஐக் கிளிக் செய்க, அதன் பிறகு பின்வருவனவற்றைக் காண்போம்:



தேவையான செயலைத் தேர்ந்தெடுக்கவும், எடுத்துக்காட்டாக, முழுமையாக சிதைக்கவும், பின்னர் நிரல் செயல்பாட்டை முடித்து அதே பெயரில் ஒரு கோப்புறையை உருவாக்கும்.



கோப்புறையைத் திறப்பதன் மூலம், APK கோப்பின் அனைத்து ஆதாரங்களுக்கும் அணுகலைப் பெறுவோம்.



இப்போது அனைத்து உரை கோப்புகளையும் திருத்தலாம், அடிப்படை விதிகளை கவனிக்கும் போது, ​​நீங்கள் பிரபலமான Notepad++ நிரலைப் பயன்படுத்தலாம், எடுத்துக்காட்டாக, AndroidManifest.xml ஐக் கவனியுங்கள்

SmartAPKTool பயன்பாட்டைக் குறிப்பிட்டேன். இது மாற்றியமைக்கப்பட்ட apk கோப்புகளைப் பிரித்தெடுக்கலாம், ஜிப் செய்யலாம் மற்றும் கையொப்பமிடலாம். அதன் நன்மை ஒரு வரைகலை இடைமுகம் இருப்பது. இருப்பினும், ஒரு தீவிர குறைபாடு உள்ளது. SmartAPKTool நீண்ட காலமாக புதுப்பிக்கப்படவில்லை, மேலும் Android இன் சமீபத்திய பதிப்புகளுக்கான பயன்பாடுகளை நிரல் சரியாகத் திறக்கவில்லை மற்றும் பேக் செய்யவில்லை. எனவே, இந்த நோக்கங்களுக்காக பயன்பாட்டை எவ்வாறு பயன்படுத்துவது என்பதை இங்கே விளக்க முயற்சிப்பேன் apktool.

குறிப்பு 1.
சேகரிக்கப்பட்ட apk கோப்புகளில் கையொப்பமிடுவதற்கு SmartAPKTool நிரல் இன்னும் வசதியானது.
குறிப்பு 2.
கட்டுரையில் குறிப்பிடப்பட்டுள்ள நிரல்களுக்கான இணைப்புகள் ↓

நிரல் apktoolவரைகலை இடைமுகம் இல்லை. கட்டளை வரியுடன் பணிபுரியும் பழக்கமில்லாதவர்களுக்கு இது ஒரு பாதகம். ஆனால் ஒரு பிளஸ் உள்ளது: SmartAPKTool போலல்லாமல், எல்லா பிழைகளையும் பார்ப்போம், அதாவது எதைச் சரிசெய்வது என்பது எங்களுக்குத் தெரியும்.

இரண்டு காப்பகங்களைப் பதிவிறக்குவோம்: ஒன்று எல்லா கணினிகளுக்கும் பொதுவானது, மற்றொன்று நமது கணினிக்கு (உதாரணத்தில் விண்டோஸ்):

இரண்டு காப்பகங்களையும் ஒரே வெற்று கோப்புறையில் திறக்கலாம் (எங்கள் எடுத்துக்காட்டில், C:\apktool\). அதன் உள்ளடக்கம் இப்படி இருக்க வேண்டும்:

இனிமேல் நாம் நிரலைப் பயன்படுத்தலாம் apktool.

குறிப்பு 3.
லினக்ஸின் 64-பிட் பதிப்புகளின் பயனர்கள் ia32-libs தொகுப்பை நிறுவ வேண்டும்:

sudo apt-get install ia32-libs

அதே கோப்புறையில் நாம் திறக்க வேண்டிய கோப்பை வைக்கிறோம். உதாரணமாக, அதை orig.apk என்று அழைக்கலாம்
ஷிப்ட் விசையை அழுத்திப் பிடித்து, கோப்புறையில் உள்ள எந்த காலி இடத்திலும் வலது கிளிக் செய்யவும் (கோப்புகளைக் கிளிக் செய்ய வேண்டாம்!). அதன் பிறகு, "திறந்த கட்டளை சாளரம்" என்பதைத் தேர்ந்தெடுக்கவும். தோன்றும் கன்சோலில், தட்டச்சு செய்க:

apktool decode orig.apk

கோப்பு திறக்கப்படும்:

இப்போது C:\apktool\ கோப்பகத்தில் தொகுக்கப்படாத பயன்பாட்டுடன் ஒரு கோப்புறை உள்ளது. இது மூலக் கோப்பைப் போலவே அழைக்கப்படுகிறது, நீட்டிப்பைக் கழித்தால்: C:\apktool\orig\ . ஆண்ட்ராய்டு கட்டுரையில் விவரிக்கப்பட்டுள்ளபடி மூலக் கோப்புகளை மாற்றலாம்: ஒரே தொலைபேசியில் இரண்டு ஒத்த பயன்பாடுகளை எவ்வாறு நிறுவுவது. மாற்றங்களைச் செய்த பிறகு, மூலக் கோப்புகளை apk இல் பேக்கேஜிங் செய்வதன் மூலம் பயன்பாட்டின் நகலை சேகரிப்போம்:

apktool உருவாக்க orig result.apk

இங்கே result.apk என்பது நகல் உருவாக்கத்திற்காக நாம் கொண்டு வந்த கோப்பு பெயர். பிழைகள் இல்லை என்றால், கோப்பு சேகரிக்கப்படும்:

மீதமுள்ளவை கட்டுரையின் எல்லைக்கு அப்பாற்பட்டவை:

  1. சட்டசபையின் போது பிழைகள் இருந்தால், நீங்கள் அவற்றின் காரணத்தைக் கண்டுபிடித்து அவற்றை சரிசெய்ய வேண்டும்.
  2. இதன் விளைவாக வரும் result.apk கோப்பில் கையொப்பமிடுவது மட்டுமே மீதமுள்ளது. மேலே குறிப்பிட்டுள்ளபடி SmartAPKTool ஐப் பயன்படுத்தி இதைச் செய்யலாம்; அதைப் பற்றிய அனைத்தும் உள்ளுணர்வு. apk கோப்பில் கையொப்பமிட மற்ற வழிகளும் உள்ளன.
  3. நகலை நிறுவும் போது, ​​அதன் தொடக்க அல்லது செயல்பாட்டின் போது பிழைகள் ஏற்படலாம். Android SDK இல் சேர்க்கப்பட்டுள்ள adb பயன்பாட்டைப் பயன்படுத்தி அவர்கள் பிடிக்கப்பட வேண்டும்.

நீங்கள் விண்ணப்பத்தில் கையொப்பமிட வேண்டும், இல்லையெனில் அது நிறுவப்படாது. பிழைகள் அடிக்கடி ஏற்படாது, மேலும் அவை ஏற்படுத்தும் பொதுவான சிக்கல்கள் கட்டுரையில் விவரிக்கப்பட்டுள்ளன

ஆண்ட்ராய்டு சாதனங்களுக்கான பல்வேறு ஃபார்ம்வேரைப் பயன்படுத்தும் செயல்பாட்டில், சில நேரங்களில் இயக்க முறைமையில் கட்டமைக்கப்பட்ட கணினி பயன்பாடுகளை ஒரு வழியில் மாற்றுவது அவசியமாகிறது. இந்த பொருளில் இந்த சிக்கலை விரிவாகக் கருதுவோம்.

இயற்கையாகவே, நீங்கள் கணினி APK கோப்பை பிரித்து மீண்டும் இணைக்க வேண்டும், இதனால் அது சரியாகவும் நிலையானதாகவும் செயல்படும். இதற்கு என்ன செய்ய வேண்டும் என்பதை படிப்படியாகக் கண்டுபிடிப்போம்.

முதலில், நீங்கள் கணினி APK கோப்புகளை deodexing செயல்முறையை மேற்கொள்ள வேண்டும். இதை எப்படி செய்வது என்று நாங்கள் உங்களுக்கு கூறுவோம்.

எனவே, .apk கோப்பு deodexed மற்றும் decompiled செய்யப்பட்டது. நாம் ஆர்வமாக உள்ள பயன்பாட்டைப் பகுப்பாய்வு செய்வோம், அது பெயரைக் கொண்டிருக்கட்டும், உதாரணத்தின் தெளிவுக்காக, கட்டமைப்பு- ரெஸ். apk. இது அசல் பயன்பாடாக எங்கள் தலையில் நினைவில் உள்ளது.

விண்ணப்பத்தில் தேவையான அனைத்து மாற்றங்களையும் செய்துவிட்டோம் என்று வைத்துக்கொள்வோம். APK கோப்புகளின் அனைத்து அம்சங்களையும் பற்றி மேலும் பேசுவோம். இப்போது நீங்கள் அதை மீண்டும் பேக் செய்ய வேண்டும். முடிக்கப்பட்ட தொகுக்கப்பட்ட பயன்பாட்டை மாற்றியமைக்கப்பட்ட பயன்பாடு 2 என நம் மனதில் நினைவில் கொள்வோம்.

பயன்பாடுகளை அசல் மற்றும் மாற்றியமைக்கப்பட்டவை என மனதளவில் நினைவில் வைத்துக் கொள்வது ஏன் என்பதை இப்போது விளக்குவோம். நாங்கள் பின்வரும் செயல்களைச் செய்கிறோம்:

அத்தகைய கோப்புகளை மீண்டும் APK இல் சேகரிப்பது மிகவும் எளிது. இதைச் செய்ய, நீங்கள் பொருத்தமான உருவாக்கக் கொடியுடன் apktool ஐ இயக்க வேண்டும் மற்றும் உள்ளே உள்ள சிதைந்த பயன்பாட்டுடன் கோப்புறைக்கு பாதையை அனுப்ப வேண்டும். எடுத்துக்காட்டாக, எங்களிடம் apktool உள்ள அதே கோப்பகத்தில் இருக்கும் பயன்பாட்டு கோப்புறை இருந்தால், கட்டளை இப்படி இருக்கும்:

ஷெல்

java -jar apktool.jar b ஆப்

java - jar apktool .jar b ஆப்

சட்டசபைக்குப் பிறகு, முடிக்கப்பட்ட APK கோப்பு கோப்பகத்தில் இருக்கும் பயன்பாடு/உருவாக்கம். அடுத்து நீங்கள் APK இல் கையொப்பமிட வேண்டும். பிழைத்திருத்தம் தடைசெய்யப்பட்ட சாதனங்களில் பயன்பாடு செயல்படுவதை உறுதிசெய்ய இது செய்யப்படுகிறது. அதாவது, அத்தகைய சாதனங்களில் கையொப்பமிடப்படாத பயன்பாடுகளைத் தொடங்குவது தடைசெய்யப்பட்டுள்ளது. டிஜிட்டல் சான்றிதழ்கள் மற்றும் கோப்பு கையொப்பமிடும் நடைமுறை பற்றி இங்கே மேலும் படிக்கலாம்.

ஒரு கோப்பில் கையொப்பமிடுவது மிகவும் எளிது: இதற்கு சிக்னாப்க் என்று ஒரு சிறப்பு பயன்பாடு உள்ளது. முதலில் சான்றிதழ்களை வாதங்களாக அனுப்புவதன் மூலம் இது தொடங்கப்பட வேண்டும், பின்னர் பயன்பாட்டிற்கான பாதை மற்றும் இறுதியாக கையொப்பமிடப்பட்ட பயன்பாட்டிற்கான பாதை (முடிவு, அதை எங்கு சேமிப்பது). இது போல் தெரிகிறது:

ஷெல்

java -jar signapk.jar testkey.x509.pem testkey.pk8 *.apk apk_signed.apk

java - jar signapk .jar testkey .x509 .pem testkey .pk8 * .apk apk_signed .apk

அத்தகைய சான்றிதழை எங்கே பெறுவது என்று நீங்கள் கேட்கிறீர்களா? சான்றிதழ்களை இணையத்தில் காணலாம். அல்லது அதை நீங்களே உருவாக்குங்கள். தேவையான அனைத்து கோப்புகளையும் அமைப்பதற்கும் உருவாக்குவதற்கும் விரிவான வழிமுறைகளைக் காணலாம், எடுத்துக்காட்டாக, .

முடிவுரை

நீங்கள் பார்க்க முடியும் என, APK கோப்புகளை சிதைப்பது மற்றும் அசெம்பிள் செய்வது மிகவும் எளிமையான செயல்முறையாகும், இது கூடுதலாக, தானியங்கு செய்யப்படலாம், இது ஆராய்ச்சியாளரின் வேலையை எளிதாக்குகிறது. டால்விக் மெய்நிகர் இயந்திரம் கற்றுக்கொள்வதற்கும் திறப்பதற்கும் எளிதானது, இது ஒருபுறம், டெவலப்பர்களுக்கான நுழைவுத் தடையைக் குறைக்கிறது, மறுபுறம், ஆண்ட்ராய்டு இயங்குதளத்தில் இவ்வளவு பெரிய சதவீத திருட்டுக்கு முக்கிய காரணம். எடுத்துக்காட்டாக, கேம் டெவலப்பர்கள் பொதுவாக சுவாரஸ்யமான கேம்களை சதித்திட்டத்துடன் வெளியிடுவதில் ஆர்வம் காட்டுவதில்லை. பயனர்களின் தற்போதைய அணுகுமுறையைப் பொறுத்தவரை, ஒருவருக்கொருவர் ஒத்ததாக இருக்கும் நன்கொடைகளுடன் பண்ணைகளை ரிவெட் செய்வது மிகவும் லாபகரமானது. எனவே, நாங்கள் பயன்பாடுகளை வாங்குகிறோம், டெவலப்பர்களை ஆதரிக்கிறோம், இதன் விளைவாக, சுவாரஸ்யமான உள்ளடக்கத்தைப் பெறுகிறோம். ஆனால் தானம் செய்ய வேண்டிய அவசியம் இல்லை!

அனைவருக்கும் நன்றி, மீண்டும் சந்திப்போம்.

  • தளத்தின் பிரிவுகள்