记录第一次抓取安卓app的数据

我是一个刚刚入职的新人,刚进公司老板给我分配的任务是写脚本。作用是从其他网站上抓取数据,然后在我们的平台上显示出来,具体业务就不介绍了,主要目的就是从其他网站抓取数据。实现方式是使用Jsoup类。这里贴一个示例代码

Jsoup.connect(REGISTER_URL)
                .userAgent(USER_AGENT)
                .method(Connection.Method.GET)
                

看起来还是蛮简单的,一开始先去了解了一下HTTP协议,request请求和response响应(我在学校属于学渣,学习不认真的那种= =)。然后开始上手操作。
首先弄一个登陆的示例吧,先打开目标网站,找到登陆的地方,这里贴个示例
在这里插入图片描述然后打开抓包工具
在这里插入图片描述
(一开始我还是说打开网站的源代码,然后去找他那个按钮提交的url,o(╥﹏╥)o)

在这里插入图片描述软件的操作也挺简单的,可以自行百度一下。
然后,输入登陆信息以后,点击登陆,看抓包的数据。再自行在脚本里写上对应要发送的数据,头文件之类的。
这些都不是重点(好像写的有点多了)
有一些功能网站上没有,在app上有,这就需要去抓手机app的包,找到所需要的接口。
在这里插入图片描述这里贴个示例,我们会发现有一些参数经过了加密,我们就需要知道它的加密方式。这里我们可以先调个断点,修改请求里的数据,看那些数据是真正有用的数据(这里我一开想找sign的加密方式,找了半天找不到,后来经过前辈指点用了断点这个方法才知道sign这个参数随便设都没问题,同样可以知道其他参数是否必要)。
找完后发现password这个参数有用的(肯定的啦),然后我们就只有一个目标:找到password的加密方式。
在这里插入图片描述
我们用反编译软件把app反编译好
在这里插入图片描述这里直接双击jadx-gui.bat然后可以直接选择要反编译的app文件,反编译好后的项目结构
在这里插入图片描述
直接全局搜索password
在这里插入图片描述然后就要细心的挑选哪些可能是加密方式里面的
在这里插入图片描述
这里发现向JSONObject中插入password,点进去看一下
在这里插入图片描述
看其他的字段和前面请求里一模一样,然后我们就看一下aj.a和i.a是啥东西。
找到引用的包
在这里插入图片描述先看i.a
在这里插入图片描述发现还有个dX,找!
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
这里发下安一个SharedPreferences类,百度一下,是一个存储类。
大概明白i.a的意识了,大概率是取出用户输入的密码。
然后找ad.a
在这里插入图片描述这里发现直接就是用MD5算法加密了一下,然后还有个a.a处理了一下。找到a.a
在这里插入图片描述发现是他们自己写的一个算法,看不懂,没关系,直接复制到自己项目就好了。
这样password的加密方式就知道了,先用MD5加密一下,再用自己的算法处理一下,再重复一遍这个步骤。自己写个案例测试一下。
在这里插入图片描述OK~

猜你喜欢

转载自blog.csdn.net/qq_36963762/article/details/88528079