发新帖

西综题库app

[复制链接]
11731 1
此分析老鸟绕过,没什么技术含量。
菜鸟今年准备考研,为了刷题,今天下了一个西综题库的app,嗯。。。打开提示,您需要激活专业版才能执行操作。。。普通的只能试做几十道题,
激活需要30人民币。。。作为一个稳定的穷人,我只好求助androidkiller,简单的分析一下,不难,下面跟大家分享一下,有考研的小伙伴也可以将就用下,感觉还不错。
首先,点内外科进去的时候会跳出:您需要激活专业版,是否激活?在点就会进入登陆界面,强制使用注册码激活,基本的分析就从这里入手

http://i4.buimg.com/544629/c3e63efdfd900a7c.png

如果激活过应该就不会跳出这个对话框了,那么判断一定在弹出对话框的代码附近。打开androidkiller,拖进去,反编译,很快,搜索“需要激活专业版”字符串,会在strings.xml
http://i4.buimg.com/544629/ead147f7f8b9a04b.png

name属性为active_message_do,表明这个字符串在public.xml里面声明为active_message_do
http://i4.buimg.com/544629/a0a4bd44df409061.png

public.xml里找到这个nameid0x7f060087,十进制为2131099783
那么在smali程序里调用它的时候会出现0x7f060087这个字符串。
搜索0x7f060087,里面重要的类和方法都有一点混淆,什么abcd一大堆,但是程序逻辑还是很清楚的。
http://i4.buimg.com/544629/c62b8a255eed0d12.png

简单点开看看,z.smalijava代码,a方法里调用

http://i4.buimg.com/544629/20f4ce3919b8e392.png

如果MyApplication.d.c()true,直接跳出,这个方法应该是判断是否激活的,这个app之前有一个试用的程序逻辑,试用后会弹出来是否激活的对话框,下面的因为有个<3,所以应该和试用有关。
不放心的话,再看看下一个q.smalijava如下,很清楚了,MyApplication.d.c()这个方法就是判断app是否激活的关键方法。

http://i4.buimg.com/544629/79972334cd4fe9dd.png
于是,修改只需要在这个跳转就可以啦,直接改h()方法的smali里的return就可以了,就是无论如何都return  true就可以了,有兴趣可以去看看这个判断
myapplication的函数的逻辑,不过我们的修改到此为止了,把gotogoto_0前面的的const/4 v0, 0x0,改为const/4 v0, 0x1,这一句定义就从fals
e
变成了true了。

http://i4.buimg.com/544629/1e113fee302d440a.png


http://i4.buimg.com/544629/1e113fee302d440a.png

简单说一下,下面的QuestionInfoActivity类,里面的弹出是试用答题结束弹出的,而SpeedInfoListActivity是一个快速模拟的activity弹出的
虽然很简单,省了30快也是挺不错的,附图一张
http://i4.buimg.com/544629/e811c726963d0422.png



举报 使用道具

回复

精彩评论1

adjclubyb    发表于 2016-9-7 13:06:35 | 显示全部楼层
知识就是财富!

举报 使用道具

回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表