• 爬虫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

  • 相关阅读:
    Centos命令参数自动补全
    使用pigz快速压缩TB级别文件
    yum使用http代理,wget使用http代理
    "Non Zero Exit Status” R 3.0.1 'XML' and 'RCurl' " in bioconductor while installing packages
    centos 6.5 编译 segemehl 出错的解决方法
    centos下raid详解
    CentOS6.5环境安装VMware虚拟机----解决启动虚拟机时could not open /dev/vmmon: No such file or directory的问题
    CentOS 6.5升级Firefox浏览器
    EditPlus正则表达式替换字符串详解
    makefile完毕,编译链接通过
  • 原文地址:https://www.cnblogs.com/qieyu/p/10844480.html
Copyright © 2020-2023  润新知