c语言延时函数_介召几个frida在安卓逆向中使用的脚本以及延时Hook手法

本文介绍Frida在安卓逆向中的应用,包括Java与C语言环境下的延时Hook技巧、打印调用栈及方法重载处理等。同时分享了如何利用Frida进行动态Hook,帮助开发者更好地理解和调试应用程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

8a5b4d989decdef7c21ae981d3abcb01.png

0x00 frida简介

frida是近几年才推出的一款全平台的逆向神器。功能上主要采用动态hook的方式,加入log,修改逻辑等。可以对java,native等hook。

具体使用情况,谁用谁知道。废话不多说,直接上干货。

这里仅仅讨论安卓上面的情况,其他平台的咱不做研究

0x01 在java中的一些应用

1、延时Hook

安卓有一些多包的问题,另外有一些类是通过动态加载的方式来加载的。可能在hook触发的那个时间点,不会找到未加载的代码。

这个时候,可以通过在class loader上面加hook的方式,在hook的代码下进行二次绑定加载。

这里没有代码,需要各位同学自己尝试一下。

2、打印调用栈

调用栈,这个很有用。在分析的过程中,不一定会一定找到需要分析或者hook的函数。可能根据字符串等蛛丝马迹,仅仅找到一部分信息。

使用java调用栈,就可以找到方法的调用关系。

代码如下

c70b359edf1a20266fb27325a7ce50aa.png

如上所示,可以把所用调用了ConnectionErrorMessages.getErrorMessage这个方法的栈给打印出来。

3、关于java的重载

这个载frida中设计比较友好,如果不知道重载方法如何写。只需要写上方法名,运行一次,frida就会把所有的方法,通过错误日志的形式给打印出来。照抄即可。

f6a20f233924c7ad59efe481c2544bb5.png

如上图所示,就是AssetManager 的 open方法的各种方法。

0x02 在C语言中的Hook

1、同样的延时Hook

这里的Hook可以绑定到程序启动时,这个时候可以针对脱壳以及一些其他只有在启动时才会触发的逻辑起作用。如下面的代码所示,可以先把hook的代码,放在libc.so 的open方法上面,等到指定的so加载的时刻,在触发自需要hook的逻辑。

4b4cdc4218259ee7e2ec8adbe4095d86.png

2、C语言中打印调用关系

c中可以打印到该方法,是由那个so调用的。如open函数,在这里就可以知道是由那个so调用了,然后打印出该so具体的打开了那几个文件。根据打开的文件,进而可以猜测出使用了那些设备的信息以及一些其他操作。

关键的打印调用 就是这一行代码:Thread.backtrace

ea8d4c0a4d04383e1602c6006bc2dc83.png

以后会持续为大家更新关于安卓逆向的知识,希望大家喜欢的给个关注

如果纰漏,请各位同学加以指出。
最后放上脚本的git地址 https://github.com/lykmoon/frida-tools.git

声明:本文转自https://bbs.pediy.com/thread-248848.htm如有侵权请联系删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值