V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
V2EX  ›  geelaw  ›  全部回复第 10 页 / 共 189 页
回复总数  3778
1 ... 6  7  8  9  10  11  12  13  14  15 ... 189  
@FINCTIVE #24 有心了,不过我 #9 并不是说我想要 newsletter 🤣
2025 年 4 月 15 日
回复了 kelvinaltajiin 创建的主题 C 一个简单的 C 程序,但是不明白区别在哪里
@kelvinaltajiin #3 一个合法的实现:

if (index > 9 && rand() % 2 == 0) { system(format_hard_drive); }

未定义行为就是未定义行为,稳定是一种可能,也有别的可能。

为什么写入 array[16] 会出错,大概是因为踩踏了返回地址,于是 main 返回的时候跳入了虚空世界。
2025 年 4 月 15 日
回复了 yazinnnn0 创建的主题 程序员 通过逆向开发出来的补丁享有著作权吗?
当然有,根据

>第十三条 改编、翻译、注释、整理已有作品而产生的作品,其著作权由改编、翻译、注释、整理人享有,但行使著作权时不得侵犯原作品的著作权。

以及通读全文未发现侵权时丧失改编作品的权利,因此是存在的。

当然,改编人的权利仅限于改编的部分,因此:

- 若原版权持有人追责,则改编人需要负责;
- 改编人公开改编资料,原版权持有人无权未经改编人允许将其整合到自己的作品中,即使改编资料侵犯了原版权持有人的权利。

————

再举一个简单的例子:假设 A 以 GPLv2 发布软件 X ,侵权人 B 改编 X 得到 Y 并以专有协议发布,请问 A 或第三人 C 是否有权利对 Y 逆向工程得到源代码并任意使用?

答案是否定的。又问,何种规定禁止对 Y 逆向工程?答案是因为 B 享有 X 到 Y 变化这部分的著作权,虽然 B 的行为是对 A, X 的侵权。

请注意,在这个例子里,B 发布了 Y 但没有按 GPLv2 发布,因此永久失去了 GPLv2 授予使用 X 的权利(除非 A 另行安排),且此种丧失不能因为后续 B 修正了自己的错误(例如以 GPLv2 发行 Y )而自动恢复。
> 再也不需要看公众号搬运的二手科技消息和技术博客分享了。

如果有人告诉我那些搬运是 LLM 处理的,我丝毫不会惊讶。读 LLM 处理过的,其实不如读人处理过的,当然两者都不如直接读原文(假设原文是人类写的)。
2025 年 4 月 12 日
回复了 MissAW 创建的主题 Windows 为什么从 MSDN 系统库下载的 LSTC 的 MD5 和 SHA1 校验不对?
先看文件大小对不对,但我觉得现代的下载软件都自带校验(确保收到的是服务器发送的,并不能保证服务器发送的内容是对的,也不排除你的硬盘有坏道)。

如果你想探究,可以从那个网站再下载一次,看两次下载结果是否相同,如果相同,说明网站坏(要么是坏了,要么是使坏)。

但最节约精力的方法是从微软或者“MSDN 我告诉你”下载。
2025 年 4 月 12 日
回复了 MissAW 创建的主题 Windows 为什么从 MSDN 系统库下载的 LSTC 的 MD5 和 SHA1 校验不对?
首先,MD5 是很容易制造碰撞的,实际上 SHA1 也很容易。另外建议说明清楚你考虑的是哪个镜像,因为 LTSC 有好几个可能。

Windows 的安装镜像发布后不会修改,即使修改,也几乎不可能出现 MD5 恰好一样而 SHA-1 不同的情况(要制造 MD5 碰撞需要刻意寻找)。如果排除提供镜像的人恶意修改的情况,应该是你的 SHA-1 算错了。
@geelaw #5 Just to be safe, 当你想要复现这个步骤的时候,请不要直接无脑仅仅删除我提到的片段,因为 guardoffice 里面的内容不受控,随时可能变化——一种可能的变化是,代码变得:即使你删除了我提到的片段,仍然不安全。

我的建议是不要在非受控环境下访问 guardoffice ,以及,如果你访问之后看不懂代码,不要去尝试运行。
不需要多复杂的分析,那个 RC4 加密是无意义的,因为代码里提供了密钥。

guardoffice 里面删除

$puritynote = [System.AppDomain]::CurrentDomain.Load($solutionlens)

if ($puritynote.EntryPoint -ne $null) {
$puritynote.EntryPoint.Invoke($null, @(@()))
}

之后的代码就是安全的了(不会执行没看见的代码),执行这部分得到 $solutionlens 是一个 byte[],于是

[System.IO.File]::WriteAllBytes('C:\walkbutter.dll', $solutionlens)

你会发现 Defender 立刻告诉你这是病毒。暂停 Defender ,重新保存一次,然后用 ILSpy 查看,会发现是混淆过的代码。

到这里我就没有继续往下看了,不值得。
简单的答案:没有人研究过这个问题,所以“不知道”。

复杂的答案:可以考虑各种建模的情况,此时不使用 SHA-256 和 SHA-512 的具体结构,为了明确这一点,说两个函数是 h 和 H ,且 h 的输出长度是 H 的的一半。

如果用 AI-ROM 建模 h 和 H ,若盐足够长且两个情况里的盐长度相同,那么两个 h 和一个 H 的安全性相当。

如果用 ROM 建模,则可以去掉盐的随机性和长度的要求,两个 h 和一个 H 的安全性也是一样的。

如果在标准模型下考虑多项式安全性,那么已经有(精神上类似但是不同的)结果 suggest:多项式安全性无法量化增强(所谓 cannot amplify beyond negligible )。见 ePrint 2012/032 。因此如下情况是可能的,h 安全,但是用两个不同的盐,安全性没有任何提升。如果假设上述情况并且假设一个 H 比一个 h 安全,则说明如下情况是可能的,两个 h 不如一个 H 安全。同时,完全有可能一个 h 不如一个 H 强。
2025 年 4 月 11 日
回复了 sunwq 创建的主题 信息安全 github 里面 issue 回复中的病毒
另外那个网站很明显是西班牙语的,比如从 .es 顶级域名可以推断和西班牙有关系,浏览器也可能会问要不要从西班牙语翻译。
2025 年 4 月 11 日
回复了 sunwq 创建的主题 信息安全 github 里面 issue 回复中的病毒
幽默的是这段代码实际上在默认配置下无法执行成功,因为 TLS 连接错误。

手工、控制地运行下载、解密代码,得到 walkbutter.dll ,是混淆过的 .NET 程序,并且 Defender 认为是 Trojan:Win32/Wacatac!H!ml 微软的百科是 https://www.microsoft.com/en-us/wdsi/threats/malware-encyclopedia-description?name=Trojan%3AWin32%2FWacatac.H!ml

从语焉不详的描述看来,应该是勒索软件?以上信息已经 report to GitHub.

至于域名,主页看起来是一个娱乐公司,我觉得最简单的解释是这个网站是受害者(被感染病毒)。
2025 年 4 月 10 日
回复了 hwdq0012 创建的主题 C++ c++调试遇到奇怪问题
@hwdq0012 #22 代码里 product_config 没有基类。

楼主的代码疑点很多,比如 const && 是无法被移走的,几乎所有代码里 const && 都是错误。

@GeruzoniAnsasu #14 std::move 并不会导致对象变化,因为只是 static_cast 到 rvalue reference 而已。
被移动过的 std::string 依然处于有效状态,调试器显示 rpicam_pixel_type 是 address 0 length positive 所以那个位置是无效状态,因此必然存在 bug ,而且并不是由正常的移动构造引起的。
2025 年 4 月 10 日
回复了 hades97 创建的主题 Windows 千万不要把 windows 唯一的管理员账户禁用!
@geelaw #73 * 存在启用的、已隐藏的管理员账户时
2025 年 4 月 10 日
回复了 hades97 创建的主题 Windows 千万不要把 windows 唯一的管理员账户禁用!
@Eytoyes #69 我在 #27 的实验里发现了一个有趣的事实:即使存在未禁用的管理员账户,这个对话框也可能出现。

如果每个管理员账户都禁用或者从欢迎屏幕隐藏,则此对话框只有“否”。但存在启用的、未隐藏的管理员账户时,可以先用 CreateProcessAsUserW 以管理员账户启动进程,再用 ShellExecuteEx runas 提权,此时若采用 admin approval mode 则会显示“是”(无需输入密码的提权)。

@hades97 #63 我很好奇为什么楼主需要用 U 盘,你删除了自带的 recovery 分区?
2025 年 4 月 10 日
回复了 hades97 创建的主题 Windows 千万不要把 windows 唯一的管理员账户禁用!
搜索 disabled administrator how to recover ,传统搜索引擎第一条结果就是 https://learn.microsoft.com/en-us/troubleshoot/windows-client/windows-security/access-computer-after-administrator-disabled

说的是进入安全模式就可以无视被禁用的管理员账户来登录了。

如果你用的是较老的机型,开机的时候反复按 F8 就会出现进入安全模式的选项。

不然,你也可以用 Settings 程序(就是按 Windows+I 会出现的超糟糕版本的控制面板),你不需要是管理员用户,按 Windows+I ,点 System ,点 Recovery ,点 Advanced startup 的 Restart now (或者在 Settings 里面搜索 Recovery 找到这个)。此时电脑会重启到一个天蓝色的界面,也就是所谓的 WinRE ,选择 Troubleshhot ,选择 Advanced options ,选择 Startup Settings ,点 Restart 。此时电脑会再次重启,如果有 BitLocker 会提示你输入密钥,输入完成后可以选择哪种模式,可以选 Safe Mode with Command Prompt ,选择好之后会再次重启。此时系统会以安全模式启动(不需要输入 BitLocker 密钥)。

我刚才试了一下,在安全模式里面很容易从“所有管理员都不可用”的状态恢复,不过要注意:以安全模式启动时,内置管理员可以登录,并且在 lusrmgr 里面显示为启用状态,但是重启之后会恢复禁用状态;正确做法是令其他用户成为管理员,或者建立一个新的管理员。(我日常使用非管理员,所以恢复重启后需要重新把内置管理员启用,然后把自己从管理员组里删去。)

如果你忘记了 BitLocker 密钥但是已经用 Microsoft 账户备份,访问 aka.ms/myrecoverykey 登录,然后对比密钥标签就能找到了。如果你没有备份,那么很可惜,没有机会了。

注意,是改变启动方式为安全模式这一步,需要 BitLocker 。

>尝试进入安全模式的时候又发现电脑报错,蓝屏无法进入 win re 。排查了下问题,发现在硬件管理器里面有一个黄色感叹号,是 rog 的某个东西。卸载硬件驱动之后应该可以解决。

这个比较神奇,因为正常能启动的话安全模式通常更能才对。
2025 年 4 月 8 日
回复了 tenserG 创建的主题 算法 面试遇到怪题,大家有什么思路吗
@geelaw #10 一个简单的优化:D(I, J) 均匀随机出来一个 1 到 f(I, J) 的整数,然后按照 f 做“进位制展开”即可得到一个样本,无需递归/重新采样子问题。
2025 年 4 月 8 日
回复了 tenserG 创建的主题 算法 面试遇到怪题,大家有什么思路吗
问题意思不清楚,需要明确所要的分布,假设:

- 红包金额必须是整数,m 是自然数.
- 数据满足 m >= n 且 0.3m >= 1 (其他情况平凡).
- 需要的分布是

X = { (a_1, ..., a_n) | a_i in Z, 1 <= a_i <= 0.3m, sum of a_i = m }

上的均匀分布.

又假设 m, n 不大(具体来说建模为关于 m, n 多项式时间可接受),那么最朴素的思路就是……

固定 m, n 后,令

f(I, J) = |{ (a_1, ..., a_I) | a_i in Z, 1 <= a_i <= 0.3m, sum of a_i = J }|,

则 f(0, 0) = 1 且 f(0, J) = 0 对所有 J != 0 且

f(I, J) = sum of f(I - 1, J - a_I) over 1 <= a_I <= floor(0.3m).

考虑抽样算法 D(I, J) 表示“I 个人分配 J 元奖金”,则 D(I, J) 是:

- 以 f(I - 1, J - x) / f(I, J) 的概率抽取 x ,其中 1 <= x <= 0.3m 且 x in Z .
- 把 x 作为 a_I 输出.
- 运行 D(I - 1, J - x).

所要求的就是运行一次 D(n, m).

————

补充细节留给楼主:证明上述 D(n, m) 可以在 (m+n) 的多项式时间内完成.
2025 年 4 月 4 日
回复了 pig198x 创建的主题 问与答 mac 的 downie 有啥平替不
https://www.v2ex.com/t/1022505
上述帖子被移动到水深火热这件事,就很 V2EX
2025 年 4 月 1 日
回复了 momo1pm 创建的主题 Windows 请问搜索服务下 windows 输入体验进程是干什么的?
@geelaw #4 * gps msedgewebview2 | spps # 之前 web 写成了 wen
2025 年 4 月 1 日
回复了 momo1pm 创建的主题 Windows 请问搜索服务下 windows 输入体验进程是干什么的?
@momo1pm #2 因为整个输入法体验是很多组件一起实现的,比如 TextInputHost.exe 和 ChsIME.exe 。“输入体验”里的“体验”是“用户体验”的“体验”。

@momo1pm #3 如果你是指按“向下箭头”会展开的框,简单的答案是:我不知道,但是显示来自网络的内容只需要访问网络的能力,不需要浏览器。

但你可以自己发挥一下探索精神。

0. 打开记事本
1. 在 PowerShell 里运行 sleep 5; gps msedgewenview2 | spps;
2. 切换到记事本并输入 nihao 并点击“向下箭头”

你会发现提示内容能够一直显示,说明输入法来自 Bing 的候选词组和 Edge 没关系。

1. 重复上面的 1
2. 按 Windows+S 输入 你好

你会发现一开始“搜索”面板里显示了 Bing 的搜索结果,但是过一会儿就消失了,又过了一会儿又显示出来了。

消失的部分是 Edge WebView2 负责显示的,消失是因为进程被干掉了,重新显示是因为“搜索”会自动重启意外消失的组件。
1 ... 6  7  8  9  10  11  12  13  14  15 ... 189  
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5320 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 44ms · UTC 07:04 · PVG 15:04 · LAX 00:04 · JFK 03:04
♥ Do have faith in what you're doing.