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

2024 年 11 月 19 日
 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 下来修改一下软件包名就差不多了。

18401 次点击
所在节点    分享创造
107 条回复
chendaye
2024 年 11 月 19 日
winform 好评
beixiao
2024 年 11 月 19 日
有点麻烦哈哈,坐标深圳城中村,开门用的小程序,抓到请求写个快捷指令,添加到桌面就好了😂
SimonOne
2024 年 11 月 19 日
安卓的图标库用的哪个?
i8086
2024 年 11 月 19 日
真实案例,我这小区就装上这种,app 广告巨多,最后被广大业主投诉撤掉了。
Clannad0708
2024 年 11 月 19 日
@rink9oled3 #9 好人就该被拿枪指着.jpg
Clannad0708
2024 年 11 月 19 日
@handsome198311 #7 直接下载蜂巢 APP 可以和客服沟通,禁止入柜丰巢,以后都不会给你放在丰巢了
Clannad0708
2024 年 11 月 19 日
@KasuganoSoras #12 联合业委会取消这个门禁。去和物业沟通,他看广告的收益绝对比直接收钱高多了
baizhu
2024 年 11 月 19 日
正确的方法是骂死物业让他们给撤了
v1
2024 年 11 月 19 日
反编译又不难,我就是反编译方案。
qeqv
2024 年 11 月 19 日
我这也有亲邻,神烦,弄个摄像头在门口怼着脸拍,还有超亮的广告。
yzding
2024 年 11 月 19 日
跟 OP 一样,我也是用的模拟点击方案。不过是直接手机上用的 MacroDroid 写宏来实现,然后在 iPhone 调用快捷指令直接开门。ps: 昨天我还在发问 Apple watch 调用 Siri 不能找到快捷指令,今天起床就好了
Felldeadbird
2024 年 11 月 19 日
这有点过分了,回家都要看广告?我买的是房子还是广告
dozer47528
2024 年 11 月 19 日
这能忍?业委会到哪去了?必须和邻居们联合业委会取消这个啊。

我看了这家公司介绍,明明有其它开门方式了,你们物业只留了一个 App 非让你们看广告,这也太恶心了。

你说有亲朋好友来,用小程序开门临时看个广告也就算了。普通业主还要强制看广告,这肯定过了。
dozer47528
2024 年 11 月 19 日
另外,小区广告收入输入业主共有。
物业必须公开这笔钱的用途。如果没有地方公开,你们小区业主应该联合起来起诉。
xiangbohua
2024 年 11 月 19 日
哎,开个门都要广告,开电视也要广告,真的累
Huelse
2024 年 11 月 19 日
我觉得没什么好吐槽的,总不能想要马儿跑得快又想马儿不吃草吧?就像油管不开广告拦截那广告长得令人发指。
binxin
2024 年 11 月 19 日
请问下 OP ,这个开门不需要蓝牙定位么?或者是怎么解决的呀。
liuxh7
2024 年 11 月 19 日
最近我这边在招产品助理,想着和 HR 一起筛选一下简历,发现招聘方的后台巨恶心,每个人的信息预览只有一点点,详细了解的话,点进去看要花钱,打招呼要花钱,甚至条件筛选简历都要花钱,步步都层层套路。
dode
2024 年 11 月 19 日
真是搞笑,老人,孩子也天天拿着手机看广告开门?
LieEar
2024 年 11 月 19 日
用不到这么麻烦,直接群里说拆掉,否则第二天拿锤子直接砸了

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

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

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

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

© 2021 V2EX