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

15 小时 37 分钟前
 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 下来修改一下软件包名就差不多了。

5847 次点击
所在节点    分享创造
100 条回复
phrack
15 小时 29 分钟前
在国内有的时候是真的,活着都累
WessonC
15 小时 24 分钟前
@phrack 确实有一些无力感
y051313
15 小时 19 分钟前
他家不是可以在物业配 ic 卡吗?
题外话,他家的 ic 卡一般的复制机还复制不了。
Rico802
15 小时 17 分钟前
支付宝有他家小程序,弄一个桌面快捷方式,目前全程无广
Blanke
15 小时 16 分钟前
之前我是逆向的小程序实现的自动化(按两下音量键自动开门),后来下架了
lsdvincent
15 小时 14 分钟前
神了 要这样我早干死物业了
handsome198311
15 小时 14 分钟前
现在丰巢柜子也开始了,以前扫码直接开柜,现在弹垃圾广告还带倒计时 5 秒,丢佢楼某,真的难受
StoneHuLu
15 小时 6 分钟前
草,之前租的房子用的也是类似的,联享家,外卖在 1 楼拨号开门,是手机 app 给你打电话,然后打开 app 给快递员开门的时候还得先看广告,无语了
rink9oled3
15 小时 4 分钟前
@phrack 从自己做起,有自己能决定的事的时候,不要做作恶者,教育好下一代,估计几代人之后会好些。
我说完都觉得深深的绝望。
KasuganoSoras
15 小时 3 分钟前
@y051313 #3 问过了,要收费,虽然就几十块钱也不是很贵,但要定期续费,纯恶心人
@Rico802 #4 之前好像没有,应该是最近出的吧,我有空试一下
@Blanke #5 是的,但是他们每隔一段时间就会改接口,纯靠逆向的话不长久
1d074bfa18d34f6c
15 小时 3 分钟前
物业费你交了,然后还强制你看他们的垃圾广告?广告投放得收益有分给你吗?没法上诉举报之类的吗
KasuganoSoras
15 小时 1 分钟前
@1d074bfa18d34f6c #11 门禁设备是这家公司免费提供的,但代价就是全体住户回家之前都得看他那个广告,这种情况要怎么举报
fanxasy
14 小时 58 分钟前
小区物业和大区物业,赛着恶心
Rico802
14 小时 56 分钟前
自从关闭微信小程戏后我就转到了支付宝小程序了,出了很久了
liudewa
14 小时 53 分钟前
你不怕有人攻击你 门莫名其妙的开吓着保安了?
zhusimaji
14 小时 50 分钟前
我家的小区也是亲邻,这 app 跟屎一样
tool2dx
14 小时 50 分钟前
我们这里也是这家,好像 95%都用人脸开门,还挺方便。
当然可以写一个给外卖小哥开门用。
KasuganoSoras
14 小时 50 分钟前
@liudewa #15 保安已经习惯了……我跟保安说了是我干的,我这几天一直在调试软件,楼下的门就在那开开关关的……
imwangpan
14 小时 49 分钟前
这软件确实恶心。
KasuganoSoras
14 小时 48 分钟前
@tool2dx #17 我是不想用他那个人脸识别,谁知道他会拿你的人脸数据去干什么。。

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

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

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

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

© 2021 V2EX