V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  geelaw  ›  全部回复第 4 页 / 共 183 页
回复总数  3657
1  2  3  4  5  6  7  8  9  10 ... 183  
@kelvinaltajiin #3 一个合法的实现:

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

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

为什么写入 array[16] 会出错,大概是因为踩踏了返回地址,于是 main 返回的时候跳入了虚空世界。
53 天前
回复了 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 处理过的,其实不如读人处理过的,当然两者都不如直接读原文(假设原文是人类写的)。
先看文件大小对不对,但我觉得现代的下载软件都自带校验(确保收到的是服务器发送的,并不能保证服务器发送的内容是对的,也不排除你的硬盘有坏道)。

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

但最节约精力的方法是从微软或者“MSDN 我告诉你”下载。
首先,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 强。
57 天前
回复了 sunwq 创建的主题 信息安全 github 里面 issue 回复中的病毒
另外那个网站很明显是西班牙语的,比如从 .es 顶级域名可以推断和西班牙有关系,浏览器也可能会问要不要从西班牙语翻译。
57 天前
回复了 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.

至于域名,主页看起来是一个娱乐公司,我觉得最简单的解释是这个网站是受害者(被感染病毒)。
57 天前
回复了 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 ,而且并不是由正常的移动构造引起的。
@geelaw #73 * 存在启用的、已隐藏的管理员账户时
@Eytoyes #69 我在 #27 的实验里发现了一个有趣的事实:即使存在未禁用的管理员账户,这个对话框也可能出现。

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

@hades97 #63 我很好奇为什么楼主需要用 U 盘,你删除了自带的 recovery 分区?
搜索 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 的某个东西。卸载硬件驱动之后应该可以解决。

这个比较神奇,因为正常能启动的话安全模式通常更能才对。
59 天前
回复了 tenserG 创建的主题 算法 面试遇到怪题,大家有什么思路吗
@geelaw #10 一个简单的优化:D(I, J) 均匀随机出来一个 1 到 f(I, J) 的整数,然后按照 f 做“进位制展开”即可得到一个样本,无需递归/重新采样子问题。
59 天前
回复了 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) 的多项式时间内完成.
64 天前
回复了 pig198x 创建的主题 问与答 mac 的 downie 有啥平替不
https://yangjunhui.monster/t/1022505
上述帖子被移动到水深火热这件事,就很 V2EX
@geelaw #4 * gps msedgewebview2 | spps # 之前 web 写成了 wen
@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 负责显示的,消失是因为进程被干掉了,重新显示是因为“搜索”会自动重启意外消失的组件。
负责输入法的,它的位置是 C:\Windows\SystemApps\MicrosoftWindows.Client.CBS_cw5n1h2txyewy\TextInputHost.exe

CBS = component-based services/servicing

打开 PowerShell ,切换到中文输入法,输入 nihao ,你会看到暂显内容是 ni'hao 并且有候选词框。
输入 gps TextInputHost.exe | spps; 回车之后迅速再次输入 nihao ,你会看到暂显内容是 ni'hao ,但是没有候选词框。
过几秒再次输入 nihao ,候选词框恢复。

那个“搜索”是按 Windows+S 会出现的搜索框的程序,有很多 Edge WebView2 是因为搜索框里面可能呈现 Web 搜索结果。因为这些全都是 MicrosoftWindows.Client.CBS_cw5n1h2txyewy 这个包里面的,所以都归类为“搜索”,实际上一个包里面可以有很多程序,“搜索”和“输入法”只是都在这个包里面,应该算是任务管理器的分类错误。
1  2  3  4  5  6  7  8  9  10 ... 183  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2638 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 34ms · UTC 13:00 · PVG 21:00 · LAX 06:00 · JFK 09:00
Developed with CodeLauncher
♥ Do have faith in what you're doing.