• 周四. 4月 25th, 2024

5G编程聚合网

5G时代下一个聚合的编程学习网

热门标签

安卓逆向8-Frida-脱壳

admin

11月 28, 2021

###

安卓逆向,写代码的难度是比较小的,

难度大,是因为要分析原理,比如frida脱壳,这个其实代码很简单,十几行代码就好了,但是要懂得原理才可以,

###

之前使用的工具脱壳的

就是Xposed的一个工具组件,

现在我们使用frida 来开发脱壳,

毕竟作为开发,还是需要了解这个的,

###

脱壳要懂得原理,这个难度比较大,

真正写代码是非常简单的,几十行代码就搞定了,

###

使用frida脱壳的原理,

还是壳加载源app到内存之后,从内存中取出这个源app的代码,然后使用frida把这个保存到本地,就实现了脱壳了

###

###

本质还是需要需要懂这个dex文件的格式,里面做了什么,是怎么保存的,

里面有一个重要的属性,就是dex的数据具体有多大字节,这就是文件的长度,所以我们操作内存的依据就是这个,

 

我们读取内存里面的dex数据的时候,就是从32个字节往后,一直加dex的文件大小,这就是dex文件我们要读取的起始位置,

###

内存的概念,

因为我们是从内存取值,所以还是需要知道这个内存怎么回事

比如一个4G的内存,可能是分成了1万份,每一份都是有一个id的,

 ###

怎么确定hook的点,

我们要知道dex加载的时候经过了很多的流程,我们怎么知道在哪一个流程去取内存呢?

第一个方法,就是你对安卓原理很通,熟悉代码逻辑,但是这个很难,真正做安卓app开发的,也未必搞得清楚,因为他们只是调用相关的api,做应用层的开发,对底层可能也不太清楚

第二个方法,我们通过查资料,了解dex加载的流程,我们就是这种人,

可能dex加载要经过10个方法,我们每一个做hook,看哪一个方法之后可以把内存dump出来,

经过测试是这个openmemory的方法之后,会把dex加载到内存,所以我们hook这个函数,

 这个方法再libart.so这个里面

我们可以使用ida工具,打开这个库,查看这个方法的导出方法名,然后就知道了我们要hook这个方法,

 ###

一个9,一个7是什么,是因为在安卓9和安卓7,是不同的名字, 

###

 ####

###

难点,是找到hook的点,

###

你能开发出来这个脱壳程序,在爬虫领域就是比较牛逼的了, 

但是这个没有这么容易,大部分的app不是这么简单的,还做了混淆等其他的限制,没有办法只是使用frida就能脱壳,

 ####

《安卓逆向8-Frida-脱壳》有2个想法
  1. After most mobile phones are turned off, the restriction on incorrect password input will be lifted. At this time, you can enter the system through fingerprint, facial recognition, etc.

  2. Keyloggers are currently the most popular way of tracking software, they are used to get the characters entered on the keyboard. Including search terms entered in search engines, email messages sent and chat content, etc.

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注