跳到主要内容

基于Shamiko的隐藏Root方法

· 阅读需 3 分钟

前言

部分APP会在运行时检测设备是否安全,例如设备是否已Root。当APP检测到系统不安全时,可能会弹窗警告,甚至会直接退出。这使得我们可能无法对APP进行抓包分析等,影响风控对抗的进展。

为此,需要采取一些手段来绕过APP的Root检测。由于定制Android源码成本非常高,所以,尽量使用简单的方法能绕过APP的Root检测即可。基于Magisk的隐藏Root是常见的绕过方式,其操作简单便于使用。

Magisk简介

Magisk(面具)是安卓手机在Root后一般会安装的软件,可以安装一些模块来实现扩展功能。其中最有名的模块是Riru,它可以让其它模块注入Zygote进程。

在Magisk 23及之前版本,可以通过Magisk Hide来进行Root隐藏。不过在Magisk 24之后便移除了该功能,但仍然可以使用Riru-MomoHider来实现Root隐藏。

不过,Riru在今年2月份停止了更新,取而代之的是Zygisk。因此,在安装了Zygisk的情况下无需安装Riru。同时,Riru-MomoHider由于被滥用,开发者转而开发基于Zygisk的Shamiko模块。

Zygisk是Magisk自带的功能,可以启用,如果遵守排除列表,Magisk将会撤销修改,这样虽可以隐藏Root但是会导致LSPosed模块失效,而HTTPS抓包依赖TrustMeAlready模块以解除SSL pinning,可能会导致无法抓包。

要在启用Zygisk的情况下使用Root隐藏,便可以使用Shamiko模块,下面介绍操作方法。

Wireshark数据包分析实战学习笔记一

· 阅读需 18 分钟

捕获过滤器的BPF语法

使用BPF语法创建的过滤器被称为表达式,并且每个表达式包含一个或多个原语。每个原语包含一个或多个限定词,然后跟着一个ID名字或数字

限定词说明例子
类型限定词指出名字或数字所代表的意义host、net、host
传输方向限定词指明传输方向是前往还是来自名字或数字src、dst
协议限定词限定所要匹配的协议ether、ip、tcp、udp、http、ftp

可以使用以下3种逻辑运算符,对原语进行组合,从而创建更高级的表达式

捕获过滤器语法.drawio

PowerShell基于starship打造仿ys主题美化

· 阅读需 6 分钟

背景

Windows现在对开发者越来越友好了,有了WSL2且支持Docker,并且JetBrains的IDE也支持WSL2,开发环境改善了不少,Windows成为最好用的Linux发行版。

Windows的应用商店有一些高颜值的终端,作为传统的cmd与powershell终端的替代,视觉上提升了很多。powershell也有了新版,例如我目前在使用的PowerShell 7.1.5版本。

然而,对于在Linux上常用的oh-my-zsh,Powershell默认状态却并不美观,其命令提示符非常单调,也不能显示git仓库的分支。

效果

在众多oh-my-zsh主题里,我比较喜欢ys主题,主要是因为比较简约,不需要特殊的字体,没有各种花里胡哨的效果,因此可以在各种终端环境下完整地显示。下面是Linux上ys主题与PowerShell基于starshipys主题的对比效果:

screenshot-20211024232952

《Netty实战》读书笔记——编解码器与网络协议

· 阅读需 9 分钟

编解码器

解码器

  • 将字节解码为消息——ByteToMessageDecoderReplayingDecoder
  • 将一种消息类型解码为另一种——MessageToMessageDecoder

screenshot-20211024223038

io.netty.handler.codec.LineBasedFrameDecoder:这个类在Netty 内部也有使用,它使用了行尾控制字符(\n 或者\r\n)来解析消息数据;

io.netty.handler.codec.http.HttpObjectDecoder:一个HTTP 数据的解码器。在io.netty.handler.codec 子包下面,你将会发现更多用于特定用例的编码器和解码器实现。

Netty 提供了TooLongFrameException 类,其将由解码器在帧超出指定的大小限制时抛出。