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

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

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

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

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

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

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

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

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

© 2021 V2EX