记录黑客技术中优秀的内容, 传播黑客文化,分享黑客技术精华

初识Frida–Android逆向之Java层hook (一)

2018-06-12 18:45

0x00 文中用到的工具

  • Frida
  • jadx-gui      一个强大的android反编译工具
  • genymotion模拟器
  • Python2.7以及frida-python库
  • radare2 反汇编器
  • pycharm

0x01 hook示例的安装与分析

Frida官网给我们了一个ctf的示例,就以此为例子,开始学习frida在android逆向的使用。

rps.apk  下载地址查看原帖(点击左下角阅读原文查看)

安装

使用genymotion等类似android模拟器安装好打开,发现这是一个石头剪刀布的游戏应用,简单的玩了一下,没什么特别的,直接分析代码吧,看看到底想干什么。

源代码分析

使用jadx-gui反编译,发现app没有加壳和混淆,当然一来就加壳和混淆的话对我们就太不友好了,接下分析就简单了,直接看java代码。当然也可以使用androidkiller,jeb等其他强大的反编译工具。

在MainActivity中找到OnCreate()方法,可以看到只是简单的声明了button控件以及对应的监听器。

protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);
     this.P = (Button) findViewById(R.id.button);
     this.S = (Button) findViewById(R.id.button3);
     this.r = (Button) findViewById(R.id.buttonR);
     this.P.setOnClickListener(this);
     this.r.setOnClickListener(this);
     this.S.setOnClickListener(this);
     this.flag = 0;
 }

继续查看button的onclick方法,可以看出cpu是通过随机数组出的,其判断输赢的方法在 this.showMessageTask 中。

public void onClick(View v) {
     if (this.flag != 1) {
         this.flag = 1;
         ((TextView) findViewById(R.id.textView3)).setText("");
         TextView tv = (TextView) findViewById(R.id.textView);
         TextView tv2 = (TextView) findViewById(R.id.textView2);
         this.m = 0;
         this.n = new Random().nextInt(3);  //随机数0,1,2
         tv2.setText(new String[]{"CPU: Paper", "CPU: Rock", "CPU: Scissors"}[this.n]); //随机出石头,剪刀,布
         if (v == this.P) {
             tv.setText("YOU: Paper");
             this.m = 0;
         }
         if (v == this.r) {
             tv.setText("YOU: Rock");
             this.m = 1;
         }
         if (v == this.S) {
             tv.setText("YOU: Scissors");
             this.m = 2;
         }
         this.handler.postDelayed(this.showMessageTask, 1000);//输赢判断方法
     }
 }

跟进分析showMessageTask,可以看到如果赢了mainActivity.cnt会+1,但是一旦输了cnt就会置0,而获取flag的要求是我们得获胜1000次,……

知识来源: www.mottoin.com/112148.html

阅读:60826 | 评论:0 | 标签:技术控 Android

想收藏或者和大家分享这篇好文章→复制链接地址

“初识Frida–Android逆向之Java层hook (一)”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

关注公众号hackdig,学习最新黑客技术

推广

工具

标签云