docs: create private/asiaircrack/crack
This commit is contained in:
parent
e77a673b9c
commit
ed48f11a15
24
private/asiaircrack/crack.md
Normal file
24
private/asiaircrack/crack.md
Normal file
@ -0,0 +1,24 @@
|
||||
---
|
||||
title: 逆向过程
|
||||
description:
|
||||
published: true
|
||||
date: 2021-09-06T16:58:02.272Z
|
||||
tags: crack
|
||||
editor: markdown
|
||||
dateCreated: 2021-09-06T16:58:02.272Z
|
||||
---
|
||||
|
||||
# 逆向过程记录
|
||||
## 通电开机
|
||||
接上节买入树莓派4B、下载恢复镜像并将其写入SD卡后,将SD卡插入树莓派4B通电开机,此时通过安卓APP确认已经可以扫描到ASIAIR发射的WIFI信号。输入恢复系统的默认WIFI密码,连接成功但是APP提示未注册。然后反编译安卓APP,搜索关键字定位到checkLicense方法,阅读核心代码发现该方法创建socket连接至asi air pro,然后根据其返回的json报文判断系统是否已激活。
|
||||
## 获取系统root权限
|
||||
通过ssh-keygen生成公钥,并通过diskgenius等软件拷贝到sshkey目录,然后通电开机即可ssh到asi air pro系统,然后修改root密码。获取root权限后我们就可以为所欲为了。
|
||||
## 安装tcpdump
|
||||
由于之前已经发现是通过json报文判断是否已经激活系统,因此决定通过tcpdump软件抓包,然后用IDA反编译,修改二进制文件达到认证成功的目的。通过`apt install tcpdump`命令安装tcpdump软件抓包,发现系统默认dns配置有问题,将dns配置fix后,安装tcpdump并抓包(使用wireshark分析数据包)确定好认证过程,然后根据相关关键字去IDA中找到对应的位置。
|
||||
> tcpdump tcp port 4700 -s 0 -vvv -X
|
||||
### 破解1
|
||||
第一次尝试破解使用IDA直接修改判断方法,将判断是否激活的逻辑改为恒为true,因此可以直接返回已激活,此时APP可以正常连接,功能正常使用。但是这种方式有个问题,一旦系统升级、二进制文件被更新,激活失效,需要重新分析、修改二进制文件。于是有了破解2.
|
||||
### 破解2
|
||||
将判断系统是否激活的代码反编译为C语言代码,发现其逻辑是读取根目录下的配置文件,然后其逻辑大致为:func(cpu_serial_number,passwd) == license,如果为true则视为已激活。但是其实这里已经将加密算法泄露,只需把function使用熟悉的语言重写即可生成对应的license,因此通过这种方法可以完美破解ASIAIR,即便我们更换了树莓派4B主板或者升级系统,也完全不会影响激活状态,因为认证流程和正版ASIAIR完全一致。代码已经备份到我的私人gitlab服务器中。
|
||||
## 总结
|
||||
至此已经完美破解ASIAIR系统,接下来就是对于其如何结合indiserver工作的进行分析,以便后续可以自己开发类似系统。
|
||||
Loading…
x
Reference in New Issue
Block a user