爬虫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 ...
随机推荐
- poj1850 Code【组合数学】By cellur925
题意: * 按照字典序的顺序从小写字母 a 开始按顺序给出序列 (序列中都为升序字符串)* a - 1* b - 2* ...* z - 26* ab - 27* ...* az - 51* bc - ...
- bzoj3343 教主的魔法【分块入门】By cellur925
题意:维护一个数列,给出维护区间加法,询问区间内大于等于某个值的元素个数. 算法:分块.因为本题第二问显然可以用二分的思想,但是这貌似并不符合区间可加性,线段树好像就不好用了呢.所以本蒟蒻学习了分块. ...
- MySql | 常用操作总结
创建数据库: CREATE DATABASE 数据库名; 删除数据库名: drop database <数据库名>; 选择数据库: use 数据库名; 创建数据表: CREATE TABL ...
- threading多线程模块
1 基本实现 Thread(target=函数名,args=(以元组形式传递的实参,要加",")) th = threading.Thread(target=run,args=(i ...
- Hdu 1358 Period (KMP 求最小循环节)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1358 题目描述: 给出一个字符串S,输出S的前缀能表达成Ak的所有情况,每种情况输出前缀的结束位置和 ...
- Hibernate通过实体对象对应数据库表信息
Hibernate通过实体对象对应数据库表信息,包括:数据库表名称.主键列名.非主键列名等. 获取对象映射缓存管理类: AbstractEntityPersister aep = (AbstractE ...
- [在读]javascript框架设计
司徒正美的书,内容我觉得不错,国内的书很少会讲这些.当然也有很多人吐槽它只贴代码没有解释,文笔不够优美啥啥的,我想说,不要在意这些细节,反正是值得买的一本.
- saltstack学习笔记--grains基本操作
查看当前已经定义的监控项: [root@master ~]# salt "192.168.75.135" grains.items 192.168.75.135: ---- ...
- (5)《Head First HTML与CSS》学习笔记---布局与定位
层叠与CSS的权重判断 1.要理解层叠,除了前面的内容外还差最后一个知识点.你已经知道如何使用多个样式表来更好地组织你的样式,或者支持不同类型的设备.不过实际上用户访问你的页面时还有另外一些样式表. ...
- 【HEVC帧间预测论文】P1.4 Motion Vectors Merging: Low Complexity Prediction Unit Decision
Motion Vectors Merging: Low Complexity Prediction Unit Decision Heuristic for the inter-Prediction o ...