欢迎转发,请勿抄袭
APK是Android操作系统使用的一种应用程序包文件格式,用于分发和安装移动应用及中间件。APK 文件基于 ZIP 文件格式,它与JAR文件的构造方式相似。是使用java开发的。
那么,我们学学如何逆向破解一个自己写的程序程序。使用Android studio 编写,核心代码:
public void logina(View v){
EditText userinfo = (EditText) findViewById(R.id.userinfo);
EditText passinfo= (EditText) findViewById(R.id.passinfo);
Random random = new Random();
if(userinfo.getText().toString().equals(random.nextInt()) && passinfo.getText().toString().equals(random.nextInt())){
TextView see = (TextView) findViewById(R.id.textView4);
see.setText("欢迎管理员!");
}else {
Toast.makeText(this,"密码错误!",Toast.LENGTH_SHORT).show();
}
}
代码解读:按钮点击,触发logina,获取两个id分别为userinfo和passinfo的值,判断两个值是否与随机值一样匹配,匹配上了。标签显示欢迎管理员。否则密码错误!这是一个本地验证,与网络无关(捉包请看之前推文)。
编译好,先运行:
正常情况一般都是密码错误,除非运气好,能猜中。
一般拿到手,只有一个apk文件,需要自己从apk里面获取jar文件,才能进行解读。步骤:
1、使用解压工具解压apk。得到classes等相关文件
2、使用d2j-dex2jar,将dex文件转成jar
linux下执行d2j-dex2jar classes2.dex 得到classes2-dex2jar.jar文件
win下也有该工具,需要安装,用法一致,
3、使用JD-GUI打开classes2-dex2jar.jar工具。
得到以下代码:
还原度很高了。基本逻辑思路已经呈现出来,根据代码分析,我们只要修改判断的条件。在if中有两次判断,因此需要修改两个判断条件。可以编写工具修改dex文件,再使用apktool等工具打包,签名。但是apktool极易报错,本教程使用了其他工具。
NP管理器,它与MT管理器相似,是一个apk的程序。具体操作,选中查看
得到apk文件结构:
在这里显示有classes.dex和classes2.dex文件。点击classes2文件
找到MainActivity文件
点进去后看到smali语法的代码
点击右上角转成java也可以看apk的java代码
返回到smali文件,修改代码
两处判断条件,看不懂的话,请看下面语法:
"if-eq vA, vB, :cond_**" 如果vA等于vB则跳转到:cond_**
"if-ne vA, vB, :cond_**" 如果vA不等于vB则跳转到:cond_**
"if-lt vA, vB, :cond_**" 如果vA小于vB则跳转到:cond_**
"if-ge vA, vB, :cond_**" 如果vA大于等于vB则跳转到:cond_**
"if-gt vA, vB, :cond_**" 如果vA大于vB则跳转到:cond_**
"if-le vA, vB, :cond_**" 如果vA小于等于vB则跳转到:cond_**
"if-eqz vA, :cond_**" 如果vA等于0则跳转到:cond_**
"if-nez vA, :cond_**" 如果vA不等于0则跳转到:cond_**
"if-ltz vA, :cond_**" 如果vA小于0则跳转到:cond_**
"if-gez vA, :cond_**" 如果vA大于等于0则跳转到:cond_**
"if-gtz vA, :cond_**" 如果vA大于0则跳转到:cond_**
"if-lez vA, :cond_**" 如果vA小于等于0则跳转到:cond_**
apk的代码,是if-eqz,判断是否等于0,进行执行后面的代码。将if-eqz改成if-nez。保存并编译并退出(返回的时候自动提示)
等待编译:
得到一个tmp的文件名,修改成apk,安装测试
apk已经显示管理员了。
涉及部分工具,公众号回复“apk逆向”获取下载
文章声明:该工具、教程仅供学习参考,请勿非法使用。否则与作者无关!
扫码关注我们
本文始发于微信公众号(yudays实验室):走进apk逆向
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论