原生安卓开发app的框架frida常用关键代码定位

作者:Python进阶者

来源:Python爬虫与数据挖掘

前言

有时候可能会对APP进行字符串加密等操作,这样的话你的变量名等一些都被混淆了,看代码就可能无从下手

不管没关系,像系统级别的东西,Toast了等函数,是不能混淆的,所以可以根据蛛丝马迹,终究找到破解的点

frida常用命令


打印堆栈

打印堆栈的本质就是抛异常,他的结果是从下往上看的!

代码


执行结果

原生安卓开发app的框架frida常用关键代码定位

常用hook函数代码

hook HashMap的put方法

hashMap,,那就很常用了,懂的都懂,但是一定要做好筛选,要不然app容易崩溃!


hook ArrayList的add方法

Array似乎也很常用


hook TextUtils的isEmpty方法

这个方法通常是安卓判断输入框是否为空必经的方法!


hook String的trim方法

这个方法似乎也挺多,去掉开头和结尾的空格,防止脏数据


hook log的w方法


hook EditText的getText方法

这个应该就多了,但是这个一般在加密的上层,可以考虑使用。


hook Collections的sort方法

排序方法,频率还凑合


hook jSONObject的put方法

一般在转成json时用的听过的,可以考虑


hook Toast的show方法

这个就很多了,基本上每个app都有,但是hook这个位置又偏加密下层,因为肯定是处理完才弹窗

但是可以考虑不输入账号密码直接提交,这样位置大概在加密的上层,可以顺着往下走


hook Base64的encodeToString方法

base64就很多了吧,除了消息摘要算法其他最后的形式都是base64格式,很有必要。


hook String的getBytes方法


findViewById找控件方法

这种方式hook代码,需要frida帮助我们启动app。

所以本次启动的命令为


因为可能一开始就绑定了很多控件,所以一开始就要开始hook。

如何找控件id

控件id可以通过<SDK目录>toolsbin下的uiautomatorviewer.bat来进行查看

原生安卓开发app的框架frida常用关键代码定位

查看登录按钮id

原生安卓开发app的框架frida常用关键代码定位

所以这个登录按钮的id就是btn_login

代码


简单用法

在嘟嘟牛这个app中,最后使用的是DES算法,并且base64结果展示加密的内容。

原生安卓开发app的框架frida常用关键代码定位

所以就hook一下base64试试

代码


hook结果

原生安卓开发app的框架frida常用关键代码定位

所以如果说,你如果看结果像是base或者md5或者hex等,直接就使用这些常用的hook代码试一下,并且抛出堆栈。

就可以很好分析代码了。

总结

虽然写的是关键代码定位,其实只不过是常用的代码罢了,上面这些使用在逆向app时总结的hook代码。

当然,实际肯定不止这么少,根据需求来,经验越多,轮子就越多。

来源:CDA数据分析师

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年6月1日
下一篇 2022年6月1日

相关推荐