本文主要是介绍第一次尝试使用AndroidKiller反编译apk,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
我用Android Studio做了一个简单的Demo,就是单独的一个登陆界面,设置了固定的账号密码,如果输入的账号密码如设置的值一致就进行页面跳转。
接下来将它打包apk拉进Android Killer(简称AK)中去
这段代码我们也不难理解,一开始声明的两个参数“name”和“pass”应该就是账号和密码的输入框,分别用p1和p2表示。
If-eqz是smali的语法,判断前后两个操作数是否相等,相等则只需冒号后面的代码,不想等则继续往下执行。
cond_0应该就是登陆失败了,我们可以找一下。
既然源码都完完全全的暴露在我们面前了,正确的账号密码我们也知道了,但这不是我们想要的。接下来我们对这些代码进行修改,在修改之前先理一下思路,代码执行到cond_0就会登录失败,那我们不让它执行到cond_0不就可以了吗?代码有两个地方会跳转至登录失败,一个是判断用户名,另一个是判断密码。
思路一:将if-eqz改为if-nez,if-nez与前者相对,当两个比较的数不相等就往下执行,这样就算输入错误的账号密码,代码也会正常往下执行。
思路二:直接将if-eqz语句删除,这样代码就是从上往下按顺序执行了。
思路三:使用goto语句,goto又被称为“无条件转移语句”,可以直接跳转至指定位置。这样一来,我们就可以在登录按钮点击事件执行的时候就直接goto到登录成功。
在这里以思路一为例,编写完成之后记得保存,然后进行编译
编译完成后安装到手机上测试一下,输入错误的账号密码
登录成功。
这篇关于第一次尝试使用AndroidKiller反编译apk的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!