前言

《大麦网》都知道吧,就是那个被网友声称“大麦网你卖啥了?”票务平台。近期有听到朋友说《大麦网》的票很难抢,基本上都是说:“哎哟喂,被挤爆啦,请稍后重试!”,也不知道《大麦网》到底有没有票!!!

言归正传,准备做个《大麦网》抢票的软件,就是想证明下《大麦网》到底有没有票(推广公众号)!!,做之前也从百度、Github里面搜索过, Github里面有几个好用的Python抢票脚本,有兴趣的可以去里面搜索。此次做的抢票小工具是基于《大麦网》移动端接口的,直达《大麦网》服务器,没有网页元素,速度肯定棒。

这个系列的文章主要是偏教程方面,学习一些Hook、抓包、反编译的知识。再者《大麦网》已经被阿里给收了,所以这是个阿里系的App,看完这个系统的文章对某宝、某猪、某猫App的逆向很有帮助。说了这么多,先列出逆向时用到的工具软件,以及主要用途:

Frida

Xposed

Apktool

Selenium

Root后的手机一台

还有一些逆向过程中的难点:

Charles抓包

生成Api签名

自动过人机校验

大纲

为了思路更加清晰,为大家列出这个系列后面的一些文章相关内容:

基本工具使用、介绍

阿里网络库逆向分析、Charles抓包

MTOP签名参数分析、绕路

人机检验分析、绕路

Frida基本使用

使用Frida的目地是为了hook应用关键方法,找到App的突破口如:日志开关、ssl开关等关键方法或变量。Frida的安装方式也非常简单,只需要将frida-server上传到手机里面使用shell运行起来,然后就可以执行一些hook操作,篇幅有限就不一一讲解了,只简单介绍一下本系列文章中使用的一些命令,有兴趣到查看具体使用文档。

将frida-server上传到手机目录:

$ adb root # might be required

$ adb push frida-server /data/local/tmp/

$ adb shell "chmod 755 /data/local/tmp/frida-server"

$ adb shell "/data/local/tmp/frida-server &"

查看系统运行进程:

$ frida-ps -U

打开需要hook的程序,并传入hook脚本:

$ frida -U -l src/index.js -f cn.damai

这几条命令下来,差不多就够了,hook相关的点都在src/index.js里面,后面再来讲解需要hook的关键点。

Xposed基本使用

使用Xposed的目的是为是数据签名的,接过阿里系Api的都知道会有签名这个步骤的。签名算法就不去倒腾了,技术有限..., 但是可以绕过的麻,退而求其次。Xposed只需要会创建Module了了解几个核心Api就可以啦。

引入Xposed依赖:

dependencies {

compile fileTree(dir: 'libs', include: ['*.jar'])

provided 'de.robv.android.xposed:api:82'

provided 'de.robv.android.xposed:api:82:sources'

}

声明你的模块信息:

android:name="xposedmodule"

android:value="true" />

android:name="xposeddescription"

android:value="大麦网签名" />

android:name="xposedminversion"

android:value="53" />

实现模块入口:

package com.xposed;

import de.robv.android.xposed.*;

import de.robv.android.xposed.callbacks.*;

public class HookToast implements IXposedHookLoadPackage

{

@Override

public void handleLoadPackage(XC_LoadPackage.LoadPackageParam loadPackageParam) throws Throwable

{

....

}

}

Selenium基本使用

使用Selenium主要是过人机校验,Api调太多后端程序会检测出是机器在访问Api,所以为了限制保护系统《大麦网》会弹出一个带滑块的网页来辨别用户身份,如果不处理就会限制访问Api基本调用不了Api除非限制时间过了,才能正常访问,引入Selenium就是模拟人为行为滑动完成人机校验,告诉后端不是机器人在抢票。

添加Selenium依赖:

org.seleniumhq.selenium

selenium-java

3.141.59

设置WebDriver:

ChromeOptions chromeOptions = new ChromeOptions();

chromeOptions.setExperimentalOption("excludeSwitches", Arrays.asList("enable-automation"));

chromeOptions.addArguments("--user-agent=" + String.format("Mozilla/5.0 App"));

chromeOptions.addArguments("--no-sandbox");

chromeOptions.addArguments("--lang=zh-CN");

// chromeOptions.setHeadless(true);

webDriver = new ChromeDriver(chromeOptions) ;//new ChromeDriver(chromeOptions);

打开滑动网页:

webDriver.get(httpUrl.toString());

new WebDriverWait(webDriver, 2).until(ExpectedConditions.textToBe(

By.className("nc-lang-cnt"),

"请按住滑块,拖动到最右边"

));

解锁地址是动态的,后续再来说明地址的使用和操作。

总结

基本上使用Frida、Selenium、Xposed就能解决抓包、人机校验、生成签名这几个关键问题了,后续再来讲解具体的操作流程,以及逆向分析关键代码。

最后欢迎大家关注我的公众号,获取最新《大麦网抢票工具》抢票工具的进展。

免责声明:

本文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请读者自负

《架构文摘》每天一篇架构领域重磅好文,涉及一线互联网公司应用架构(高可用、高性 能、高稳定)、大数据、机器学习等各个热门领域。

用python在大麦网抢票_大麦网抢票工具系列(一)相关推荐

  1. 手把手教你用python抢票_又没抢到票?手把手教你用python抢票回家过年…

    原标题:又没抢到票?手把手教你用python抢票回家过年- 最近朋友圈刷屏:我又没抢到票!哭! 憋急,教程在此,有人愿意尝试吗? 先看看如何快速查看剩余火车票? 作者 protream 原文:http ...

  2. python爬虫和数据分析电脑推荐_大数据分析必备的5款Python爬虫库

    在数据科学或人工智能领域,除了算法之外,最重要的应该是数据了.甚至可以说一个模型到最后决定其准确度的往往不是算法而是数据.在现实中,缺少足够的数据成了数据分析师获得优秀模型的主要阻碍.可喜的是,现在网 ...

  3. python自动化部署hadoop集群_大数据集群的自动化运维实现思路

    原标题:大数据集群的自动化运维实现思路 | 作者简介 王晓伟 知数堂<大数据实战就业>课程讲师 六年大数据相关工作经验 清华大学软件工程硕士 曾就职于网易.搜狗等互联网企业 从事大数据及数 ...

  4. python大数据就业方向_大数据专业未来的就业方向有哪些?[黑马程序员]

    目前大数据是一个十分热门的行业.一个行业的兴起必定会衍生出相对应的岗位.本篇文章给大家总结下学习大数据后未来可以就业的方向,给大家提供参考. 在数据驱动的未来,大数据人才市场势必会越来越大,而现在仅仅 ...

  5. python大数据好不好学_大数据好学吗?想转行大数据??

    作为一名IT从业者,同时也是一名教育工作者,我来回答一下这个问题. 首先,虽然大数据技术具有一定的难度,但是随着大数据技术体系的逐渐丰富和完善,大数据领域对于人才的需求类型也在不断趋于多元化,不同知识 ...

  6. python与大数据是什么_大数据和python有什么区别

    大数据(big data),IT行业术语,是指无法在一定时间范围内用常规软件工具进行捕捉.管理和处理的数据集合,是需要新处理模式才 能具有更强的决策力.洞察发现力和流程优化能力的海量.高增长率和多样化 ...

  7. python开发和大数据开发工程师_大数据开发工程师的岗位职责

    大数据开发工程师负责该领域的业务需求讨论,完成技术方案及数据开发.下面是学习啦小编整理的大数据开发工程师的岗位职责. 大数据开发工程师的岗位职责1 职责: 1.负责所分管团队的团队建设和日常管理工作; ...

  8. python大数据就业方向_大数据方向:就业主要从事哪些工作?

    你好. 一.大数据就业前景 大数据行业人才稀缺,人才需求量达100万+,随着人工智能.物联网.云计算的快速发展,大数据人才需求也急剧增加,未来还将不断扩大.而且大数据人才的薪资也是普遍较高的,2018 ...

  9. 大数据 就业 缺口_大数据人才缺口大!乌兰察布从政策激励等方面吸引人才

    授牌仪式 9月25日,记者从第八届内蒙古"草原英才"高层次人才合作交流会暨呼包鄂乌人才创新创业周乌兰察布分会场同步启动的2020年大数据产业发展与人才培养大会上获悉,乌兰察布市大数 ...

  10. 大数据治理工程师_大数据治理关键技术解析(转自EAWorld)

    在企业数据建设过程中,大数据治理受到越来越多的重视.从企业数据资产管理和提升数据质量,到自服务和智能化的数据应用,大数据治理的内容在不断地发展和完善,其落地实施的过程中会遇到各种各样的难题和挑战.本篇 ...

最新文章

  1. 林宙辰:实现机器学习科研从 0 到 1,没有什么比一个好的理论更加实用
  2. 3d旋转相册代码源码_实现可旋转的Reflection Probe(原创)
  3. 微软MVP社区夏日巡讲诚邀您的参与: 北京,上海,西宁,成都,西安
  4. 如何去掉 从网页上copy到word文档中之后 的背景颜色 (备忘)
  5. mysql 分析查询语句,MySQL教程之SQL语句分析查询优化
  6. android 获取monkey日志_安卓app测试之Monkey日志分析
  7. matplotlib 可视化 —— style sheets
  8. I00021 有负数项的数列之和
  9. 并发编程之多线程基础-Thread和Runnable的区别及联系(二)
  10. python网络编程 交互式游戏设计——吹牛(RemoteBet)(无封帧)
  11. java 农历公历转换_java 版本 农历 公历 转换
  12. IDEA社区版tomcat配置教程
  13. Android Studio 项目运行错误,弹出“Detected ADB对话框”
  14. NOI题解(1.1编程基础之输入输出)
  15. Ruby-学习之路1.1
  16. 连续词袋模型(Continous bag of words, CBOW)
  17. 漫画:设计模式六大原则(上)
  18. 比Siri更厉害的个人助理Viv 能否一统江湖?
  19. Plantuml类图用法
  20. linux 动态库文件stripped属性理解

热门文章

  1. php调京东联盟接口,使用京东联盟API获取自定义促销链接
  2. 网站推广优化教程100条(完整版)
  3. 【资源篇】在线下载B站视频(免安装)
  4. 青藏高原的气候类型及气候特征
  5. 计算机 模板 样式 母版,电脑PPT软件的母版怎么设置
  6. 安卓分屏神器_【实用工具】一款鲜为人知的电脑神器,内置300多…找了很久了!...
  7. Python 操作谷歌浏览器
  8. 谷歌浏览器如何使用访客模式 谷歌浏览器使用访客模式的方法
  9. 非确定有限自动机转换为确定有限自动机
  10. CSS day_14(6.29) Sass基本规则和语法、云服务器的购买和使用