《入门级Android逆向与调试–与frida的第一次亲密接触》讲座

5月28日下午,由四川大学网络空间安全协会举办的《入门级Android逆向与调试——frida的第一次亲密接触》讲座于四川大学江安校区交叉学科大楼1005实验室顺利举行。

本次活动由网络空间安全协会副会长文廷科同学担任主讲人,为同学们精心准备了一场干货满满的入门讲座;通过实例代码讲解、运行过程分析带领大家亲自动手体验安卓逆向的魅力。本次讲座的主要内容可分为以下三大部分:

  • 简单的Android正向开发体验

在了解到场成员的相关技术基础后,文廷科同学带大家回顾了前端的基本运作流程、简单的开发与运行;通过实际的demo代码进行开发全流程的讲解,并在现场使用真机投屏演示了相关运行结果。更有协会会员当场上台体验,自己动手操作加深对安卓开发的理解。

  • Frida原理与基本使用

Frida本质是一个很常用的Hook工具,只需要编写一段Javascript代码就能轻松地对指定的函数进行Hook,并且由于其多平台(Android、iOS)的覆盖性十分便捷,受到广大开发者的追捧。

由于Frida的注入脚本是Java,因此在Hook开始之前,主讲人对Java注入相关的api进行简单介绍;并带领大家一步步搭建实验环境,在此过程中,文廷科同学对协会成员在搭建过程中遇到的各种问题进行详细解答。最后,通过相关实例向同学们展示Frida的基本使用方法。

  • 一个样例软件的破解

本次使用到的样例软件是github开源的kgb-messenger,它是一个逆向爱好者开源出来的crackme软件。在本次分享中介绍了通过前几个关卡的方法。

首先分析关卡的具体校验逻辑,然后针对校验函数逻辑中的缺陷进行分析,使用Frida hook方法修改apk从设备或者用户输入框中得到的信息,从而修改校验函数返回值,从而实验对校验逻辑的绕过,突破关卡。

安卓是目前流行最广的操作系统之一,围绕着安卓开发与逆向分析也衍生出来许多调试技术,Frida动态调试框架便是目前非常流行的安卓调试技术框架。本次分享通过简单的正向开发和逆向调试案例介绍,为大家普及了安卓逆向分析的基本流程,使得大家有了基本的了解。同时,文廷科同学还介绍了逆向的其他技术和工具,例如jeb反编译工具、加壳保护技术,鼓励大家去探索学习相关知识。