IOS - игра по захвату данных, практика подделки

внешний интерфейс сервер iOS игра

введение

В последнее время игра хоп-хоп очень популярна во всем кругу друзей (Я) и друзей (Т).Вокруг много друзей, которые пробовали писать скрипты хоп-хоп на разных языках, а так как мне лень, я только пробую py-версию эксперимента со сценарием. , а затем изучил процесс прямой отправки оценок с помощью POST. В ходе этого процесса у меня возник большой интерес к захвату пакетов.

захват пакетов

Прежде всего, давайте поговорим о моей собственной ручке для захвата сумки, фронтальном осадном льве, поэтому используемый прокси-инструмент принадлежит Али.AnyProxy

Ключевые особенности включают в себя:

На основе Node.js открыты дополнительные возможности разработки, позволяющие настраивать логику обработки запросов.
Поддержка парсинга HTTPS
Предоставляет графический интерфейс для наблюдения за запросами

Вот краткое описание того, как использовать anyproxy для захвата https-пакетов.

1. npm install -g anyproxy
2. anyproxy-ca // 生成https ca证书
3. 手机下载生成的本地ca证书并添加信任(IOS需要使用Safari打开下载证书的地址)
4. anyproxy -i 启动AnyProxy并解析所有https的服务

Конкретные детали здесь не раскрываются, и Baidu может найти много информации. Затем, поскольку очень проблематично перезапускать AnyProxy каждый раз, когда он размещается на локальном прокси-сервере для захвата пакетов, и очень сложно убедиться, что он находится в той же локальной сети, что и компьютер, я развернул AnyProxy на сервере. Развертывание на сервере ничем не отличается от локального, это не что иное, как необходимость использовать pm2 для управления AnyProxy

pm2 start anyproxy -x -- -i [这里可以加上anyproxy其他的参数,比如端口相关]

Одна из проблем здесь заключается в том, что AnyProxy имеет веб-интерфейс для просмотра захваченных пакетов, но без какой-либо аутентификации, поэтому любой может войти в этот интерфейс, чтобы увидеть информацию о пакете, используя этот прокси, что очень небезопасно, поэтому, если он размещен на стороне сервера лучше заняться вторичной разработкой AnyProxy.

игра

Кратко опишите эту игру:
Автономная игра, вы можете получать доход в автономном режиме в зависимости от времени, проведенного в автономном режиме. (достаточно просто...)

Пакетный анализ

На самом деле анализировать особо нечего, потому что пакет, приносящий оффлайн доход, можно найти с первого взгляда, а так как это самостоятельная игра, то взаимодействий с сервером меньше, поэтому такой запрос можно найти на взглянуть мельком.

С первого взгляда видно, что это временная метка запроса, поэтому давайте проведем простой анализ: игра должна сравнить время сервера с локальным временем, а затем вычислить время оффлайна (конечно, изменение локального времени уже был использован. Автор учел это), значит ли это, что я могу подделать такую ​​временную метку для получения высокого дохода в автономном режиме!

поддельный запрос

Этот тип запроса относительно легко подделать, он не требует аутентификации и не содержит зашифрованных данных.Все, что нужно сделать, это подделать хост и переслать ложную временную метку.

поддельный хост

Самый простой способ:

1. vim /etc/hosts // 打开hosts文件
2. 在最后一行加入 服务器IP 指向域名

В это время, если вы заходите с сервераwww.hko.gov.hkЕсли это так, он будет сначала проанализирован на локальный.host, а затем перейти к инициированному серверомServer

Итак, в настоящее время я предпочитаю использовать узел для запуска одногоSimple Server, GETЗапрошенный адрес показан выше/cgi-bin/gts/time5a.prпростой сервер выглядит следующим образом

const server = require('server')
const { get } = server.router

server({ post: 80 }, {
  get('/cgi-bin/gts/time5a.pr', ctx => '0x191234567890')
})

Поленитесь тут, воспользуйтесь сторонней библиотекой, чтобы быстро сгенерироватьSimple Server, нет необходимости использовать http для создания сервера и напрямую использовать порт 80. Если порт 80 занят, вы можете рассмотреть возможность его использования в сочетании с Nginx.

достижение

Теперь, когда все готово, давайте посмотрим на конечный результат.

Это было успешно~ Это было успешно~
Доход в офлайне успешно зачислен, но есть верхний предел, вроде 6 часов, но он может быть неограниченным... неограниченным...

другие практики

Это просто очень простая практика, есть смелая идея, прежде чем делать эту практику. Прыгая через огонь, я обнаружил, что пароль в красном конверте стал необъяснимо популярен.В это время я думал о том, как извлечь данные пароля в красном конверте, а затем подделать его (улыбается ing...) Идея наверное такая

  • Захват интерфейса красного пакета пароля апплета через прокси (https)
  • Извлеките поля, которые необходимо преобразовать в речь
  • Подделать сообщение POST через интерфейс преобразования текста в речь

Ну... очевидно, я потерпел неудачу, иначе я бы спрятался за спину и разбогател... Целовать вас, ребята, не должно быть противозаконно, в конце концов, я схватил красные конверты~~ Но те, кому интересно, могут попробовать еще раз Попробуй, если сможешь поймать все красные конверты... этот доход все равно немного пугает...

Суммировать

В целом, это относительно простой процесс Esay, но вы находитесь в процессе размышлений и исследований, но также, давая мне переднюю часть осадного льва с одного аспекта, возбужденного вызова, оригинал - это подделка, захват такой ужасный Дело в том, что меры предосторожности в области сетевой безопасности требуют особого внимания к работе или от небольшой игры, такой как эта, в то время как задействованы средства, это не шутка.

Пожалуйста, дайте мне несколько советов!