逆向知识导览

android逆向知识集

抓包

我们在逆向过程中,需要使用抓包技术来对应用的数据交互进行获取:

常见的抓包类型:

  1. 中间人抓包
    • 单向验证
    • 双向验证
  2. VPN抓包
    • 网络层
    • 路由层
  3. hook抓包
    • http网络请求
    • 三方网络框架请求

Hook

hook是代码插桩技术。就是在正常运行的代码,在不影响正常程序运行的前提下,嵌入一段自己的代码逻辑。

常见的hook类型:

  1. js hook:查看源程序代码,找到hook的点,编写js代码。配合frida工具,将js的hook代码注入到工具内。
  2. xposed hook:通过xPosed工具提供的hook函数,这是java写的。很简答,继承某个类,反射想要hook的类,实现某些方法。
  3. so文件hook:反编译程序找到程序中调用的native方法,自己编写hook native层的函数,打包so文件注入到反编译程序中,重打包,需要注意的是so是用c++写的。

密码学

在逆向过程中,程序难免会对一些关键数据进行加密或编码。对于这些加密编码的数据我们需要了解其加密、编码类型。所以我们需要了解这类知识:

常见的数据处理算法分为如下几类:

  1. 消息摘要算法:消息摘要算法又称为散列算法或哈希算法,常见的算法有:MD5,SHA、MAC。这些算法不是加密算法,仅仅是编码算法。
    原理就是:通过一些编码规则,将明文编成固定长度的一串编码。
  2. 非对称加密算法:此算法也是我们常用的。它有公钥和私钥两个密钥,开发者通过公钥加密,私钥解密。一般的公钥容易获得,私钥一般存于创建者,也就是发放公钥端的开发者。常见算法有:RSA。
  3. 对称加密算法:类似于消息摘要算法,密钥只有一个,发送和接收端将其存在本地,就可通过密钥将明文加密后传送,接收方通过密钥来解密。常见的算法有:DES、AES、3DES。
  4. 数字签名算法:反编译程序找到程序中调用的native方法,自己编写hook native层的函数,打包so文件注入到反编译程序中,重打包,需要注意的是so是用c++写的。
  5. 特殊编码算法:反编译程序找到程序中调用的native方法,自己编写hook native层的函数,打包so文件注入到反编译程序中,重打包,需要注意的是so是用c+
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值