前言
最近公司向抓取各个应用市场本公司三国杀的玩家评论的数据,通过一般的抓包可以抓取部分应用市场数据,部分应用市场抓取不到。于是在服务端不能解决的情况下,只能从客户端寻求突破,反编译应用市场apk,通过添加日志获取到请求评论的url。
准备工具
dex2jar,jd-gui,smali2java,apktool
操作步骤
第一步
在命令行执行apktool d xx.apk,可以获取反编译的文件
第二步
用解压工具打开apk文件获取classes.dex文件
第三不
使用dex2jar把classes.dex转化成jar文件,比较便捷的方式把dex2jar文件夹配置的环境变量里,然后执行d2j-dex2jar.bat classes.dex,就能生成classes.jar
第四步
用jd-gui打开jar文件,查看源码
第五步
根据源码用文本编辑器查看想添加日志文件的smali文件,在对应的地方添加上日志的smali语句。
第六步
修改完成后,用apktool执行apktool b xx(需要反编译的文件夹)
第七部
第六步执行完成后会在该问价夹下生成两个文件,build是编译源码和资源生成的,dist中生成未签名的apk
第八部
使用自己的keystore对生成的apk进行签名,执行jarsigner -verbose -keystore 自己的keystore文件 -signedjar 签名后的文件名称 未签名的文件 自己的keystore的alias别名,执行之后输入密码,进行打包,生成签名apk
最后一步
输出日志,查看效果
使用心得
1.smali2java工具可以直接解析apk,看源码,并能把源码全部拿出来。(理论上来说有很大的操作可能性)
2.修改smali文件是,可以先在一个测试的apk中写好相应的语句,反编译之后直接复制对用的smali代码到需要修改的地方。至于对smali语法很娴熟的,可以直接手写。