первоначальное намерение
Недавно я изучал разработку апплета WeChat, наступил на яму в реальном бою и сымитировал переднюю часть некоего оранжевого велосипедного апплета.
В процессе имитации, поскольку апплет — это полностью черный ящик, в отличие от браузера, вы можете просмотреть код и получить материал в инструменте разработчика. Так что это чисто умозрительно. В это время я думаю, как удобно было бы скопировать его как веб-проект~
Внезапно я подумал о том, могу ли я получить исходный файл апплета, затем попытаться декомпилировать его и восстановить исходный код, и, наконец, поместить его в инструмент разработчика WeChat, чтобы запустить его в качестве учебного пособия, так что есть замечательный пункт получения исходного кода апплета Опыт.
Я искал различные руководства по декомпиляции небольших программ, но чувствую, что они не подходят для таких новичков, как я, и я наступил на множество ям. Здесь я записываю упрощенный способ получения исходного кода апплета WeChat.
исходный файл апплета
Давайте сначала подумаем над очень простым вопросом,Где хранятся исходные файлы апплета??
- Ну, это должно быть размещено на сервере WeChat.
Получить его напрямую с сервера WeChat невозможно. Есть ли косвенный способ?
- Да, просто подумайте о сценарии, где мы используем апплет, и вы поймете, что когда мы нажимаем на апплет WeChat, происходит процесс загрузки, фактически WeChat загрузил его с сервера на мобильный телефон, а затем в
手机本地
В ходе выполнения. - Таким образом, мы должны быть в состоянии
手机本地
Найдите загруженный файл апплета
Итак, где файлы апплетов хранятся на телефоне?
- В качестве примера здесь используются только телефоны Android, ведь у бедняков никогда не было телефона Apple.
- Конкретное расположение каталога указывается напрямую (фигурные скобки являются заполнителями):
/data/data/com.tencent.mm/MicroMsg/{{一串32位的16进制字符串名文件夹}}/appbrand/pkg/
- В этом каталоге вы найдете несколько
xxxxxxx.wxapkg
тип файлов, среди этих файлов есть файлы, которые необходимы для запуска апплета WeChat - .wxapkg — это двоичный файл с собственным набором структур.
- Примечания к чтению исходного кода апплета WeChatЭтот пост содержит подробное введение в .wxapkg. Спасибо за интерес, вы можете взглянуть
Рекомендуемый метод приобретения
- Вход в вышеупомянутые каталоги требует использования стороннего файлового менеджера, такого как:
RE文件管理器
, и Android требует получения root-прав, а мобильные телефоны Apple требуют джейлбрейка, что слишком трудоемко, и не рекомендуется получать его с реальной машины.Мы можем использовать root-права на рынке.安卓模拟器
сделать это.
Начало
Не могу дождаться, давайте начнем
Подготовить материалы
- среда выполнения node.js
- Если nodejs не установлен, сначала установите его
- ссылка для скачивания:nodejs.org/en/
- Декомпилированный скрипт (это тот парень, который ест)
- Вот гитхаб
qwerty472123
Версия node.js, написанная великим богом, конечно, есть и другие версии, такие какpython
версия, здесь я просто использую версию node.js в качестве примера - адрес:GitHub.com/qwerty47212…
- Эмулятор Android (требуется собственное разрешение root)
- я использую
夜神模拟器
, так же можно использовать Netease mumu и подобные, все таки - ссылка для скачивания:ву ву ву поздно ночью.com/cai/download…
подробные шаги:
Используйте эмулятор Android, чтобы получить файл .wxapkg.
- Откройте установленный эмулятор Android и установите его в эмуляторе.
QQ
,微信
,RE管理器
-
QQ
,微信
Найдите и загрузите в магазине приложений, который поставляется с эмулятором. -
RE管理器
Адрес загрузки:disk.baidu.com/is/1PP BX08RN… - После загрузки перетащите его прямо в открытое окно симулятора, и он будет установлен автоматически.
- Настроить эмулятор
- на мой взгляд лучше
夜神模拟器
Пример - Сначала зайдите в эмулятор, чтобы установить права суперпользователя.
- Целью этих операций является обеспечение
RE管理器
Успешно получено разрешение ROOT
- Затем откройте WeChat в симуляторе, а затем запустите апплет, который вы хотите получить, в WeChat (WeChat загрузит пакет исходного файла целевого апплета с сервера на локальный)
- Возьмите небольшую программу этого велосипеда, которую я упомянул в качестве примера.
- Запустите апплет в эмуляторе WeChat, а затемВернитесь на рабочий стол эмулятора и запустите браузер RE.в каталог
/data/data/com.tencent.mm/MicroMsg/{{一串32位的16进制字符串文件夹}}/appbrand/pkg/
- достиг папки назначения
- Вы найдете несколько файлов с суффиксом .wxapkg, некоторые из которых являются зависимостями апплета, а объем будет больше, чем сам апплет.
- Как правило, файлы небольших программ относительно малы, мы выбираем 700 КБ и долго нажимаем, а затем нажимаем опцию в правом верхнем углу, чтобы выбрать ее.Сжат в виде zip-пакета, а затем отправьте сжатый пакет намой компьютер
- Примечание:Если не сжимать, QQ сообщит, что файл недоступен
- Таким образом, эта функция QQ позволяет нам легко получить исходные файлы без необходимости заходить в каталог компьютера, чтобы найти каталог файлов симулятора.
- разархивировать. После нескольких простых операций исходный файл апплета был успешно получен.
Распаковать wxapkg с помощью скрипта декомпиляции
- На этом этапе вы должны были загрузить декомпилированный скрипт с github или клонировать его в локальный каталог.
- Откройте командное окно nodejs.Если есть vscode, удобнее использовать vscode напрямую.Если он не установлен, откройте следующее окно командной строки
-
Используйте команду cd, чтобы ввести свой клон или скачанныйдиректория декомпилировать скриптВниз
-
Установить зависимости
npm install
-
После установки зависимостей последний шаг — декомпиляция файла .wxapkg.
-
Войти в текущий каталог
node wuWxapkg.js [-d] <files...> //files 就是你想要反编译的文件名
Например: у меня есть файл, который нужно декомпилировать
_163200311_32.wxapkg
Он был распакован в корневой каталог диска D, затем выведите командуnode .\wuWxapkg.js D:\_163200311_32.wxapkg
Советы: обратите внимание здесьНе нажимайте косую черту, вы можете ввести первые несколько символов имени файла, затемКлавиша табуляцииимя файла будет автоматически заполнено
- Введите, чтобы запустить
- Сценарий декомпиляции может восстановить файл .wxapkg в исходный файл, который можно запустить с помощью инструмента разработчика WeChat за один шаг.Адрес каталога совпадает с адресом файла, который вы декомпилировали.
- Видя эти файловые структуры, это очень знакомо! Мы можем открыть его, добавив новый проект в инструмент разработчика WeChat.
- Операция выполнена успешно, получение исходного кода завершено.
Если есть какие-то проблемы с запуском: вы можете попробовать, нажмите на инструменты разработчика ПодробнееСнимите галочку с es6 на es5,Установите флажок Не проверять безопасные доменные имена.
Проверено, но все равно не запускается? Тогда, пожалуйста, переключитесь на деталибазовый репозиторийпопробуй снова
До сих пор мы получили нужный исходный файл апплета очень простым способом, декомпилировали и восстановили его. В дальнейшем, если вы захотите декомпилировать другие небольшие программы, это вообще очень просто.
- Найдите файл апплета .wxapkg с помощью эмулятора.
- Используйте скрипт декомпиляции nodejs для декомпиляции файла .wxapkg.
Используя этот метод, большинство небольших программ можно нормально декомпилировать, но есть и некоторые особые случаи, вы можете проверить детали
qwerty472123
Великий Бог Гитхабreadme.md
документ
слова, написанные на спине
Из информации, с которой я ознакомился, я узнал, что еще когда мини-игра стала популярной, кто-то использовал appid и номер версии мини-программы для создания URL-адреса для загрузки файла исходного кода wxapkg мини-программы непосредственно из сервер. Но этот способ был быстро заблокирован.
Тот факт, что онлайн-исходный код можно так легко получить, показывает, что в безопасности исходного кода апплета все еще есть некоторые скрытые опасности. Однако сам апплет является производным от экосистемы внешнего интерфейса. Код внешнего интерфейса часто отвечает только за представление части взаимодействия человека с компьютером. Даже если код просочился, этого часто недостаточно, чтобы вызвать слишком большое влияние на систему. Кроме того, текущий фреймворк разработки апплета часто компилируется и обфусцируется при упаковке, код после замены переменных плохо читается, код, который мы получаем в результате декомпиляции, на самом деле подобен работающему коду веб-страницы, просматриваемой непосредственно в Браузер, в нем сложно увидеть конкретную логику.
Таким образом, метод, представленный здесь, предназначен только для новичков в небольших программах, таких как я, чтобы получить некоторые имитационные материалы и записать некоторые мысли о практическом исследовании.
Как новая сила в экосистеме WeChat, мини-программы ожидаются не только официальными лицами, но и многими разработчиками и контент-менеджерами.Учитывая безопасность кода, метод приобретения, описанный в этой статье, не уверен, будет ли он работать в будущее.