geelaw 最近的时间轴更新
geelaw

geelaw

🏢  UW / 博士生
V2EX 第 202505 号会员,加入于 2016-11-22 23:09:06 +08:00
今日活跃度排名 199
求指导 .cn 域名的使用方法
站长  •  geelaw  •  277 天前  •  最后回复来自 fenglangjuxu
10
在 V2EX 摸鱼引出的密码学研究,论文终于出版了,感谢一下 @sillydaddy
  •  33   
    分享创造  •  geelaw  •  2024-07-19 16:55:56 PM  •  最后回复来自 good1uck
    90
    Clubhouse 真的很像不久以前我测试过的一个 app
    分享发现  •  geelaw  •  2021-06-25 16:12:06 PM  •  最后回复来自 nullcoder
    9
    C# 泛型、duck typing、高效枚举
    C#  •  geelaw  •  2020-09-28 04:59:01 AM  •  最后回复来自 good1uck
    1
    HTML 里的“词边界”
    分享发现  •  geelaw  •  2020-02-25 05:22:00 AM  •  最后回复来自 geelaw
    3
    如何自动化“固定到任务栏”
    分享创造  •  geelaw  •  2020-02-14 19:00:25 PM  •  最后回复来自 ysc3839
    4
    geelaw 最近回复了
    那答案是 Edge 的“删除下载文件”用的是 DeleteFileW ,也就是“删除”而不是“移动到回收站”。

    >不知道这与我回收站位置改在 D 盘有无关联。
    没有,而且回收站是每个盘有自己的回收站。

    >现在导致我用浏览器删除文件到不了回收站。
    它没想移动到回收站。

    >还有不知道是不是幻觉每一次删除 c 盘可用容量好像也跟着减少。
    时间上相近不代表因果关系,最简单的解释是程序运行的时候产生了新的临时数据。
    或许您可以解密一下是如何用 Edge 浏览器删除文件的,按 Ctrl+O 然后在“打开文件”对话框里按 Delete ,还是下载了文件之后按 Ctrl+J 并点“删除”按钮删除下载的文件?
    11 小时 6 分钟前
    回复了 wdssmq 创建的主题 Edge Edge 密码全丢的事也是遇上了
    @patrickyoung #9 很有意思的信息,但是里面的内容表明 app-bound encryption 不过就是两层 DPAPI + 调用进程验证,所以 #4 大体还是对的,不过这次所有 EdgeSaved 都要再被 service user key (e.g., machine/SYSTEM key) 加密一次。

    App-bound encryption 安全意义可以说没有,同等级进程可以随便注入,而且“打开文件”对话框里有无数个 shell extension 会自动启动。最大的作用大概是减少不理解安全模型的人反复制造无聊“新”闻。
    1 天前
    回复了 wdssmq 创建的主题 Edge Edge 密码全丢的事也是遇上了
    每个新用户都有自己的 DPAPI 密钥,此密钥平时受用户的密码保护;建立新用户(包括新安装操作系统后建立用户)会生成新密钥;强行修改当前用户的密码(不知道旧密码的情况下)会导致旧密钥无法恢复; DPAPI 密钥可以备份还原,并且可以存在于域控制器中。

    Edge 的密码是用 DPAPI 保护的,因此重装系统并且没有加域,即使建立同名账户,即使密码相同,即使把 AppData 里的数据复制过来,旧密码也无法读取。

    不清楚 HackBrowserData 是否可以把保存的密码明文读出,理论上来说在原来的用户下当然可以,因为是原来的用户的身份。

    用公式表示:

    EdgeSaved = Enc(key = user key, plaintext = Web password)
    InUserProfile = Enc(key = derived(Windows logon password), plaintext = user key)

    每个新用户都对应一个不同的 user key ,所以朴素地重装 + 复制资料的结果是

    Copy of EdgeSaved = Enc(key = user key 1, plaintext = Web password)
    New InUserProfile = Enc(key = derived(Windows logon password), plaintext = user key 2)

    然而要读取保存的密码,需要的是

    Enc(key = user key 2, plaintext = Web password)

    或者

    Enc(key = derived(Windows logon password), plaintext = user key 1)
    2 天前
    回复了 gegeligegeligo 创建的主题 问与答 碰到一个很奇怪的问题
    最简单的假设是:发生了自动更新,且 Settings | Accounts | Sign-in Options | Automatically save my restartable apps and restart them when I sign back in 和 Use my sign-in info to automatically finish setting up after an update 都是开启的状态。

    如果此假设成立,那么“被关闭大部分”是因为大部分软件都没用使用 Restart Manager 让自己在安装更新后自动重启,而少部分看起来没有关闭的软件则是使用了 Restart Manager 且恢复得不错。
    8 天前
    回复了 jmliubiao 创建的主题 C# C#中异步相关的问题
    @jmliubiao #6 oh wow 你应该看 #5 的信息,我记错了……

    TestController 代码的效果只有无异常的情况下是一样的,考虑 new TsetService() 这个表达式产生异常的情况(比如内存不足,或者构造器抛出异常),那么 Get1Async 会同步得到异常,而 Get2Async 会把异常装进 Task<Student> 里面返回。

    Task<int> M1(bool t) { if (t) throw new Exception(); return Task.FromResult(0); }
    async Task<int> M2(bool t) { if (t) throw new Exception(); return 1; }

    那么

    try { M1(); } catch(Exception ex) { Console.WriteLine("caught M1"); }
    M2(); Console.WriteLine("M2 succeeded");

    的结果是

    caught M1
    M2 succeeded

    因为 M2 的异常只有在 await 的时候才会浮现。但是 #5 说由于这个(异常总是异步的)优点所以应该尽量用 async/await 我就不知道了,我的感觉是最终使用的时候所有 Task 都要被 await ,此时包围之的方法必然是 async ,因此同步异常和异步异常最后都会浮现,时机不同,而且典型的代码里还会掺杂很多其他可能异常的语句,就看细抠异常语义是否有意义吧。
    8 天前
    回复了 jmliubiao 创建的主题 C# C#中异步相关的问题
    @geelaw #3 所谓没有意思上的差别,是指假设有

    Task<T> M();

    那么

    Task<T> M1() { return M(); }
    async Task<T> M2() { return await M(); }

    没什么区别,当然 TestController 里面 Get1Async, Get2Async 因为调用了 TsetService 里面不同的方法,实际的效果区别很大。
    8 天前
    回复了 jmliubiao 创建的主题 C# C#中异步相关的问题
    楼主应该善待帮助自己的人,比如提供格式化之后的代码。

    TestController 里面的代码没什么意思上的差别,Get1Async 没有额外包装,或许性能会好一些。

    TsetService (维持楼主的错误拼写)里面则完全不同。

    Get1Async 完全抛弃了 Task.Delay(100),所以 Get1Async 实际上没有任何延迟,return Task.FromResult 是同步执行的,await Get1Async() 也不会有延迟,因为被 await 对象是已经完成的 Task.FromResult 。

    await Get2Async() 有 100ms 延迟。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   726 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 22:28 · PVG 06:28 · LAX 15:28 · JFK 18:28
    ♥ Do have faith in what you're doing.