用模拟器挂机实现亲邻开门无广告自动化操作

31 天前
 KasuganoSoras

0x00 缘起

不知道从什么时候起,我们小区就装上了新的门禁,这个门禁系统是由一家叫亲邻科技的公司提供的,他们的门禁系统实际上就是个活动的广告牌,门禁开关上有广告,门上也有广告,到处都是广告。

其实这些都能忍了,但是忍不了的是他们的 App 开个门都要看广告,是真的烦人,而且这个破 App 又慢又卡,每次启动光是等那个加载界面都要等个十几秒钟,进去之后有时候登录失效了还要重新登录,登录完了加载数据又要十几秒钟,有这功夫我都能喊保安给我开个门了。

我也问过物业能不能搞个 NFC 之类的,得到的回复是暂时不支持,因为开通 NFC 是要收钱的,所以只能用 App 和人脸解锁,但我肯定不会把人脸数据卖给这些广告公司,那就只剩下 App 这条路能研究了。他们的 App 也有个什么免广告版,收费的,虽然一年就十几块钱,但我怎么可能会为这个玩意付钱?想都别想!

0x01 尝试破解

于是我就想着找个办法给它破解了。一开始我想的是通过抓包来破解,但是后来发现暂时行不通了,之前已经有 其他大佬尝试破解过了,而他们现在为了防破解,加入了 nonce 、sign 这两个参数对请求进行校验,同时还通过 SSL Pining 来阻止抓包,提升了破解难度。

虽然可以通过使用 Frida 和 blutter 等软件,再 Hook 掉 App 的签名接口来破解,但是这终归不是个稳定的办法,因为只要他们一修改签名方式,Hook 就没用了,又要重新逆向,非常麻烦。于是我想到了一个简单粗暴的办法,那就是:模拟点击。

0x02 另辟蹊径

简单粗暴,就是单纯通过模拟屏幕点击。配合软件在后台挂机实现自动开门。但是这个软件每次开门之后都会弹个广告出来,而且关闭广告必须要点那个小到不能再小的 X 按钮,并且这个按钮每次出现的位置都不同,有时候在左上角,有时候在右上角,如果要通过识图来获取按钮位置的话就太麻烦了,干脆每次开完门就重启一次 App ,这样就没有广告了。

private void CloseAd() {
    Thread thread = new Thread(() =>
    {
        Thread.Sleep(closeWait);
        stopAppCmd("com.qinlin.edoor");
        Thread.Sleep(300);
        startAppCmd("com.qinlin.edoor/.MainActivity");
        if (autoLockScreen) {
            Thread.Sleep(1000);
            powerBtn();
        }
    });
    thread.Start();
}

然后让程序监听在 HTTP 端口上,当收到请求的时候就发送 Adb 请求模拟屏幕点击,实现远程自动开门,配合 HTTP Shortcuts 这个非常好用的软件,就可以在手机主屏幕上一键开门了,再也不需要每次开门等个几十秒了。

最后附上项目地址: https://github.com/kasuganosoras/QLCloseDoor/

各位如有需要可以自取~

PS:理论上这个玩意也可以用于其他门禁系统,只需要 clone 下来修改一下软件包名就差不多了。

9195 次点击
所在节点    分享创造
107 条回复
cjpjxjx
31 天前
我们小区也是这个,但是可以在小米钱包上开通 NFC 门禁卡
ichou
31 天前
桌面壁纸交一下
kuku123
31 天前
小区改用政府和移动 ,一起开发的"智慧社区",楼下站很远就能人脸识别、小程序远程开门,响应速度都很快,全程无广告,就是开锁记录估计会被上传到公安系统,做坏事的话,被抓分分钟
qingxiangcool
31 天前
无良国内厂商,美其名曰:国产化。
bjzhou1990
31 天前
我家也是亲邻开门,但是有 ic 卡,可以用 NFC
KasuganoSoras
31 天前
@ichou #22 从相册里翻了 10 分钟才翻出来(
gsc
31 天前
对比可以手环开门还是方便
noisay
31 天前
我们小区也是这个逼 app ,真的垃圾, 把小程序停了强制用 app ,然后一堆广告。
KasuganoSoras
31 天前
@noisay #28 app 垃圾就算了,他这门禁还有 bug ,昨晚就遇到了,人一经过他那个摄像头前面它的摄像头就会启动,然后一启动就整个门禁系统卡死,然后自动重启,重启完摄像头一开又卡死,我都无语了😓
hevi
31 天前
直接业主委员会投诉啊,物业那么拽的吗
y051313
31 天前
@KasuganoSoras
啥?实体的 IC 卡也需要定期收费?
我们也用的是这家。IC 卡物业是 20 一个,我后来在淘宝找的卖家配的。10 块 2 个。
nonone
31 天前
联享家 同 真的恶心啊
xyholic
31 天前
很强,不过我有不验证签名的 api
hi2hi
31 天前
以前可以小程序开门;;;现在必须 APP 才能开门,而且全是几把广告,恶心的一批;;还好不是只有一个这 b 玩意儿,有传统的 ic 卡开门
18k
31 天前
这个是不是跟 u 享家一个系统,你看下我的界面有没有发送钥匙到桌面 那个没广告的
qianxu2001
31 天前
我小区用的门禁是易家人,APP 也是一堆广告极其难用,尝试过抓接口,刚开始没有任何的防御措施,http 接口随便调用,后面来来回回加了一堆限制,上了 https ,每次调用如果 nonce sign 不变还会经常 token 失效,后来干脆把 apk 给逆向了,把他 nonce sign 的逻辑给抓出来复用,目前半年 token 没失效,APP 一次没打开过了

https://img.chkaja.com/4cd75a6ddec66b6e.jpg
pelloz
31 天前
1 。告诉物业,这种看广告的恶心门禁得撤掉,要不然拒绝缴纳物业费。
2 。每天在业主群里面骂。
3 。没事去物业缴费窗口骂。
4 。打印一堆骂物业的传单,每天路过门禁贴一张。
vchroc
31 天前
抓个包,使用 siri-快捷指令开门,很方便

对手机说“开门”,门就开了--门口的邻居们都惊呆啦
hoshizukiko
31 天前
我小区也是装的这个亲邻,研究看看,不过我准备用支付宝的了,楼主厉害
missooo
31 天前
回个家还得看广告

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1090682

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX