{"id":302269,"date":"2020-04-21T21:00:27","date_gmt":"2020-04-21T21:00:27","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=302269"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=302269","title":{"rendered":"\u0413\u0430\u0439\u0434 \u043f\u043e \u0440\u0435\u0432\u0435\u0440\u0441\u0443 \u043a\u043b\u0438\u0435\u043d\u0442-\u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0433\u043e apk \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0437\u0430\u0434\u0430\u043d\u0438\u044f NeoQUEST-2020"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/company\/neobit\/blog\/496922\/\">\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/f0\/7j\/vf\/f07jvfe9r6534tbgp9bwdruryvy.jpeg\"><\/div>\n<p>  \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0443 \u043d\u0430\u0441 \u043d\u0430\u0441\u044b\u0449\u0435\u043d\u043d\u0430\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 (\u0435\u0449\u0435 \u0431\u044b, \u0441\u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0431\u043b\u0430\u0441\u0442\u0435\u0439 \u043a\u0438\u0431\u0435\u0440\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0437\u0430 \u0440\u0430\u0437!): \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044e Android-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043f\u0435\u0440\u0435\u0445\u0432\u0430\u0442\u0438\u043c \u0442\u0440\u0430\u0444\u0438\u043a \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f URL-\u0430\u0434\u0440\u0435\u0441\u043e\u0432, \u043f\u0435\u0440\u0435\u0441\u043e\u0431\u0435\u0440\u0435\u043c apk \u0431\u0435\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430, \u043f\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u043a\u0440\u0438\u043f\u0442\u043e\u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430\u043c\u0438 \u0438 \u043c\u043d\u043e\u0433\u043e\u0435 \u0434\u0440\u0443\u0433\u043e\u0435:) <br \/>  <a name=\"habracut\"><\/a><br \/>  \u0421\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u043b\u0435\u0433\u0435\u043d\u0434\u0435 <a href=\"http:\/\/neoquest.ru\/2020\">NeoQUEST-2020<\/a>, \u0433\u0435\u0440\u043e\u0439 \u043d\u0430\u0448\u0435\u043b \u0441\u0442\u0430\u0440\u044b\u0435 \u0434\u0435\u0442\u0430\u043b\u0438 \u0440\u043e\u0431\u043e\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043a\u043b\u044e\u0447\u0430. Let&#8217;s get it started!<\/p>\n<h2>1. \u0420\u0435\u0432\u0435\u0440\u0441\u0438\u043c apk<\/h2>\n<p>  \u0418\u0442\u0430\u043a, \u043f\u0435\u0440\u0435\u0434 \u043d\u0430\u043c\u0438 \u0442\u043e \u043d\u0435\u043c\u043d\u043e\u0433\u043e\u0435, \u0447\u0442\u043e \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0438\u0437\u0432\u043b\u0435\u0447\u044c \u0438\u0437 \u043f\u043e\u043b\u0443\u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u043e\u0431\u043e\u0442\u0430 \u2013 <a href=\"https:\/\/neoquest.ru\/2020\/files\/2\/2.apk\">apk-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435<\/a>, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043a\u0430\u043a\u0438\u043c-\u0442\u043e \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0434\u043e\u043b\u0436\u043d\u043e \u043f\u043e\u043c\u043e\u0447\u044c \u043d\u0430\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u043b\u044e\u0447. \u0421\u0434\u0435\u043b\u0430\u0435\u043c \u0441\u0430\u043c\u043e\u0435 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e\u0435: \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c apk \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0435\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b. \u0411\u043e\u043b\u0435\u0435 \u0447\u0435\u043c \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u043e\u043c\u043d\u0435\u043d\u0438\u0439 \u043d\u0435 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u2013 \u044d\u0442\u043e \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0439 \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0439 \u043a\u043b\u0438\u0435\u043d\u0442 FileDroid, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0444\u0430\u0439\u043b \u0441 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u041e\u043a\u0435\u0439, \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u043e. \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u043a \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0443, \u0434\u0435\u043b\u0430\u0435\u043c \u043f\u0440\u043e\u0431\u043d\u0443\u044e \u043f\u043e\u043f\u044b\u0442\u043a\u0443 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f (\u0441\u0440\u0430\u0437\u0443 key.txt \u2013 \u043d\u0443 \u0430 \u0432\u0434\u0440\u0443\u0433?) \u2013 \u0431\u0435\u0437\u0443\u0441\u043f\u0435\u0448\u043d\u043e, \u0444\u0430\u0439\u043b \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/b4\/kf\/z3\/b4kfz3wd44ev6ckfy664ba0ugho.png\"><\/p>\n<p>  \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u043f\u043e \u0443\u0440\u043e\u0432\u043d\u044e \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043c\u0435\u0440\u043e\u043f\u0440\u0438\u044f\u0442\u0438\u044e \u2013 \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c apk c \u043f\u043e\u043c\u043e\u0449\u044c\u044e <a href=\"https:\/\/github.com\/skylot\/jadx\/releases\">JADX<\/a> \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439, \u043a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435 \u043e\u0431\u0444\u0443\u0441\u0446\u0438\u0440\u043e\u0432\u0430\u043d. \u041d\u0430\u0448\u0430 \u0442\u0435\u043a\u0443\u0449\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u2013 \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u0444\u0430\u0439\u043b\u044b \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 \u0434\u043b\u044f \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f, \u0438 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0438\u0437 \u043d\u0438\u0445 \u0442\u043e\u0442 \u0441\u0430\u043c\u044b\u0439, \u0441 \u043a\u043b\u044e\u0447\u043e\u043c. <\/p>\n<p>  \u041d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0441 \u043a\u043b\u0430\u0441\u0441\u0430 com.ctf.filedroid.MainActivity, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0433\u043e \u043f\u043e\u043a\u0430 \u0441\u0430\u043c\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u0434\u043b\u044f \u043d\u0430\u0441 \u043c\u0435\u0442\u043e\u0434 onClick(), \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0436\u0430\u0442\u0438\u0435 \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 \u00abDownload\u00bb. \u0412\u043d\u0443\u0442\u0440\u0438 \u044d\u0442\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430 \u0434\u0432\u0430\u0436\u0434\u044b \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043a \u043a\u043b\u0430\u0441\u0441\u0443 ConnectionHandler: c\u043f\u0435\u0440\u0432\u0430 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 ConnectionHandler.getToken(), \u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0442\u0435\u043c \u2013 ConnectionHandler.getEncryptedFile(), \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0438\u043c\u044f \u0444\u0430\u0439\u043b\u0430, \u0437\u0430\u043f\u0440\u043e\u0448\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c. <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/m5\/66\/by\/m566byk1sozhodekerf1ggpf1hc.png\"><\/p>\n<p>  \u0410\u0433\u0430, \u0442\u043e \u0435\u0441\u0442\u044c \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u0442\u043e\u043a\u0435\u043d! \u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c\u0441\u044f \u0447\u0443\u0442\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0441 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u043c \u0435\u0433\u043e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f.<br \/>  \u041c\u0435\u0442\u043e\u0434 ConnectionHandler.getToken() \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043d\u0430 \u0432\u0445\u043e\u0434 \u0434\u0432\u0435 \u0441\u0442\u0440\u043e\u043a\u0438, \u0430 \u0437\u0430\u0442\u0435\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 GET-\u0437\u0430\u043f\u0440\u043e\u0441, \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u044f \u044d\u0442\u0438 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u00abcrc\u00bb \u0438 \u00absign\u00bb. \u0412 \u043e\u0442\u0432\u0435\u0442 \u0441\u0435\u0440\u0432\u0435\u0440 \u043f\u0440\u0438\u0441\u044b\u043b\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 JSON-\u0444\u043e\u0440\u043c\u0430\u0442\u0435, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u0442 \u0442\u043e\u043a\u0435\u043d \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0435\u0433\u043e \u0434\u043b\u044f \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430. \u042d\u0442\u043e \u0432\u0441\u0451, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0445\u043e\u0440\u043e\u0448\u043e, \u043d\u043e \u0447\u0442\u043e \u0437\u0430 \u00abcrc\u00bb \u0438 \u00absign\u00bb?<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/yn\/gy\/lg\/yngylgy7dstfocghhk0w_eufgcg.png\"><\/p>\n<p>  \u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c \u044d\u0442\u043e, \u0434\u0432\u0438\u0433\u0430\u0435\u043c\u0441\u044f \u0434\u0430\u043b\u044c\u0448\u0435 \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u043a\u043b\u0430\u0441\u0441\u0430 Checks, \u043b\u044e\u0431\u0435\u0437\u043d\u043e \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u044b badHash() \u0438 badSign(). \u041f\u0435\u0440\u0432\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043f\u043e\u0434\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u0443\u044e \u0441\u0443\u043c\u043c\u0443 \u043e\u0442 classes.dex \u0438 resources.arsc, \u043a\u043e\u043d\u043a\u0430\u0442\u0435\u043d\u0438\u0440\u0443\u0435\u0442 \u044d\u0442\u0438 \u0434\u0432\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438 \u043e\u0431\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u0442 \u0432 Base64 (\u043e\u0431\u0440\u0430\u0442\u0438\u043c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0444\u043b\u0430\u0433 10 = NO_WRAP | URL_SAFE, \u0432\u0434\u0440\u0443\u0433 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f). \u0410 \u0447\u0442\u043e \u0436\u0435 \u0432\u0442\u043e\u0440\u043e\u0439 \u043c\u0435\u0442\u043e\u0434? \u0410 \u043e\u043d \u0434\u0435\u043b\u0430\u0435\u0442 \u0442\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0441 SHA-256 fingerprint\u2019\u043e\u043c \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u042d\u0445, \u043f\u043e\u0445\u043e\u0436\u0435, \u0447\u0442\u043e FileDroid \u043d\u0435 \u043e\u0447\u0435\u043d\u044c-\u0442\u043e \u0436\u0430\u0436\u0434\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0435\u0440\u0435\u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u043c \ud83d\ude41<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/lj\/yj\/xo\/ljyjxoxvrlc8q3pjfxyrerya5ho.png\"><\/p>\n<p>  \u041e\u043a\u0435\u0439, \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u0447\u0442\u043e \u0442\u043e\u043a\u0435\u043d \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438. \u0427\u0442\u043e \u0434\u0430\u043b\u044c\u0448\u0435? \u041f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0435\u0433\u043e \u043d\u0430 \u0432\u0445\u043e\u0434 \u043c\u0435\u0442\u043e\u0434\u0430 ConnectionHandler.getEncryptedFile(), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0438\u0441\u043e\u0432\u043e\u043a\u0443\u043f\u043b\u044f\u0435\u0442 \u043a \u0442\u043e\u043a\u0435\u043d\u0443 \u0438\u043c\u044f \u0437\u0430\u043f\u0440\u043e\u0448\u0435\u043d\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0438 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u0435\u0449\u0435 \u043e\u0434\u0438\u043d GET-\u0437\u0430\u043f\u0440\u043e\u0441, \u043d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u00abtoken\u00bb \u0438 \u00abfile\u00bb. \u0421\u0435\u0440\u0432\u0435\u0440 \u0432 \u043e\u0442\u0432\u0435\u0442 (\u0441\u0443\u0434\u044f \u043f\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044e \u043c\u0435\u0442\u043e\u0434\u0430) \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \/sdcard\/.<\/p>\n<p>  \u0418\u0442\u0430\u043a, \u043f\u043e\u0434\u0432\u0435\u0434\u0435\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0439 \u0438\u0442\u043e\u0433: \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0434\u0432\u0435 \u043d\u043e\u0432\u043e\u0441\u0442\u0438, \u0438\u2026 \u043e\u0431\u0435 \u043f\u043b\u043e\u0445\u0438\u0435. \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, FileDroid \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043d\u0430\u0448\u0435 \u0440\u0432\u0435\u043d\u0438\u0435 \u043a \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 apk (\u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u043e\u0439 \u0441\u0443\u043c\u043c\u044b \u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u0438), \u0430 \u0432\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u043e\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0444\u0430\u0439\u043b \u043e\u0431\u0435\u0449\u0430\u0435\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c. <\/p>\n<p>  \u041b\u0430\u0434\u043d\u043e, \u0431\u0443\u0434\u0435\u043c \u0440\u0435\u0448\u0430\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043f\u043e \u043c\u0435\u0440\u0435 \u0438\u0445 \u043f\u043e\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u044f, \u0430 \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0430\u0448\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043c\u044b \u0432\u0441\u0451 \u0435\u0449\u0435 \u043d\u0435 \u0437\u043d\u0430\u0435\u043c, \u043a\u0430\u043a\u043e\u0439 \u0444\u0430\u0439\u043b \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c. \u041e\u0434\u043d\u0430\u043a\u043e \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u043a\u043b\u0430\u0441\u0441\u0430 ConnectionHandler \u043c\u044b \u043d\u0435 \u043c\u043e\u0433\u043b\u0438 \u043d\u0435 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u044f\u043c\u043e \u043c\u0435\u0436\u0434\u0443 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438 getToken() \u0438 getEncryptedFile() \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 FileDroid \u0437\u0430\u0431\u044b\u043b\u0438 \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u043e\u0447\u0435\u043d\u044c \u0441\u043e\u0431\u043b\u0430\u0437\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u043f\u043e\u0434 \u0433\u043e\u0432\u043e\u0440\u044f\u0449\u0438\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c getListing(). \u0417\u043d\u0430\u0447\u0438\u0442, \u0441\u0435\u0440\u0432\u0435\u0440 \u0442\u0430\u043a\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u2026 \u041a\u0430\u0436\u0435\u0442\u0441\u044f, \u044d\u0442\u043e \u0442\u043e, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e!<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/fk\/xz\/v1\/fkxzv1ac9ictxo7gy67ku_u44nq.png\"><\/p>\n<p>  \u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u0430 \u043d\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u044e\u0442\u0441\u044f \u0443\u0436\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u00abcrc\u00bb \u0438 \u00absign\u00bb \u2013 \u043d\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430, \u043c\u044b \u0443\u0436\u0435 \u0437\u043d\u0430\u0435\u043c, \u043e\u0442\u043a\u0443\u0434\u0430 \u043e\u043d\u0438 \u0431\u0435\u0440\u0443\u0442\u0441\u044f. \u0421\u0447\u0438\u0442\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c GET-\u0437\u0430\u043f\u0440\u043e\u0441 \u0438 \u2026 \u0422\u0430\u043a, \u0441\u0442\u043e\u043f. \u0410 \u043a\u0443\u0434\u0430 \u043c\u044b GET-\u0437\u0430\u043f\u0440\u043e\u0441 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c? \u041d\u0435\u043f\u043b\u043e\u0445\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c URL-\u0430\u0434\u0440\u0435\u0441 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u042d\u0445, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u0432 MainActivity.onClick() \u0438 \u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b netPath \u0434\u043b\u044f \u0432\u044b\u0437\u043e\u0432\u0430 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 getToken() \u0438 getEncryptedFile():<\/p>\n<pre><code class=\"coffeescript\">Method getSecureMethod =  wat.class.getDeclaredMethod(&quot;getSecure&quot;, new Class[]{String.class});  \/\/ . . .  \/\/ netPath --&gt; ConnectionHandler.getToken() (String) getSecureMethod.invoke((Object) null, new Object[]{&quot;fnks&quot;})  \/\/ netPath --&gt; ConnectionHandler. getEncryptedFile() (String) getSecureMethod.invoke((Object) null, new Object[]{&quot;qdkm&quot;}) <\/code><\/pre>\n<p>  \u0421\u0442\u0440\u0430\u043d\u043d\u044b\u0435 \u0431\u0443\u043a\u0432\u043e\u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u044f \u00abfnks\u00bb \u0438 \u00abqdmk\u00bb \u0432\u044b\u043d\u0443\u0436\u0434\u0430\u044e\u0442 \u043d\u0430\u0441 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043a \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0443 \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u043c\u0435\u0442\u043e\u0434\u0430 wat.getSecure(). <s>\u0421\u043f\u043e\u0439\u043b\u0435\u0440: \u044d\u0442\u043e\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0443 JADX \u0442\u0430\u043a \u0441\u0435\u0431\u0435. <\/s><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/-r\/ih\/gi\/-rihgizr3f3kvj0uge_1ekoaxsa.png\"><\/p>\n<p>  \u041f\u0440\u0438 \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0438\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u043c \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u0438 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u0432\u0441\u0451 \u044d\u0442\u043e \u043d\u0435 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043f\u0440\u0438\u044f\u0442\u043d\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u043c\u0435\u0442\u043e\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u044b\u0439 switch-case \u0442\u0430\u043a\u043e\u0433\u043e \u0432\u0438\u0434\u0430:<\/p>\n<pre><code class=\"coffeescript\">\/\/ . . . switch(CODE) {     case \u00abqdkm\u00bb:          r.2 = com.ctf.filedroid.x37AtsW8g.rlieh786d(2);         break;     case \u00abtkog\u00bb:          r2 = com.ctf.filedroid.x37AtsW8g.rlieh786d(1);         break;     case \u00abfnks\u00bb:          String r2 = com.ctf.filedroid.x37AtsW8g.rlieh786d(0); \tbreak; } java.lang.StringBuilder r1 = new java.lang.StringBuilder  r1.&lt;init&gt;(r2)  java.lang.String r0 = r1.toString()  java.lang.String r1 = radon(r0) return r1 <\/code><\/pre>\n<p>  \u0422\u0430\u043a \u043a\u0430\u043a \u00abfnks\u00bb \u0438 \u00abqdmk\u00bb \u0443\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0442\u043e\u043a\u0435\u043d\u0430 \u0438 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430, \u0442\u043e \u00abtkog\u00bb \u0434\u043e\u043b\u0436\u0435\u043d \u0434\u0430\u0432\u0430\u0442\u044c URL, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u0434\u043b\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435. \u041a\u0430\u0436\u0435\u0442\u0441\u044f, \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430\u0434\u0435\u0436\u0434\u0430 \u0434\u0435\u0448\u0435\u0432\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0439 \u043f\u0443\u0442\u044c\u2026 \u0412 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f URL\u2019\u044b \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438. \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e com.ctf.filedroid.x37AtsW8g.rlieh786d() \u0438 \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u044b\u0439 URL \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d \u0432 \u0432\u0438\u0434\u0435 \u0437\u0430\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0431\u0430\u0439\u0442\u043e\u0432, \u0430 \u0441\u0430\u043c\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u0438\u0437 \u044d\u0442\u0438\u0445 \u0431\u0430\u0439\u0442\u043e\u0432 \u0441\u0442\u0440\u043e\u043a\u0443 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0435\u0451.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/yt\/4e\/xz\/yt4exza37qeytal-i9snbrlo4co.png\"><\/p>\n<p>  \u0425\u043e\u0440\u043e\u0448\u043e. \u041d\u043e \u0434\u0430\u043b\u0435\u0435 \u0441\u0442\u0440\u043e\u043a\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e com.ctf.filedroid.wat.radon(), \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432\u044b\u043d\u0435\u0441\u0435\u043d\u0430 \u0432 \u043d\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 libae3d8oe1.so. \u0420\u0435\u0432\u0435\u0440\u0441\u0438\u0442\u044c arm64? \u0425\u043e\u0440\u043e\u0448\u0430\u044f \u043f\u043e\u043f\u044b\u0442\u043a\u0430, FileDroid, \u043d\u043e \u0434\u0430\u0432\u0430\u0439 \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u0440\u0430\u0437? <\/p>\n<h2>2. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c URL-\u0430\u0434\u0440\u0435\u0441\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430<\/h2>\n<p>  \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043f\u043e\u0434\u043e\u0439\u0442\u0438 \u0441 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b: \u043f\u0435\u0440\u0435\u0445\u0432\u0430\u0442\u0438\u0442\u044c \u0442\u0440\u0430\u0444\u0438\u043a, \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c URL-\u0430\u0434\u0440\u0435\u0441\u0430 \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c \u0432\u0438\u0434\u0435 (\u0430 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0431\u043e\u043d\u0443\u0441\u0430 \u2013 \u0435\u0449\u0435 \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u043e\u0439 \u0441\u0443\u043c\u043c\u044b \u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u0438!), \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0438\u0445 \u0431\u0430\u0439\u0442\u043e\u0432\u044b\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u0430\u043c \u0438\u0437 com.ctf.filedroid.x37AtsW8g.rlieh786d() \u2013 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043e\u0431\u044b\u0447\u043d\u044b\u043c \u0448\u0438\u0444\u0440\u043e\u043c \u0426\u0435\u0437\u0430\u0440\u044f \u0438\u043b\u0438 XOR?.. \u0422\u043e\u0433\u0434\u0430 \u043d\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u0442 \u0442\u0440\u0443\u0434\u0430 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0442\u0440\u0435\u0442\u0438\u0439 URL-\u0430\u0434\u0440\u0435\u0441 \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043b\u0438\u0441\u0442\u0438\u043d\u0433. <\/p>\n<p>  \u0414\u043b\u044f \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u043f\u0440\u043e\u043a\u0441\u0438 (<a href=\"https:\/\/www.charlesproxy.com\">Charles<\/a>, <a href=\"https:\/\/www.telerik.com\/fiddler\">fiddler<\/a>, <a href=\"https:\/\/portswigger.net\/burp\">BURP<\/a> \u0438 \u0442.\u043f.). \u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u043f\u0435\u0440\u0435\u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u0438 \u043d\u0430 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435, \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u0445\u0432\u0430\u0442 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0443\u0441\u043f\u0435\u0448\u043d\u043e, \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c FileFroid. \u041f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0438 \u2026 \u0432\u0438\u0434\u0438\u043c \u00abNetworkError\u00bb. \u0412\u044b\u0437\u0432\u0430\u043d\u0430 \u044d\u0442\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u0435\u043c certificate-pinning (\u0441\u043c. \u043c\u0435\u0442\u043e\u0434 com.ctf.filedroid.ConnectionHandler.sendRequest): \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0439 \u043a\u043b\u0438\u0435\u043d\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442, \u0447\u0442\u043e \u00ab\u0437\u0430\u0448\u0438\u0442\u044b\u0439\u00bb \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0443, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u043f\u043e\u0447\u0435\u043c\u0443 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0446\u0435\u043b\u043e\u0441\u0442\u043d\u043e\u0441\u0442\u044c \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f!<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/8y\/su\/ya\/8ysuya2vqxuwxdzrmt9xsuajq7o.png\"><\/p>\n<p>  \u041e\u0434\u043d\u0430\u043a\u043e \u0432 \u043f\u0435\u0440\u0435\u0445\u0432\u0430\u0447\u0435\u043d\u043d\u043e\u043c \u0442\u0440\u0430\u0444\u0438\u043a\u0435 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0445\u043e\u0442\u044f \u0431\u044b \u0434\u043e\u043c\u0435\u043d\u043d\u043e\u0435 \u0438\u043c\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0439 \u043a\u043b\u0438\u0435\u043d\u0442, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442, \u043d\u0430\u0434\u0435\u0436\u0434\u0430 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c URL-\u0430\u0434\u0440\u0435\u0441\u0430 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f!<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/im\/2w\/8l\/im2w8l7u7b0optrada1cuhbxcge.png\"><\/p>\n<p>  \u0412\u0435\u0440\u043d\u0435\u043c\u0441\u044f \u043a \u0444\u0443\u043d\u043a\u0446\u0438\u0438 com.ctf.filedroid.x37AtsW8g.rlieh786d() \u0438 \u043e\u0442\u043c\u0435\u0442\u0438\u043c, \u0447\u0442\u043e \u0432\u043e \u0432\u0441\u0435\u0445 \u043c\u0430\u0441\u0441\u0438\u0432\u0430\u0445 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442 \u043f\u0435\u0440\u0432\u044b\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u0435\u0441\u044f\u0442\u043a\u043e\u0432 \u0431\u0430\u0439\u0442:<\/p>\n<pre><code class=\"coffeescript\">cArr[0] = new char[]{'K', 'S', 'Y', '5', 'E', 'R', 'Q', 'J', 'S', '0', 't', 'W', 'B', '2', 'w', 'k', 'N', 'j', '8', 'O', 'D', 'l', 'd', 'K', 'C', 'l', 'U', 'B', 'c', 'T', 'Q', '3', 'P', 'h', 'V', 'J', 'Q', 'R', 'F', 'L', 'U', 'R', '5', 'p', 'b', 'i', . . .};  cArr[1] = new char[]{'K', 'S', 'Y', '5', 'E', 'R', 'Q', 'J', 'S', '0', 't', 'W', 'B', '2', 'w', 'k', 'N', 'j', '8', 'O', 'D', 'l', 'd', 'K', 'C', 'l', 'U', 'B', 'c', 'T', 'Q', '3', 'P', 'h', 'V', 'J', 'Q', 'R', 'F', 'L', 'U', 'R', '5', 'p', 'b', 'j', . . .};  cArr[2] = new char[]{'K', 'S', 'Y', '5', 'E', 'R', 'Q', 'J', 'S', '0', 't', 'W', 'B', '2', 'w', 'k', 'N', 'j', '8', 'O', 'D', 'l', 'd', 'K', 'C', 'l', 'U', 'B', 'c', 'T', 'Q', '3', 'P', 'h', 'V', 'J', 'Q', 'R', 'F', 'L', 'U', 'R', '5', 'p', 'b', 'j', . . ., '='}; <\/code><\/pre>\n<p>  \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0431\u0430\u0439\u0442 \u0442\u0440\u0435\u0442\u044c\u0435\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043d\u0430\u043c\u0435\u043a\u0430\u0435\u0442, \u0447\u0442\u043e \u0431\u0435\u0437 base64 \u0434\u0435\u043b\u043e \u043d\u0435 \u043e\u0431\u043e\u0448\u043b\u043e\u0441\u044c. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u043f\u043e\u043a\u0441\u043e\u0440\u0438\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0438\u0435\u0441\u044f \u0431\u0430\u0439\u0442\u044b \u0441 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u044c\u044e URL: <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/8o\/mh\/1m\/8omh1mtmtqzkcdy7mpqyemyiuzw.png\"><\/p>\n<p>  \u041a\u0430\u0436\u0435\u0442\u0441\u044f, \u043d\u0438\u043a\u0442\u043e \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u0435\u0449\u0435 \u0442\u0430\u043a \u043d\u0435 \u0440\u0430\u0434\u043e\u0432\u0430\u043b\u0441\u044f ARMag3dd0n\u2019\u0443! \u0414\u0435\u043b\u043e \u0437\u0430 \u043c\u0430\u043b\u044b\u043c: \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u0443\u0435\u043c \u0438\u0437 base64 URL-\u0430\u0434\u0440\u0435\u0441\u0430 \u0438 \u043a\u0441\u043e\u0440\u0438\u043c \u0441 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c. \u041d\u043e\u2026 \u0430 \u0435\u0441\u043b\u0438 \u0431\u044b \u044d\u0442\u043e \u0431\u044b\u043b \u043d\u0435 XOR, \u0430 \u0441\u0430\u043c\u043e\u043f\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u0447\u043d\u044b\u0439 \u0448\u0438\u0444\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435 \u043f\u043e\u0434\u0431\u0435\u0440\u0435\u0448\u044c \u0438 \u0441\u043e \u0441\u0442\u0430 \u043f\u043e\u043f\u044b\u0442\u043e\u043a? <\/p>\n<h2>3. \u041f\u0435\u0440\u0435\u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c apk \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Frida<\/h2>\n<p>  \u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u044d\u0442\u043e\u0433\u043e write-up\u2019\u0430 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0431\u043e\u043b\u0435\u0435 \u0431\u0435\u0437\u0431\u043e\u043b\u0435\u0437\u043d\u0435\u043d\u043d\u044b\u0439 (\u0438, \u043d\u0430 \u043d\u0430\u0448 \u0432\u0437\u0433\u043b\u044f\u0434, \u0431\u043e\u043b\u0435\u0435 \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u0439) \u0441\u043f\u043e\u0441\u043e\u0431 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u2013 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0440\u0435\u0439\u043c\u0444\u043e\u0440\u043a\u0430 <a href=\"https:\/\/frida.re\">Frida<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0432 run-time \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b apk-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441 \u043d\u0443\u0436\u043d\u044b\u043c\u0438 \u043d\u0430\u043c \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u0441 root-\u043f\u0440\u0430\u0432\u0430\u043c\u0438 \u0438\u043b\u0438 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440. \u041f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043f\u043b\u0430\u043d \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439:<\/p>\n<ol>\n<li>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 Frida \u043d\u0430 \u041f\u041a \u0438 \u043f\u043e\u0434\u043e\u043f\u044b\u0442\u043d\u044b\u0439 \u0442\u0435\u043b\u0435\u0444\u043e\u043d.<\/li>\n<li>\u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 URL-\u0430\u0434\u0440\u0435\u0441\u043e\u0432, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c \u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0442\u043e\u043a\u0435\u043d\u0430 \u0438\u043b\u0438 \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u0430, \u0438 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430 (\u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Frida).<\/li>\n<li>\u0418\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u043e\u0439 \u0441\u0443\u043c\u043c\u044b \u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f.<\/li>\n<li>\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u0430 \u0444\u0430\u0439\u043b\u043e\u0432, \u0445\u0440\u0430\u043d\u044f\u0449\u0438\u0445\u0441\u044f \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435, \u0438 \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430.<\/li>\n<li>\u0421\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435 \u0438 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430.<\/li>\n<\/ol>\n<p>  \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0443\u0442\u043e\u0447\u043d\u0438\u043c \u0432\u0437\u0430\u0438\u043c\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \u0440\u0443\u0442\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430 \u0438 apk. \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c, \u043d\u043e \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0439 \u043a\u043b\u0438\u0435\u043d\u0442 \u043d\u0435 \u0436\u0435\u043b\u0430\u0435\u0442 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c\u0441\u044f, \u043b\u0438\u0448\u044c \u043c\u0438\u0433\u0430\u0435\u0442 \u0438 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0447\u0435\u0440\u0435\u0437 logcat \u2013 \u0434\u0430, \u0442\u0430\u043a \u0438 \u0435\u0441\u0442\u044c, FileDroid \u0443\u0436\u0435 \u0447\u0443\u0432\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u0435\u043b\u0430\u0434\u043d\u043e\u0435 \u0438 \u0441\u043e\u043f\u0440\u043e\u0442\u0438\u0432\u043b\u044f\u0435\u0442\u0441\u044f, \u043a\u0430\u043a \u043c\u043e\u0436\u0435\u0442. <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/vn\/8s\/2b\/vn8s2bzyijssy664hsdgcxqnawc.png\"><\/p>\n<p>  \u0412\u043d\u043e\u0432\u044c \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u043a \u043a\u043b\u0430\u0441\u0441\u0443 MainActivity \u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0432\u0430\u0435\u043c, \u0447\u0442\u043e \u0432 onCreate() \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 doChecks(), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438 \u0432\u044b\u0432\u0435\u043b \u0432 \u043b\u043e\u0433 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ws\/xl\/i6\/wsxli6hxrjmgqnnkuh6b5a7h8my.png\"><\/p>\n<p>  \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0432 onResume() \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f, \u043e\u0442\u043a\u0440\u044b\u0442 \u043b\u0438 \u0442\u0438\u043f\u0438\u0447\u043d\u044b\u0439 \u0434\u043b\u044f Frida \u043f\u043e\u0440\u0442: <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/-k\/df\/kv\/-kdfkvyea8g0p6y-dkwxpk3flo4.png\"><\/p>\n<p>  \u041d\u0430\u0448 \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0439 \u043a\u043b\u0438\u0435\u043d\u0442 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043d\u0435\u0442\u043e\u043b\u0435\u0440\u0430\u043d\u0442\u043d\u044b\u043c \u043a \u043e\u0442\u043b\u0430\u0434\u043a\u0435, \u0440\u0443\u0442\u0443 \u0438 \u0441\u0430\u043c\u043e\u0439 Frida. \u0422\u0430\u043a\u043e\u0435 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u043d\u0435 \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u043d\u0430\u0448\u0438 \u043f\u043b\u0430\u043d\u044b, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c smali-\u043a\u043e\u0434 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0443\u0442\u0438\u043b\u0438\u0442\u044b <a href=\"https:\/\/ibotpeaches.github.io\/Apktool\/install\/\">apktool<\/a>, \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0432 \u043b\u044e\u0431\u043e\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435 \u0444\u0430\u0439\u043b MainActivity.smali, \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u043c\u0435\u0442\u043e\u0434 onCreate() \u0438 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u0432\u044b\u0437\u043e\u0432 doChecks() \u0432 \u0431\u0435\u0437\u043e\u0431\u0438\u0434\u043d\u044b\u0439 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/z6\/r2\/ra\/z6r2rautxzhef-0prc9odxmj2ek.png\"><\/p>\n<p>  \u0417\u0430\u0442\u0435\u043c \u043b\u0438\u0448\u0430\u0435\u043c \u043c\u0435\u0442\u043e\u0434 suicide() \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f: <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/iu\/ti\/q6\/iutiq6k6idg5_6h7wd1he2mjyem.png\"><\/p>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u0441\u043d\u043e\u0432\u0430 \u0441\u043e\u0431\u0435\u0440\u0435\u043c \u043d\u0430\u0448\u0435 \u0441\u043b\u0435\u0433\u043a\u0430 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e apktool \u0438 \u043f\u043e\u0434\u043f\u0438\u0448\u0435\u043c \u0435\u0433\u043e, \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b (\u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u043f\u0440\u0430\u0432\u0430 \u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430):<\/p>\n<pre><code class=\"bash\">cd &quot;C:\\Program Files\\Java\\jdk-14\\bin&quot; .\\keytool -genkey -v -keystore filedroid.keystore -alias filedroid_alias -keyalg RSA -keysize 2048 -validity 10000 .\\jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore  filedroid.keystore filedroid_patched.apk filedroid_alias .\\jarsigner -verify -verbose -certs filedroid_patched.apk <\/code><\/pre>\n<p>  \u041f\u0435\u0440\u0435\u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0435, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0435\u0433\u043e \u2013 \u0443\u0440\u0430, \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u0431\u0435\u0437 \u043f\u0440\u043e\u0438\u0441\u0448\u0435\u0441\u0442\u0432\u0438\u0439, \u043b\u043e\u0433 \u0447\u0438\u0441\u0442! <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/qm\/u4\/k2\/qmu4k2ta7zji47msjnyhhq8ibqi.png\"><\/p>\n<p>  \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 Frida \u043d\u0430 \u041f\u041a \u0438 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e:<\/p>\n<pre><code class=\"bash\">$ sudo pip3 install frida-tools $ wget https:\/\/github.com\/frida\/frida\/releases\/download\/$(frida --version)\/frida-server-$(frida --version)-android-arm.xz $ unxz frida-server-$(frida --version)-android-arm.xz $ adb push frida-server-$(frida --version)-android-arm \/data\/local\/tmp\/frida-server <\/code><\/pre>\n<p>  \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0441\u0435\u0440\u0432\u0435\u0440 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 Frida \u043d\u0430 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435:<\/p>\n<pre><code class=\"bash\">$ adb shell su -\u0441 &quot;chmod 755 \/data\/local\/tmp\/frida-server&quot; $ adb shell su -\u0441 &quot;\/data\/local\/tmp\/frida-server &amp;&quot;   <\/code><\/pre>\n<p>  \u041f\u043e\u0434\u0433\u043e\u0442\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 get-urls.js, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u0437\u043e\u0432\u0435\u0442 wat.getSecure() \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432:<\/p>\n<pre><code class=\"actionscript\">Java.perform(function ()  {      const wat = Java.use('com.ctf.filedroid.wat'); \tconsole.log(wat.getSecure(&quot;fnks&quot;)); \tconsole.log(wat.getSecure(&quot;qdmk&quot;)); \tconsole.log(wat.getSecure(&quot;tkog&quot;)); });<\/code><\/pre>\n<p>  \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c FileDroid \u043d\u0430 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u0438 \u00ab\u0446\u0435\u043f\u043b\u044f\u0435\u043c\u0441\u044f\u00bb \u043d\u0430\u0448\u0438\u043c \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c \u043a \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c\u0443 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0443: <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/pc\/ir\/if\/pcirifn_grrejaapwi7s-7hg-xe.png\"><\/p>\n<h2>4. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043b\u0438\u0441\u0442\u0438\u043d\u0433 \u0444\u0430\u0439\u043b\u043e\u0432 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435<\/h2>\n<p>  \u041d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 \u0441\u0442\u0430\u043b \u0434\u043b\u044f \u043d\u0430\u0441 \u0447\u0443\u0442\u044c \u0431\u043b\u0438\u0436\u0435! \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u043c \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u0447\u0442\u043e \u0441\u0435\u0440\u0432\u0435\u0440 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043f\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043f\u0443\u0442\u044f\u043c:<\/p>\n<ol>\n<li><a href=\"https:\/\/filedroid.neoquest.ru\/api\/verifyme?crc=\">filedroid.neoquest.ru\/api\/verifyme?crc=<\/a>{crc}&amp;sign={sign}<\/li>\n<li><a href=\"https:\/\/filedroid.neoquest.ru\/api\/list_post_apocalyptic_collection?crc=\">filedroid.neoquest.ru\/api\/list_post_apocalyptic_collection?crc=<\/a>{crc}&amp;sign={sign}<\/li>\n<li><a href=\"https:\/\/filedroid.neoquest.ru\/api\/file?file=\">filedroid.neoquest.ru\/api\/file?file=<\/a>{file}&amp;token={token}<\/li>\n<\/ol>\n<p>  \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043b\u0438\u0441\u0442\u0438\u043d\u0433 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432, \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u0434\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u043e\u0439 \u0441\u0443\u043c\u043c\u044b \u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0430 \u0437\u0430\u0442\u0435\u043c \u0437\u0430\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u0432 base64. <\/p>\n<p>  \u0421\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u043d\u0430 python3:<\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0421\u043f\u043e\u0439\u043b\u0435\u0440<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"coffeescript\">import hashlib import binascii import base64 from asn1crypto import cms, x509 from zipfile import ZipFile   def get_info(apk):     with ZipFile(apk, 'r') as zipObj:         classes = zipObj.read(&quot;classes.dex&quot;)         resources = zipObj.read(&quot;resources.arsc&quot;)         cert = zipObj.read(&quot;META-INF\/CERT.RSA&quot;)         crc = &quot;%s%s&quot; % (get_crc(classes), get_crc(resources))         return get_full_crc(classes, resources).decode(&quot;utf-8&quot;), get_sign(cert).decode(&quot;utf-8&quot;)   def get_crc(file):     crc = binascii.crc32(file) &amp; 0xffffffff     return crc   def get_full_crc(classes, resources):     crc = &quot;%s%s&quot; % (get_crc(classes), get_crc(resources))     return base64.urlsafe_b64encode(bytes(crc, &quot;utf-8&quot;))   def get_sign(file):     pkcs7 = cms.ContentInfo.load(file)     data = pkcs7['content']['certificates'][0].chosen.dump()     sha256 = hashlib.sha256()     sha256.update(data)     return base64.urlsafe_b64encode(sha256.digest())    get_info('filedroid.apk') <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  \u0412\u0440\u0443\u0447\u043d\u0443\u044e \u0442\u043e\u0436\u0435 \u043c\u043e\u0436\u043d\u043e. \u041b\u044e\u0431\u044b\u043c \u0443\u0434\u043e\u0431\u043d\u044b\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c \u0441\u0447\u0438\u0442\u0430\u0435\u043c CRC32 \u043e\u0442 classes.dex \u0438 resources.arsc (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f Linux \u2013 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0443\u0442\u0438\u043b\u0438\u0442\u043e\u0439 crc32), \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u202d1276945813\u202c \u0438 2814166583 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043a\u043e\u043d\u043a\u0430\u0442\u0435\u043d\u0438\u0440\u0443\u0435\u043c \u0438\u0445 (\u0432\u044b\u0439\u0434\u0435\u0442 12769458132814166583) \u0438 \u043a\u043e\u0434\u0438\u0440\u0443\u0435\u043c \u0432 base64, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <a href=\"https:\/\/cryptii.com\/pipes\/hex-to-base64\">\u0442\u0443\u0442<\/a>:\u202c\u202c<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/wb\/ba\/km\/wbbakmhm-8jmtyyudjhofelaz8s.png\"><\/p>\n<p>  \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0443\u044e \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443 \u0434\u043b\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0432 \u043e\u043a\u043d\u0435 JADX \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u0440\u0430\u0437\u0434\u0435\u043b \u00abAPK Signature\u00bb, \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u00abSHA-256 Fingerprint\u00bb \u0438 \u043a\u043e\u0434\u0438\u0440\u0443\u0435\u043c \u0435\u0433\u043e \u0432 base64 \u043a\u0430\u043a \u0431\u0430\u0439\u0442\u043e\u0432\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/wx\/s9\/zg\/wxs9zgvtahyytsnvxis-k8lq8wg.png\"><\/p>\n<p>  <b>\u0412\u0430\u0436\u043d\u043e:<\/b> \u0432 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u043c apk base64-\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441 \u0444\u043b\u0430\u0433\u043e\u043c URL_SAFE, \u0442.\u0435. \u0432\u043c\u0435\u0441\u0442\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u00ab+\u00bb \u0438 \u00ab\/\u00bb \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u00ab\u2013\u00bb \u0438 \u00ab_\u00bb \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u043f\u0440\u0438 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u043c \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0442\u043e\u0436\u0435 \u0441\u043e\u0431\u043b\u044e\u0434\u0430\u0442\u044c\u0441\u044f. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u0438 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043e\u043d\u043b\u0430\u0439\u043d \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u0430\u043b\u0444\u0430\u0432\u0438\u0442 \u0441 \u00abABCDEFGHIJKLMNOPQRSTUVWXYZabcde fghijklmnopqrstuvwxyz0123456789+\/\u00bb \u043d\u0430 \u00abABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijkl mnopqrstuvwxyz0123456789\u2013_\u00bb, \u0430 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u043d\u0430 python3 \u2013 \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e base64.urlsafe_b64encode().<\/p>\n<p>  \u041d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0432\u0441\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u0430 \u0444\u0430\u0439\u043b\u043e\u0432:<\/p>\n<ol>\n<li><a href=\"https:\/\/filedroid.neoquest.ru\/api\/list_post_apocalyptic_collection?crc=\">filedroid.neoquest.ru\/api\/list_post_apocalyptic_collection?crc=<\/a>{crc}&amp;sign={sign}<\/li>\n<li>crc: MTI3Njk0NTgxMzI4MTQxNjY1ODM=<\/li>\n<li>sign: HeiTSPWdCuhpbmVxqLxW-uhrozfG_QWpTv9ygn45eHY=<\/li>\n<\/ol>\n<p>  \u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c GET-\u0437\u0430\u043f\u0440\u043e\u0441 \u2013 \u0438 \u0443\u0440\u0430, \u043b\u0438\u0441\u0442\u0438\u043d\u0433 \u043d\u0430\u0448! \u041f\u0440\u0438\u0447\u0435\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u0444\u0430\u0439\u043b\u043e\u0432 \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u0441\u0430\u043c\u043e \u0437\u0430 \u0441\u0435\u0431\u044f \u2013 \u00abopen-if-you-want-to-escape\u00bb \u2013 \u043f\u043e\u0445\u043e\u0436\u0435, \u043e\u043d-\u0442\u043e \u043d\u0430\u043c \u0438 \u043d\u0443\u0436\u0435\u043d. <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/bk\/k4\/vz\/bkk4vzawktgg1ilhn1x06q90ahq.png\"><\/p>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0438\u043c \u043e\u0434\u043d\u043e\u0440\u0430\u0437\u043e\u0432\u044b\u0439 \u0442\u043e\u043a\u0435\u043d \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0438 \u0441\u043a\u0430\u0447\u0430\u0435\u043c \u0444\u0430\u0439\u043b:<\/p>\n<pre><code class=\"coffeescript\">import requests  response = requests.get('https:\/\/filedroid.neoquest.ru\/api\/verifyme',      \t\tparams={    'crc': 'MTI3Njk0NTgxMzI4MTQxNjY1ODM=',  'sign': HeiTSPWdCuhpbmVxqLxW-uhrozfG_QWpTv9ygn45eHY=}, verify=False)      token = response.json()['token'] print(token) response = requests.get('https:\/\/filedroid.neoquest.ru\/api\/file',  params={'token': token, 'file': '0p3n1fuw4nt2esk4p3.jpg'}, verify=False)  with open(&quot;0p3n1fuw4nt2esk4p3.jpg&quot;, 'wb') as fd:         fd.write(response.content) <\/code><\/pre>\n<p>  \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0441\u043a\u0430\u0447\u0430\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0438 \u0432\u0441\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u043c \u043e\u0431 \u043e\u0434\u043d\u043e\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043e\u0431\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0435, \u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u043c \u043d\u0430\u043c\u0438 \u043d\u0430 \u043f\u043e\u0442\u043e\u043c:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/kt\/dc\/rz\/ktdcrzjrng635moxnmt5_phu2nu.png\"><\/p>\n<h2>5. \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0449\u0435\u043f\u043e\u0442\u043e\u0447\u043a\u0443 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438&#8230;<\/h2>\n<p>  \u042d\u0445, \u0440\u0430\u043d\u043e\u0432\u0430\u0442\u043e \u043c\u044b \u043e\u0442\u043b\u043e\u0436\u0438\u043b\u0438 FileDroid. \u0421\u043d\u043e\u0432\u0430 \u0432\u0435\u0440\u043d\u0435\u043c\u0441\u044f \u0432 JADX \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043d\u0435 \u043e\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u043b\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0433\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0447\u0435\u0433\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0433\u043e \u0434\u043b\u044f \u043d\u0430\u0441. \u0414\u0430, \u044d\u0442\u043e \u0442\u043e\u0442 \u0441\u043b\u0443\u0447\u0430\u0439, \u043a\u043e\u0433\u0434\u0430 code cleanup \u044f\u0432\u043d\u043e \u043d\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u0435\u043d: \u043d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 decryptFile() \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e \u0436\u0434\u0435\u0442 \u043d\u0430\u0448\u0435\u0433\u043e \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 ConnectionHandler. \u0427\u0442\u043e \u043c\u044b \u0438\u043c\u0435\u0435\u043c? <\/p>\n<p>  \u0428\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/Advanced_Encryption_Standard\">AES<\/a> \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A0%D0%B5%D0%B6%D0%B8%D0%BC_%D1%88%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F#Cipher_Block_Chaining_(CBC)\">CBC<\/a>, \u0441\u0438\u043d\u0445\u0440\u043e\u043f\u043e\u0441\u044b\u043b\u043a\u0430 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u043f\u0435\u0440\u0432\u044b\u0435 16 \u0431\u0430\u0439\u0442\u2026 \u041b\u0435\u043d\u044c \u2013 \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044c \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441\u0430, \u043b\u0443\u0447\u0448\u0435 \u0441\u043d\u043e\u0432\u0430 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f Frida \u0438 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u0443\u0435\u043c \u043d\u0430\u0448 0p3n1fuw4nt2esk4p3.jpg \u0431\u0435\u0437 \u043b\u0438\u0448\u043d\u0438\u0445 \u0443\u0441\u0438\u043b\u0438\u0439. \u0412\u043e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u043b\u044e\u0447 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f? \u0412\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u043d\u0435 \u0442\u0430\u043a \u043c\u043d\u043e\u0433\u043e, \u0430 \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u0435\u0449\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u00ab\u0437\u0430\u0431\u044b\u0442\u043e\u0433\u043e\u00bb \u043c\u0435\u0442\u043e\u0434\u0430 savePlainFile(String file, String token) \u0432\u044b\u0431\u043e\u0440 \u043e\u0447\u0435\u0432\u0438\u0434\u0435\u043d.<\/p>\n<p>  \u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 decrypt.js (\u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 <i>token<\/i> \u0443\u043a\u0430\u0436\u0435\u043c \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, &#8216;HoHknc572mVpZESSQN1Xa7S9zOidxX1PMbykdoM1EXI=&#8217;):<\/p>\n<pre><code class=\"coffeescript\">Java.perform(function () {     const JavaString = Java.use('java.lang.String');     const file_name = JavaString.$new('0p3n1fuw4nt2esk4p3.jpg');     const ConnectionHandler = Java.use('com.ctf.filedroid.ConnectionHandler');     const result = ConnectionHandler.savePlainFile(file_name, &lt;token&gt;);     console.log(result); }); <\/code><\/pre>\n<p>  \u041f\u043e\u043c\u0435\u0449\u0430\u0435\u043c \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b 0p3n1fuw4nt2esk4p3.jpg \u043d\u0430 \/sdcard\/, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c FileDroid \u0438 \u0438\u043d\u0436\u0435\u043a\u0442\u0438\u043c \u0441\u043a\u0440\u0438\u043f\u0442 decrypt.js \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Frida. \u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0441\u043a\u0440\u0438\u043f\u0442 \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043d\u0430 \/sdcard\/ \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0444\u0430\u0439\u043b plainfile.jpg. \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0435\u0433\u043e \u0438 \u2026 just solved!<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/fb\/3-\/ah\/fb3-ahlzcqlnfjsromkmbz9eil0.png\"><\/p>\n<p>  \u042d\u0442\u043e \u043d\u0435\u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0437\u0430\u0434\u0430\u043d\u0438\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e \u043e\u0442 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432 \u0437\u043d\u0430\u043d\u0438\u0439 \u0438 \u043d\u0430\u0432\u044b\u043a\u043e\u0432 \u0441\u0440\u0430\u0437\u0443 \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0441\u0444\u0435\u0440\u0430\u0445 \u0438\u043d\u0444\u043e\u0431\u0435\u0437\u0430, \u0438 \u043c\u044b \u0440\u0430\u0434\u044b \u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0441\u043e\u0440\u0435\u0432\u043d\u0443\u044e\u0449\u0438\u0445\u0441\u044f \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441 \u043d\u0438\u043c \u0441\u043f\u0440\u0430\u0432\u0438\u043b\u043e\u0441\u044c! <\/p>\n<p>  \u041d\u0430\u0434\u0435\u0435\u043c\u0441\u044f, \u0447\u0442\u043e \u0442\u0435, \u043a\u043e\u043c\u0443 \u0447\u0443\u0442\u044c-\u0447\u0443\u0442\u044c \u043d\u0435 \u0445\u0432\u0430\u0442\u0438\u043b\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438\u043b\u0438 \u0437\u043d\u0430\u043d\u0438\u0439 \u0434\u043e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043a\u043b\u044e\u0447\u0430, \u0442\u0435\u043f\u0435\u0440\u044c \u0442\u043e\u0436\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043f\u0440\u043e\u0439\u0434\u0443\u0442 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0435 \u0442\u0430\u0441\u043a\u0438 \u0432 \u043b\u044e\u0431\u043e\u043c CTF \ud83d\ude42<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/company\/neobit\/blog\/496922\/\"> https:\/\/habr.com\/ru\/company\/neobit\/blog\/496922\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/company\/neobit\/blog\/496922\/\">\n<div style=\"text-align:center;\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/f0\/7j\/vf\/f07jvfe9r6534tbgp9bwdruryvy.jpeg\"><\/div>\n<p>  \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0443 \u043d\u0430\u0441 \u043d\u0430\u0441\u044b\u0449\u0435\u043d\u043d\u0430\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 (\u0435\u0449\u0435 \u0431\u044b, \u0441\u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0431\u043b\u0430\u0441\u0442\u0435\u0439 \u043a\u0438\u0431\u0435\u0440\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0437\u0430 \u0440\u0430\u0437!): \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044e Android-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043f\u0435\u0440\u0435\u0445\u0432\u0430\u0442\u0438\u043c \u0442\u0440\u0430\u0444\u0438\u043a \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f URL-\u0430\u0434\u0440\u0435\u0441\u043e\u0432, \u043f\u0435\u0440\u0435\u0441\u043e\u0431\u0435\u0440\u0435\u043c apk \u0431\u0435\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430, \u043f\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u043a\u0440\u0438\u043f\u0442\u043e\u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430\u043c\u0438 \u0438 \u043c\u043d\u043e\u0433\u043e\u0435 \u0434\u0440\u0443\u0433\u043e\u0435:)   <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-302269","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/302269","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=302269"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/302269\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=302269"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=302269"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=302269"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}