› Get Google Chrome
› Vimium · 在 Chrome 里使用 vim 快捷键
RiverRay
V2EX  ›  Chrome

一个反常识: 在 Chrome 浏览器里如何拿到用户最真实的 CPU 和其他硬件信息(不走 UA

  RiverRay · Jul 10, 2024 · 32735 views
This topic created in 847 days ago, the information mentioned may be changed or developed.

前端老鸟都知道一个常识

谷歌浏览器里面是拿不到真实 CPU 和硬件信息的

(:UA 那个很容易伪造好吧

今天再给你一个反常识:

其实,Chromium 内置了一个系统级插件。

这个插件允许 *.google.com 网站获取宿主机 CPU 信息

去 Chromium 源码里找找,发现插件 ID 是:nkeimhogjdpnpccoofpliimaahmaaome 。

而且,这个插件还能对外通信

so ,骚操作来了

我们可以随便打开一个 Google 的网站在 console 里面输入:

chrome.runtime.sendMessage('nkeimhogjdpnpccoofpliimaahmaaome',
{method: 'cpu.getInfo'},
response => console.table(response));

CPU 、进程还有负载 一五一十的就有了

看源代码,这个内置插件里面还暴露了不少其他方法,可以自己探索玩玩

说人话:

如果你做的是浏览器扩展,完全可以获取到宿主机的 CPU 还有其他硬件信息的

哈哈哈哈哈

147 replies  •  2024-07-22 09:21:14 +08:00
1  2  
❮ ❯
wojiugaiming
wojiugaiming
Jul 10, 2024 via Android
1
会不会泄露用户数据呢?
RiverRay
RiverRay
OP
Jul 10, 2024
2
只能说插件权限不要乱给,谷歌扩展能干的事情蛮多的
luzemin
luzemin
Jul 10, 2024
3
骚操作
cslive
cslive
Jul 10, 2024
4
真的是骚操作,有没有办法屏蔽这个东西
LieNoWell
LieNoWell
Jul 10, 2024
5


的确可以,有点厉害。
vueli
vueli
Jul 10, 2024
6
学到了,好骚
KateScarlet
KateScarlet
Jul 10, 2024❤️14
8
“不作恶”
momo1999
momo1999
Jul 10, 2024❤️56
9
only *.google.com can do
ersic
ersic
Jul 10, 2024❤️1
10
新的恶龙
geelaw
geelaw
Jul 10, 2024❤️3
11
这件事情的幽默之处在于 MS Edge 也给 google.com 高权限。来源是 https://x.com/lcasdev/status/1810753964020773316 但我没有验证
drymonfidelia
drymonfidelia
Jul 10, 2024 via iPhone❤️1
12
所以说浏览器插件能不装尽量不装,小公司、个人开发者的必须亲自审核代码后禁用更新不然大概率被卖掉
nealHuang
nealHuang
Jul 10, 2024
13
m2pro 执行报错

Unchecked runtime.lastError: Could not establish connection. Receiving end does not exist.
EspoirBao
EspoirBao
Jul 10, 2024
14
@nealHuang 好像是带尾缀的不行,只从浏览器端判断 google.com 结尾的
AlexMeng
AlexMeng
Jul 10, 2024
15
试了一下,chrome 和 edge 都可以
Ritter
Ritter
Jul 10, 2024
16
666
Felldeadbird
Felldeadbird
Jul 10, 2024
17
6 ,真的可以。骚啊。
0x90200
0x90200
Jul 10, 2024
18
骚的一批
elboble
elboble
Jul 10, 2024
19
国内用户安全了:-:
Ghostsss
Ghostsss
Jul 10, 2024❤️2
20
只有*.google.com 才可以,.hk 就不行了。看来这几个知名公司,没一个好的。
w568w
w568w
Jul 10, 2024
21
Only Google Can Do!

这是给 Firefox 送子弹啊
qinjiang
qinjiang
Jul 10, 2024
22
试了下可以复现,谷歌好样的!
aqqwiyth
aqqwiyth
Jul 10, 2024❤️2
23
这个插件的申明.
https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/resources/hangout_services/manifest_v2.json;l=1;drc=b0b102b6582fe1fca4a5eb6b156f198113674ec7

源码的解析
https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/resources/hangout_services/thunk.js

...
if (method === 'cpu.getInfo') {
chrome.system.cpu.getInfo(doSendResponse);
return true;
}
...

chrome 本质上是 C++写的 很早以前还支持 C++的扩展安装 , 有条件可以看看 chromimu 的源码.
Greendays
Greendays
Jul 10, 2024
24
chrome os 好像就是可以获取到性能信息的,也是在浏览器上显示。不知道有没有关系。
wst
wst
Jul 10, 2024
25
Arc 浏览器也可以,这是放到内核里了吗...
Cooky
Cooky
Jul 10, 2024❤️1
26
看来确实得切换到 ungoogled-chromium
proxytoworld
proxytoworld
Jul 10, 2024
27
看代码 2013 年就写了
clifftts
clifftts
Jul 10, 2024
28
收集客户端硬件信息,为了干啥
body007
body007
Jul 10, 2024❤️1
29
我测了下,只能在访问*.google.com 网址时在控制台能成功,其他域名不行。
registerrr
registerrr
Jul 10, 2024
30
TypeError: Cannot read properties of undefined (reading 'sendMessage')

Google 首页,Gmail 都没成功
lifei6671
lifei6671
Jul 10, 2024
31
@geelaw 证实了,edge 浏览器也可以用这种方式后去 CPU 信息。😂
cheneydog
cheneydog
Jul 10, 2024
32
试了 chrome 和 edge 可以,360 极速不行。
HFX3389
HFX3389
Jul 10, 2024
33
@drymonfidelia #12 但这是 Chrome 自带的,你装不装插件它都在
71oG4t5Zq6Bgx4tE
71oG4t5Zq6Bgx4tE
Jul 10, 2024
34
没复现出来。。。
HFX3389
HFX3389
Jul 10, 2024
35
@registerrr #30 你的 Google 首页是不是带后缀的?这个只接受.com 后缀的,不能带其他的
HK560
HK560
Jul 10, 2024
36
edge 也是生效的
opengps
opengps
Jul 10, 2024
38
插件远比网页的级别高,毕竟直接用了本地环境运行,可调用资源甚至接近浏览器的级别,算是一种客户端应用
gongquanlin
gongquanlin
Jul 10, 2024
39
google.com 可以,google.com.hk 不可以,哈哈哈
dufu1991
dufu1991
Jul 10, 2024
40
@daba 记得 ncr ,不然会跳转到非 google.com
D33109
D33109
Jul 10, 2024
41
观察下来在 2013 年貌似就有这个插件了?
drymonfidelia
drymonfidelia
Jul 10, 2024
42
@lifei6671
@geelaw edge 不奇怪,毕竟 edge 是完全不管隐私保护的浏览器 /t/1000852
但是我用最新版 Brave 也复现了,这可是以隐私保护为最大卖点的浏览器
71oG4t5Zq6Bgx4tE
71oG4t5Zq6Bgx4tE
Jul 10, 2024
43
dode
dode
Jul 10, 2024
44
差,谷歌给自己信息收集开后门
Jessec
Jessec
Jul 10, 2024
45
哈哈,但我用 firefox
unique0lai
unique0lai
Jul 10, 2024
46
@clifftts 大型广告公司恨不得搜集你的所有衣食住行数据,然后拿去给你做用户画像,最后拿去卖广告或是做金融服务。。。
zhangdp
zhangdp
Jul 10, 2024
47
只能在 google.com 网页下获取,又有何用
geelaw
geelaw
Jul 10, 2024 via iPhone
48
@drymonfidelia #42 和 Edge 保护不保护隐私没啥关系,觉得幽默是因为通常会假设 MS 会把各种 Google 专有的东西删除或者换成 MS 专有的。

@zhangdp #47 对 Google 有用。
RiverRay
RiverRay
OP
Jul 10, 2024❤️1
49
@zhangdp 任何浏览器插件,只要申明 google.com 的的权限,都可以获取~(:这个操作你是无感的
chenliangngng
chenliangngng
Jul 10, 2024
50
@zhangdp 当你安装插件,大概率是挂梯子走谷歌官方的插件中心,这个时候安装完插件已经拿到你所有数据了。这些硬件数据拿一次就可以了
cnt2ex
cnt2ex
Jul 10, 2024
51
试了一下 ungoogled chromium 无法获取,chrome/brave 可以。
siteshen
siteshen
Jul 10, 2024
52
又一个支持逃离 Google 的论据:

google.com -> duckduckgo.com
Google Chrome -> Mozilla Firefox
atuocn
atuocn
Jul 10, 2024❤️1
53
edge 也有🤣,edge://extensions-internals/ 可以发现更多
zaizaizai2333
zaizaizai2333
Jul 10, 2024❤️3
54
@proxytoworld 果然证明,开源并不等于有人看。

这有啥,我们的 iOS 的 App 不需要任何权限,就能知道手机机型和手机颜色呢。

你 Chrome 再牛逼能知道我的电脑的颜色吗?
Reficul
Reficul
Jul 10, 2024
55
@aqqwiyth #23

emmm, Google Hangouts 都被关掉了,这个插件还遗留着呢...
ysc3839
ysc3839
Jul 10, 2024 via Android
56
@geelaw 属于是 100% backdoor-for-backdoor compatible 了
satoru
satoru
Jul 10, 2024
57
https://news.ycombinator.com/item?id=40918052
报告,有人翻译了你的发现发到 Hacker News 上去了
6388xE5FRKTNUT9x
6388xE5FRKTNUT9x
Jul 10, 2024❤️1
58
ungoogled chromium 没有成功,提示

VM252:1 Uncaught TypeError: Cannot read properties of undefined (reading 'sendMessage')
at <anonymous>:1:16
6388xE5FRKTNUT9x
6388xE5FRKTNUT9x
Jul 10, 2024
59
检查 chrome://extensions-internals/ 没有发现名称为 nkeimhogjdpnpccoofpliimaahmaaome 的插件
zhangdp
zhangdp
Jul 10, 2024
61
@RiverRay 申明 google.com 权限不需要打开 google.com 网站就能执行?另外插件自己本身就可以调用"system.cpu"API 可以获取 cpu 等信息了。
blubzz
blubzz
Jul 10, 2024
62
那么类如 360 自家的浏览器的,访问特定的网站是不是也可以获取了?
lod
lod
Jul 10, 2024❤️1
63
这不是一个公开的 api ?,也别说什么开源并不等于有人看,这代码截图都贴上了不也没人看。
https://developer.chrome.com/docs/extensions/reference/api/system/cpu?hl=zh-cn
zeR0f1re
zeR0f1re
Jul 10, 2024❤️2
64
@nziu 这个是插件的权限,问题是我没安装 google 的插件,它凭什么没通知就获取我的权限
SkywalkerJi
SkywalkerJi
Jul 10, 2024
65
in Microsoft Edge this capability is also available exclusively to *.google.com domains

厉害了微软
lc4t
lc4t
Jul 10, 2024
66
Arc 也是可以的
webbillion
webbillion
Jul 10, 2024❤️1
67
63 楼是谷歌不作恶的坚决维护者?
hez2010
hez2010
Jul 10, 2024
68
@SkywalkerJi edge 用的也是 chromium 内核,如果 ms 压根都不知道这个 api 的存在的话,自然也保留着 chromium 默认的行为。
9ki
9ki
Jul 10, 2024
69
之前发帖子说 google 屏蔽疑似主动屏蔽某些搜索结果还被爱自由人士喷了呢 /1055707 某些人被洗脑的太严重了..
Biggoldfish
Biggoldfish
Jul 10, 2024
70
你都装了 Chrome 了 Google 要收集你硬件信息搞用户画像的话直接用 Chrome 读取上传不就完了,搞个插件只对 google.com 生效然后等着用户访问网页再去读取上传?
codehz
codehz
Jul 10, 2024
71
@Biggoldfish 这里的问题是给 google meets 提供了竞争优势,其他基于网页的在线会议软件都没法通过这个来获取 cpu 信息来调试错误
SkywalkerJi
SkywalkerJi
Jul 10, 2024❤️3
72
@hez2010 #68 证明了大家搬项目时并不会把代码都看一边,也不会全局替换上家的名字
cat9life
cat9life
Jul 10, 2024
73
同样,chrome 和 edge 都复现成功
skadi
skadi
Jul 10, 2024
74
在 g 的首页复现成功.
kkocdko
kkocdko
Jul 10, 2024
75
using ungoogled-chromium

chrome.runtime.sendMessage('nkeimhogjdpnpccoofpliimaahmaaome',
{method: 'cpu.getInfo'},
response => console.table(response));

VM62:1 Uncaught TypeError: Cannot read properties of undefined (reading 'sendMessage')
at <anonymous>:1:16
rdZZZ
rdZZZ
Jul 10, 2024
76
https://developer.chrome.com/docs/extensions/reference/api/system/cpu#type-CpuInfo

这 API 不是早就有了,不光 cpu ,显示器、内存、存储都能查,也就是说任何 chrome 扩展都有能力拿到,只是 google 恰好把它给暴露出去了
IDKAFK
IDKAFK
Jul 10, 2024
77
@satoru HN 上的来源不是那条推文吗?昨晚发布的
vela
vela
Jul 10, 2024
78
Version 126.0.6478.127 (Official Build) (arm64)

复现成功,可以可以。

```
value
:
archName
:
"arm64"
features
:
[]
modelName
:
"Apple M2 Max"
numOfProcessors
:
12
processors
:
(12) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}]
temperatures
:
[]
[[Prototype]]
:
Object
```
daidr
daidr
PRO
Jul 10, 2024❤️1
79
如果是扩展,本身 chrome 就提供了 cpu.getInfo 方法让你拿到完整的 CPU 信息

如果是网页,只有 google 自己的白名单域名会注入 chrome.runtime ,其他网页你怎么搞都不可能拿到这玩意
Johnathan
Johnathan
Jul 10, 2024
80
@kkocdko 我也是这个报错!没有成功
daidr
daidr
PRO
Jul 10, 2024❤️1
81
@hez2010 runtime 暴露出去主要是可以给 what's new 或者扩展商店之类的页面用,比如检测扩展安装状态、在 what's new 里帮你改浏览器主题。
LingXingYue
LingXingYue
Jul 10, 2024
82
google.com 可以 google.com.hk 却不行
这是历史遗留代码?还是谷歌一直在偷偷用呢
kylix
kylix
Jul 10, 2024
83
确实可以,google.com 首页 复现成功
Garphy
Garphy
Jul 10, 2024
84
有时候可能有点用···
zaizaizai2333
zaizaizai2333
Jul 10, 2024
85
Marius Karnauskas
@karnauskas

To report CPU/GPU load during Hangouts call - and probably adjust stream quality on the go.

Luca Casonato 🏳️‍🌈
@lcasdev

That’s not the point. The idea is good. The Google only implementation is not.

最后两句中文金句
drymonfidelia
drymonfidelia
Jul 10, 2024 via iPhone❤️1
86
@satoru HN 上的源链接是昨天发的,OP 是今天的帖,明显是 OP 翻译别人的
SunOfHomeBoy
SunOfHomeBoy
Jul 10, 2024
87
chrome.runtime.sendMessage('nkeimhogjdpnpccoofpliimaahmaaome',
{method: 'cpu.getInfo'},
response => console.table(response));

亲测可行!
Akiya
Akiya
Jul 10, 2024
88
实测 Edge 在 Mac 上可以复现
piapia
piapia
Jul 10, 2024
89
@0o0O0o0O0o zz 你咋啥都知道. tql
CloveAndCurrant
CloveAndCurrant
Jul 10, 2024
90
opera 也可以复现成功
lixen9
lixen9
Jul 10, 2024
91
测试了下,获取的 cpu 信息不对,macos
lixen9
lixen9
Jul 10, 2024
92
@lixen9 搞错了.. 查询的是对的
pikko
pikko
Jul 10, 2024
93
@nziu #63 extension 有额外权限能理解(暂且不说有没有控制硬件权限许可),而楼主说的这个,是不装插件,打开谷歌官网就能跳出来的 runtime 对象,妥妥的后门了。
google exlusive 后门
caqiko
caqiko
Jul 10, 2024❤️8
94
作为一个 Chrome Extension 开发者,我来解释一下:

1. Chromium 为浏览器扩展提供了很多 API ,其中包括 chrome.system.cpu 。这个 API 允许扩展访问 CPU 信息。
2. internal extensions:Google Chrome 自带了一些内部扩展( internal extensions ),如 Google Hangouts 和 PDF 预览功能等。这些扩展可以利用 Chrome 的各种 API 来实现其功能。
3. manifest.json:扩展的 manifest.json 文件是扩展的配置文件,其中定义了扩展的各种权限和行为。Google Hangouts 扩展在 manifest 中声明了相关的权限,以及在哪些页面(*.google.com )可以运行。这解释了为什么只有在*.google.com 页面可以获取。
4. background script:扩展的 background 脚本(如 trunk.js )是在后台运行的,可以持续监听和响应来自页面的消息。
5. message passing:扩展可以使用 chrome.runtime.sendMessage 和 chrome.runtime.onMessage 来实现消息传递。页面脚本 content-script 可以发送消息到 background script ,然后 background script 可以处理这些消息并返回响应。

综上所述,并不是只有 Google 有这个权限,所有的扩展都可以拿到这个功能。

9ki
9ki
Jul 10, 2024❤️1
95
@caqiko 题都没读对就来教别人..
sloknyyz
sloknyyz
Jul 10, 2024
96
你说错了一点,没有进程信息,那是处理器核心负载信息。
mizuhokaga
mizuhokaga
Jul 10, 2024
97
win11 edge 在 https://www.google.com/
复现成功, 不过我用 Firefox
pikko
pikko
Jul 10, 2024❤️1
98
@caqiko #94 题主探讨的是访问谷歌网页就暴露一个 runtime 对象了,都不到安装插件那一步。且只有谷歌有。
也就是谷歌就能看你 cpu 来做数据收集,别的网站不行。
bytewalk
bytewalk
Jul 10, 2024 via Android
99
我已经在尝试着转向 firefox 了
asdjgfr
asdjgfr
Jul 10, 2024
100
厉害了,真能复现,看 chromium 源码应该是 11 年前加的,9 年前改成 google 白名单,在 62 版本就有了
1  2  
❮ ❯
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1393 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 171ms · UTC 20:50 · PVG 04:50 · LAX 12:50 · JFK 15:50
♥ Do have faith in what you're doing.