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

307 天前
 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 下来修改一下软件包名就差不多了。

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

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

https://ex.noerr.eu.org/t/1090682

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

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

© 2021 V2EX