爬虫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 ...
随机推荐
- Oracle数据库创建表空间及用户授权
/*分为四步 */ /*第1步:创建临时表空间 */ create temporary tablespace test_temp tempfile 'E:\app\Administrator\orad ...
- 害死人不偿命的(3n+1)猜想 (15)
#include <iostream> #include <algorithm> using namespace std; int main(){ int n; while ( ...
- python之sys.argv[]
sys.argv[]说白了就是一个从程序外部获取参数的桥梁,这个“外部”很关键.因为我们从外部取得的参数可以是多个,所以获得的是一个列表(list),也就是说sys.argv其实可以看作是一个列表,所 ...
- python中的栈
# @File: stack # 列表实现栈 class MyStack(object): def __init__(self): self.data = [] def push(self, item ...
- queue+模拟 Codeforces Round #304 (Div. 2) C. Soldier and Cards
题目传送门 /* 题意:两堆牌,每次拿出上面的牌做比较,大的一方收走两张牌,直到一方没有牌 queue容器:模拟上述过程,当次数达到最大值时判断为-1 */ #include <cstdio&g ...
- DP Codeforces Round #303 (Div. 2) C. Woodcutters
题目传送门 /* 题意:每棵树给出坐标和高度,可以往左右倒,也可以不倒 问最多能砍到多少棵树 DP:dp[i][0/1/2] 表示到了第i棵树时,它倒左或右或不动能倒多少棵树 分情况讨论,若符合就取最 ...
- 总结 - 常见的JavaScript兼容性问题
添加事件的方法 (元素, 绑定的事件类型, 事件触发的方法) addHandler: function (element, type, handler) { if (element.addEventL ...
- 开始bootstrap的学习
终于过完双十一,服务器顶住了压力,不知道为啥,突然的轻松,反而感觉有点无所适从,好久没写博客了,竟然发现还有人回我,很是开心,问题都是关于阿里云的,阿里云的吭确实多,其实关键在于,官方文档还是少,出了 ...
- Android自定义zxing扫描界面的实现
首先,我们需要导入zxing的jar文件,其次复制所需要的资源文件以及放入自己需要添加的资源文件,复制出源码的必要相关类文件.对布局文件进行一定的修改,再修改CaptureActivity与Viewf ...
- FPGA原型验证
为什么要做FPGA原型验证? FPGA原型验证可以在IC流片前对芯片功能和性能做出评估,同时,可以给软件设计人员提供验证平台.所有的设计,无论是SOC还是ASIC都需要被验证(功能和时序验证),以确保 ...