爬虫app信息抓取之apk反编译抓取
之前也抓过一些app,数据都比较好取,也没有研究的太深,毕竟还有android 模拟器+ appium 的方法。直到遇见了一款app ,具体名字就不说了,它安装在模拟器上竟然打不开 !!第一次遇见上网查了许久 ,换了好几个模拟器都不行,最后猜测是apk里设置了检测模拟器的机制(这里没有再往下研究有可能是设置问题 等等,下次有时间在研究这一方面看到底模拟器与真机的区别)。
软件用手机代理抓包发送request请求时,发现请求头中有个特殊的参配,每次请求都有变化,猜测是app中的一个加密算法 ,有可能在apk中找到。所以本次抓取思路:
1.将apk 反编译 成java 文件
2.从java 文件中找到生成字段的代码,将其修改为可读的java程序(java好长时间没用过,还好大部分都还记得)
3.将java代码 改为python 代码(本来想从网上找找有没有python 执行java的方法 但安装完发现麻烦是一方面,主要还是不太好用)
4.尝试模拟请求获取数据
具体过程如下:
首先,抓包工具使用的是Burp Suite , 先使用代理抓取手机端的具体请求--->查看header --->使用BurpSuite 工具中的Repeat--->在raw 上修改参数,删除参数--->得到必需字段 为Access_tk (Burp Suite 的使用安装下载自行百度)
之后,开始反编译apk.反编译工具在网上有两种,一种是Android Killer 这是一个集成好的反编译工具直接安装即可使用 使用链接 https://www.cnblogs.com/common1140/p/5198460.html 适用于 简单的app ,如果在apk里加了防止反编译的化就不太好用,但它的搜索很好用,可以直接寻找文件中的字段,通过它 我们可以找到我们点击的页面 从而找到响应的方法名
第二种就是网上常见的反编译思路 :
1、android-apktool 主要是进行反编译的
2、dex2jar-0.0.9.15 将反编译后的classes.dex文件转化为jar
3、jd-gui-0.3.6.windows 对第2步获得的jar,进行查看
具体安装工程参照下面的作者https://blog.csdn.net/lmj623565791/article/details/23564065 (注:不需要在反编译回去)
剩下的就是在文件夹中寻找了 最后在一个util包中 找到一个headers.java的文件 ,文件中刚好有生成的规则,具体规则就不放了 ,放一张规则中使用的md5加密算法。

最后完善代码 ,修改为python 。 可以成功获取数据。
注意:
1. 在查找文件中,可以通过名字查找。像有一些问价你就可以逃过去不用在看了,而且查找时要有目标,优先查看文件带header,http,request,response 的文件这样效率会很快
2. 说个scrapy Request 的坑,使用Request 会自动修改headers中参数名的大小写,这个坑使我一度以为我缺了什么参数 导致请求不成功,其实就是因为一个字母大写服务器端就不认了。
最后这是本人原创 要转载请附上原始链接 ,有别的想法欢迎留言一起讨论。
Android Killer
爬虫app信息抓取之apk反编译抓取的更多相关文章
- 实践APP安全性检测(一):APK反编译
1.概述 APP安全性一般可以从以下几方面进行考量: 以及其他一些杂项(或者通用并不局限于APP的安全项): 本文讨论反编译问题. 2.APK反编译 安卓开发的APP,如果不做任何处理是很容易被反编译 ...
- Android apk反编译基础(apktoos)图文教程
本文主要介绍了Android apk反编译基础,使用的工具是apktoos,我们将用图文的方式说明apktoos工具的使用方式,你可以参考这个方法反编译其它APK试试看了 很久有写过一个广工图书馆主页 ...
- APK反编译之一:基础知识—APK、Dalvik字节码和smali文件
refs: APK反编译之一:基础知识http://blog.csdn.net/lpohvbe/article/details/7981386 APK反编译之二:工具介绍http://blog.csd ...
- APK反编译之一:基础知识
作者:lpohvbe | http://blog.csdn.net/lpohvbe/article/details/7981386 这部分涉及的内容比较多,我会尽量从最基础开始说起,但需要读者一定的a ...
- APK Multi-Tool强大的APK反编译工具终极教程
一.APK Multi-Tool介绍 APK Multi-Tool 是APK Manager的升级版,是一个强大的APK反编译工具,集多种功能于一身,是居家必备.做ROM必选的工具! 这是 ...
- 【Android 应用开发】 Android APK 反编译 混淆 反编译后重编译
反编译工具 : 总结了一下 linux, windows, mac 上的版本, 一起放到 CSDN 上下载; -- CSDN 下载地址 : http://download.csdn.net/detai ...
- Android APK反编译(一)
apk是安卓工程打包的最终形式,将apk安装到手机或者模拟器上就可以使用APP.反编译apk则是将该安卓工程的源码.资源文件等内容破解出来进行分析. 一.APK反编译基本原理 1.APK分析 apk文 ...
- Android实践--apk反编译
版权声明:本文为博主原创文章.转载请注明出处. https://blog.csdn.net/ysjian_pingcx/article/details/25468867 Android apk反编译一 ...
- Android: apk反编译 及 AS代码混淆防反编译
一.工具下载: 1.apktool(资源文件获取,如提取出图片文件和布局文件) 反编译apk:apktool d file.apk –o path 回编译apk:apktool b path –o f ...
随机推荐
- Fiddler 学习
Little Skill Fiddler 官网: https://www.telerik.com/fiddler 来自 https://www.cnblogs.com/zhaoyanjun/p/706 ...
- pycharm 整段缩进
转自 https://blog.csdn.net/zoulonglong/article/details/79869787 在使用pycharm时,经常会需要多行代码同时缩进.左移,pycharm提供 ...
- TCP协议深度刨析
这篇文章主要是详细说明TCP的拥塞控制,因为它对于我们理解整个TCP/IP协议栈非常重要,但我个人能力有限,其中引用了很多网上其他博主的文章,在下文引用处都有说明,主要是让整篇文章能够连贯,不至于让所 ...
- 如何为github已有仓库添加协议。
在github创建开源项目的时候,github会引导开发者添加一个开源协议,直接照着操作即可.但是如果一开始没有添加开源协议,后面要怎么添加呢? 百度无果.多方打听.总结如下步骤. 1.首先,进入你的 ...
- 洛谷 P2147 [SDOI2008]洞穴勘测
以下这个做法应该是叫线段树分治... 根据修改操作预处理出每条边存在的时间区间[l,r](以操作序号为时间),然后把所有形式化后的修改挂到线段树节点上. 处理完修改后,dfs一遍线段树,进入某个节点时 ...
- Voting CodeForces - 749C
有点意思的题 Voting CodeForces - 749C 题意:有n个人投票,每次按照第1个人~第n个人的顺序发言,如果到某个人发言时他已经被禁止发言就跳过,每个人发言时可以禁止另一个人发言或什 ...
- 7.1 Java集合概述
List 有序.重复的集合 Set 无序.不可重复的集合 Map 具有映射关系的集合 jdk1.5之后.Java增加了Queue体系集合,代表一种队列集合实现
- Apache Kylin Cube 的构建过程
不多说,直接上干货! 1. Cube的物理模型 Cube物理模型 如上图所示,一个常用的3维立方体,包含:时间.地点.产品.假如data cell 中存放的是产量,则我们可以根据时间.地点.产品来确定 ...
- mvc不登录的情况下无法跳转至其他页面--解决方法之一
在每个控制器里,加以下方法 /// <summary> /// 在调用视图之前拦截非法用户 /// </summary> /// <param name="fi ...
- Python behave in BDD
BDD概念 全称 Behavior-driven development 中文 行为驱动开发 概念 是敏捷软件开发技术的一种,鼓励各方人员在一个软件项目里交流合作,包括开发人员.测试人员和非技术人员或 ...