前言

最近公司向抓取各个应用市场本公司三国杀的玩家评论的数据,通过一般的抓包可以抓取部分应用市场数据,部分应用市场抓取不到。于是在服务端不能解决的情况下,只能从客户端寻求突破,反编译应用市场apk,通过添加日志获取到请求评论的url。

准备工具

dex2jar,jd-gui,smali2java,apktool

操作步骤

第一步

在命令行执行apktool d xx.apk,可以获取反编译的文件

android app运行日志 apk日志_反编译

第二步

用解压工具打开apk文件获取classes.dex文件

android app运行日志 apk日志_反编译_02

第三不

使用dex2jar把classes.dex转化成jar文件,比较便捷的方式把dex2jar文件夹配置的环境变量里,然后执行d2j-dex2jar.bat classes.dex,就能生成classes.jar

android app运行日志 apk日志_jar_03

第四步
用jd-gui打开jar文件,查看源码

第五步
根据源码用文本编辑器查看想添加日志文件的smali文件,在对应的地方添加上日志的smali语句。

第六步
修改完成后,用apktool执行apktool b xx(需要反编译的文件夹)

第七部

第六步执行完成后会在该问价夹下生成两个文件,build是编译源码和资源生成的,dist中生成未签名的apk

android app运行日志 apk日志_应用市场_04

第八部
使用自己的keystore对生成的apk进行签名,执行jarsigner -verbose -keystore 自己的keystore文件 -signedjar 签名后的文件名称 未签名的文件 自己的keystore的alias别名,执行之后输入密码,进行打包,生成签名apk

最后一步
输出日志,查看效果

使用心得

1.smali2java工具可以直接解析apk,看源码,并能把源码全部拿出来。(理论上来说有很大的操作可能性)

2.修改smali文件是,可以先在一个测试的apk中写好相应的语句,反编译之后直接复制对用的smali代码到需要修改的地方。至于对smali语法很娴熟的,可以直接手写。