|
APK 是 乐视的5.3.1版本。
论坛都开源过算法了,不过本人是菜鸟,就拿这个来练手 ,感觉这个对于我们这种小白很有帮助,就来分享下我的反汇编过程。
对象:乐视视频5.3.1
工具: AntiDroid V1.4.3 AndroidKiller_v1.3.1
1.我们线把抓到的数据备份一下,URL:http://dynamic.user.app.m.letv.com/android/dynamic.php?mod=passport&ctl=index&act=newLogin&pcode=010110000&version=5.3.1
Postdata: sign=baf77331a2ac1a4a8fe1b16e173fdbfa®istService=mapp&loginname=13800138000&plat=mobile_tv&devid=lhvp93f19tjn97j7bvrhhz3nn1n9fhxz&password=yuledazhong&profile=1
分析Postdata里面,sign明显是一个MD5加密.
然后我们来找到关键字眼。比如 sign registService loginname devid password 这些都是我们能用到的关键字眼(关键字眼能帮助我们快速锁定加密位置)
2.首先我们用AntiDroid V1.4.3 提取APK的JAR包。结果发现并不顺利。
这里如果是顺利提取的话是不会提示一大堆类似这样的错误信息的。如果出现这样的话,那就说明AntiDroid V1.4.3不能用了,我们再用AndroidKiller_v1.3.1来看看能不能成功反汇编
3.用AndroidKiller_v1.3.1进行反汇编 提示成功 没报什么错误信息,表示已经顺利完成这一步了,然后点击工程入口,点击代码区那个java小图标查看java代码。
4.然后我们来搜索关键字眼,从第一个步骤中 我们能找到几个可以用的 : sign registService loginname devid password
搜sign的时候 我们发现包含这个字眼的地方有很多。这样不利于我们锁定加密位置。
然后我们接着搜,当我们搜到 loginname 的时候,发现包含这个包含这个字眼的只有4个,我们需要找的是SIGN 的算法,那么我们就看这4个里面有没有关联我们需要sign信息。
5.当我们查看到UserCenterApi 这个类的的时候,我们能找到和SIGN的一些信息。
这里可以看到,sign的值等于 LetvTools.generateLoginSignKey(paramString1, paramString2)
我的理解是 LetvTools.generateLoginSignKey(paramString1, paramString2)是一个子程序,然后传入两个参数(paramString1, paramString2)
paramString1是账号 paramString2是密码
调用这个子程序返回的值就是sign。(那么进入这个子程序就能看到计算sign值的过程了。)
6.点击LetvTools.进入这个类 然后寻找generateLoginSignKey这个子程序。
到这里我们就能确定 sign的值等于 取MD5(VersionName(版本号)+paramString1(帐号)+paramString2(密码)+DEVICEID(设备号)+密钥(e3F5gIfT3zj43MAc3F))
这样就解出来了,过程走完一次后觉得挺容易的。
还是和我一样小白的和我一起研究别的APK,方便交流。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
评分
-
查看全部评分
|