记录某个软件刷票的流程

昨天朋友公司新开发的APP需要冲下载量,给每个员工要求了一定数量的要求,否则年终奖堪忧

应用商店安装APP后,打开fiddler,修改手机WIFI设置,完成手机抓包的提前设置

按照要求点击对应的链接,分析数据,找到最可能的请求

分析POST的数据,发现主要上传了一个人工输入,用来确认是谁传播的分享码,还有硬件信息,以及一个checkcode。

分析checkcode的位数,推测应该为简单的MD5加密,那只需要找到对应的算法即可

上官网,下载对应的APK文件,尝试反编译APK文件,然而使用了几个工具都失败了。

由于我不需要回编译APK文件,因此将文件解压缩,提取出dex文件,反编译成smali文件后,找到checkcode

 

看了几分钟代码之后,突然反应过来不需要这么复杂,然后直接将dex转为jar文件,直接打开看JAVA代码

 

可以看出checkcode是在特定字符串前后加上某字符串计算的MD5,而该信息由getDeviceId函数获得,进入函数分析代码,结合实际报文,第一次就计算出了和报文一样的checkcode

 

至此,就只剩实际发请求验证了

 

构造整个HTTP报文,用socket直接发出去,解析返回的数据

 

该APP的分享统计逆向完成

 

1.在实际刷之前,问了一下朋友,他们用人工来防作弊,因此就此作罢,因此我没有作弊!!!!!!!!!

2.代码混淆很重要,APK加固很重要

 

posted on 2017-12-12 14:32  tang_god  阅读(761)  评论(0编辑  收藏  举报

导航