西综题库app
此分析老鸟绕过,没什么技术含量。菜鸟今年准备考研,为了刷题,今天下了一个西综题库的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里找到这个name的id为0x7f060087,十进制为2131099783
那么在smali程序里调用它的时候会出现0x7f060087这个字符串。
搜索0x7f060087,里面重要的类和方法都有一点混淆,什么abcd一大堆,但是程序逻辑还是很清楚的。
http://i4.buimg.com/544629/c62b8a255eed0d12.png
简单点开看看,z.smali的java代码,a方法里调用
http://i4.buimg.com/544629/20f4ce3919b8e392.png
如果MyApplication.d.c()为true,直接跳出,这个方法应该是判断是否激活的,这个app之前有一个试用的程序逻辑,试用后会弹出来是否激活的对话框,下面的因为有个<3,所以应该和试用有关。
不放心的话,再看看下一个q.smali,java如下,很清楚了,MyApplication.d.c()这个方法就是判断app是否激活的关键方法。
http://i4.buimg.com/544629/79972334cd4fe9dd.png
于是,修改只需要在这个跳转就可以啦,直接改h()方法的smali里的return就可以了,就是无论如何都returntrue就可以了,有兴趣可以去看看这个判断
的myapplication的函数的逻辑,不过我们的修改到此为止了,把goto:goto_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]