- PVSM.RU - https://www.pvsm.ru -
У меня есть pet-project, приложение для учета финансов.
На мой взгляд, одной из ключевых проблем подобных приложений является ручной ввод баланса.
У банков есть информация о транзакциях которые я совершаю и даже есть неплохая аналитика.
Но
Для доступа к данным можно использовать разные каналы: сайты и приложения. Сайты выглядят проще: взял дебагер chrome и вперед. Но данные на сайте чаще меняют свою структуру, так как кроме данных они содержат еще элементы UI. Приложения, в отличие от сайтов, запрашивают данные с сервера и только в своих кишках делают из него UI. На сайте нужно оперировать html, который построен на малопонятных, мутабельных div, изменямых javascriptом. В приложения обычно приходят уже удобные для машинной обработки json/xml.
Я понятия не имею насколько легальны действия в данной статье. На мой взгляд это скраппинг своих данных, к которым я должен иметь доступ. Я не юрист, но знаю, что законодательство РФ обширно и, если навредить большой компании, то статья найдется и на эти действия. Доступа к чужим данным таким образом не получить.
В политике многих приложений стоит запрет на модификацию кода этих приложений. Чем грозит нарушение данного пункта я не знаю. В связи с этим тут нет конкретных примеров приложений. Все действия описанны с точки зрения, реверса приложения которое не запрещает его реверсить.
Я не призываю совершать противоправные действия, будьте зайками.
Изначально данная статья была примером реверса приложения одного сервиса. К сожалению, редактирование статьи не удаляет коментарии, где было обсуждение какое конкретно приложение можно зареверсить таким образом. В связи с этим, был вынужден сделать повторную публикацию вместо изменения исходной статьи.
Краткая инструкция для реверса приложения
apktool d -f -r app.apk
<network-security-config>
<base-config>
<trust-anchors>
<certificates src="user" />
</trust-anchors>
</base-config>
</network-security-config>
<application android:networkSecurityConfig="@xml/network_security_config"></application>
Help > SSL Proxying > Save Charles Root Certificate
cp <your.cer> your_app/res/somePath/somecert.cer
apktool b yourapp -o ${apkName}
java -jar sign.jar ${apkName}
(в настройках wifi выбирается Proxy. IP - машины с charles, PORT-8888)
После всех манипуляций можно снифить трафик приложения и довольно быстро разобраться как производить в нем нужные вам действия. Обычные шаги:
Автор: MEJIOMAH
Источник [7]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/data-mining/351780
Ссылки в тексте:
[1] charles: https://www.charlesproxy.com/
[2] apktool: https://ibotpeaches.github.io/Apktool/install/
[3] "штука для подписи приложений": https://github.com/MEJIOMAH17/sberbank-api/blob/master/reverse/sign.jar
[4] MITM: https://ru.wikipedia.org/wiki/%D0%90%D1%82%D0%B0%D0%BA%D0%B0_%D0%BF%D0%BE%D1%81%D1%80%D0%B5%D0%B4%D0%BD%D0%B8%D0%BA%D0%B0
[5] https://chls.pro/ssl: https://chls.pro/ssl
[6] jsessionid: https://javarevisited.blogspot.com/2012/08/what-is-jsessionid-in-j2ee-web.html
[7] Источник: https://habr.com/ru/post/495682/?utm_source=habrahabr&utm_medium=rss&utm_campaign=495682
Нажмите здесь для печати.