博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
20145307陈俊达_安卓逆向分析_APKtools分析smail
阅读量:5022 次
发布时间:2019-06-12

本文共 2455 字,大约阅读时间需要 8 分钟。

20145307陈俊达_安卓逆向分析_APKtools分析smail

引言

真刺激呢!到了第二篇博客了,难度开始加大,之前是简单的dex2jar和有图形界面的jd-gui,现在来隆重介绍强大的反汇编工具apktool,这次开始将使用汇编的知识了

直接开始

创建一个安卓程序,emptyactivity就行,主java代码和xml布局代码如下:

public class MainActivity extends Activity {        private final String ACCOUNT="jclemo";      private final String PASSWORD="123456";      private EditText etAccount, etPassword;      private Button btnLogin;        @Override      protected void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.activity_main);            etAccount=(EditText)findViewById(R.id.et_account);            etPassword=(EditText)findViewById(R.id.et_password);            btnLogin=(Button)findViewById(R.id.btn_login);            btnLogin.setOnClickListener(new View.OnClickListener() {              @Override              public void onClick(View v) {                  if(isOK(etAccount.getText().toString(), etPassword.getText().toString())){                      Toast.makeText(MainActivity.this, "登录成功", Toast.LENGTH_SHORT).show();                  }else{                      Toast.makeText(MainActivity.this, "登录失败", Toast.LENGTH_SHORT).show();                  }                }          });      }        private boolean isOK(String account, String password){          if(account.equals(ACCOUNT) && password.equals(PASSWORD))              return true;          else              return false;      }    }

xml布局

签名运行:

877272-20170611114224543-240961374.png

之后下载apktool,我是在cdsn下载的,要收费,我就不放链接了,大家有免费的可以自己去下载试试看。

cmd进入解压apktool的目录,输入apktool d xxx.apk,回车进入反汇编,这样就会在当前文件夹下生成一个smail文件。

877272-20170611114240325-1008644456.png

用visual code打开mainactivity.smail,当然你用记事本打开也行,打开后发现这是个啥?仔细一看应该是汇编语言,这时候怕是要用到之前学习的汇编语言了。

877272-20170611114307012-862221210.png

但这个是基于dalvik虚拟机的汇编文件,安卓SDK 4.4就开始使用ART(ANDROID run time)环境了,开始抛弃Dalvik虚拟机了,不过没关系,我们照样用

开始修改smail语句,之后在回改成.apk

我们想要实现的是不管输入什么id和pwd都能登陆,那么我们先看看汇编语言吧。

877272-20170611114323715-276078295.png

a函数为原来的isOK(字符,字符)函数,用来登录,那我们就要攻击他啊!

if-eqz =0,寄存器v0等于0的时候,跳转!我们可以修改返回值的t/f对错来进行破解

877272-20170611114342840-458485499.png

修改返回值 让他至返回0x1,也就是true!

877272-20170611114354809-849651028.png

行了,重新打包把,变回.apk,cmd,cd到apktool.jar当前的位置,输入apktool b 刚刚反编译生成文件夹的路径,在dist文件夹下找到apk

这里注意,反汇编会破坏签名,推荐auto-sign来签名使用,推荐下载地址 http://download.csdn.net/detail/qq_18870023/9547292

回到安卓studio,启动安卓模拟器,输入.apk验证!

877272-20170611114411215-196545457.png

nice!

总结,下次博客放大招,介绍最刺激的Xposed神器!我手机里下载了xposed后阻止运行加绿色守护双xposed架构待机一天一晚并不是问题!

转载于:https://www.cnblogs.com/Jclemo/p/6984709.html

你可能感兴趣的文章
jva基础网络编程
查看>>
js 正计时和倒计时
查看>>
复合数据类型,英文词频统计
查看>>
you-get帮助使用手册
查看>>
nyoj756_重建二叉树_先序遍历
查看>>
sin()函数的实现
查看>>
图像切割之(一)概述
查看>>
JAVA修饰符类型(public,protected,private,friendly)
查看>>
flex利用webservice上传照片
查看>>
IOS开发之Bug--使用KVC的易错情况
查看>>
python list和tuple
查看>>
基础薄弱的反思
查看>>
ORACLE增删改查以及case when的基本用法
查看>>
[转]oracle10客户端PL/SQL Developer如何连接远程服务器上的oracle数据库
查看>>
HTML5 表单元素和属性
查看>>
SDUTOJ 2498 数据结构实验之图论十一:AOE网上的关键路径
查看>>
使用SpringSocial开发QQ登录
查看>>
好玩的游戏
查看>>
2.6. Statistical Models, Supervised Learning and Function Approximation
查看>>
代码说明call和apply方法的区别 (咱们这方面讲解的少,这样的题有变式,需要举例讲解一下)...
查看>>