V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  happyabs  ›  全部回复第 2 页 / 共 3 页
回复总数  42
1  2  3  
2022-12-01 22:19:05 +08:00
回复了 ZC3746 创建的主题 问与答 n/l, s/sh, c/ch , in/ing 不分的人,是否应该学双拼?
开模糊音, 直接无视, 无非是选择时会多了一些 (南方人不想折腾了 /doge)
2022-11-18 14:39:00 +08:00
回复了 linuxgo 创建的主题 Linux Linux 系统做备份该怎么做
#不必备份的路径: /dev /proc /sys /tmp /run /mnt /media /lost+found 和 swap 文件(/var/swap 或 /swap), 安装的缓存(用 apt clean 等命令清除)
#以及用户目录下的缓存文件(~里面的各种 cache)一般是浏览器占比最大, 可以自己先清理, 也可以把缓存目录改到 /dev/shm/, shm/是内存空间, 关机自动清除
#其他的文件, 我想都可以备份

#可以用 tar 实现不关机备份(热备份), 当然关机也可以, 不过进入 live 之类的环境,以执行命令
cd /
sudo tar cvpzf /dev/shm/HB20221118.tgz --exclude=/dev --exclude=/proc --exclude=/sys --exclude=/tmp --exclude=/run --exclude=/mnt --exclude=/media --exclude=/lost+found --exclude=/var/swap /

#注意排除不必备份的路径, 以及备份文件自身路径, 还要格外注意命令中 排除路径(--exclude=) 是写在 需要备份的路径(/ 根目录)的前面
2022-11-18 14:20:04 +08:00
回复了 LeeReamond 创建的主题 程序员 2022 新电脑装啥杀毒软件?
如果已经安装了第三方杀软, 需要同时启用 Windows Defender(wd)
1 退出第三方杀软

2 Win+X +A , 打开 PowerShell(管理员身份)

3 执行命令, 找出第三方杀软对应的 instanceGuid:
Get-WmiObject -Namespace root\SecurityCenter2 -Class AntiVirusProduct

4 删掉这个杀软所属的实例:
Remove-WmiObject -path \\localhost\ROOT\securitycenter2:AntivirusProduct.instanceGuid="输入杀软的 instanceGuid"

5 (可选) 有时可能会重新生成这个被删除的实例, 可以跟我一样猛一点, 把实例的上一级类删掉, 这样就不能直接写入操作了, 得先有类才能写入.
Remove-WmiObject -Namespace root\SecurityCenter2 -Class AntiVirusProduct

6 Win+R 运行 regedit.exe, 或者启动 PE, 在 PE 那修改注册表

7 定位到以下路径, 找到第三方杀软对应的子项:
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Security Center\Provider\Av\xxxxxxx(这里我的是{4C17E7AE-043A-D732-91B8-D139C9EB6B26})

8 右键该子项-权限-高级-更改所有者, 先改成自己的用户-禁用继承-删除已继承权限-添加自己的用户进去, 权限全选

9 删除该子项, 或者清空该子项下的所有内容

10 定位到上一级 Av, 右键-权限-高级-把里面所有用户主体的权限改成仅读取
还可以用火绒的 hips 规则锁定该子项({4C17E7AE-043A-D732-91B8-D139C9EB6B26})或者上一级, 仅允许读取操作

参考:
https://docs.microsoft.com/en-us/answers/questions/785351/delete-antivirusproduct-instance-using-wmi.html
https://support.sophos.com/support/s/article/KB-000043763?language=en_US
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/remove-wmiobject?view=powershell-5.1
https://community.lansweeper.com/t5/forum/delete-antivirusproduct-wmi/m-p/36607
2022-11-18 14:19:09 +08:00
回复了 LeeReamond 创建的主题 程序员 2022 新电脑装啥杀毒软件?
装火绒, 然后同时开启火绒和 Windows Defender(WD) /doge

火绒的杀毒能力比较菜, 不过是目前比较好用的免费 HIPS, 可以用来拦截一些危险操作, WD 的杀毒能力虽然也有点菜, 但比火绒好点, 还是免费的, 要是卡巴斯基的免费版 KFA 没下架, 就用 KFA 了

说下实现同时开启两个杀软(WD+火绒)的操作:
1 先别安装第三方杀软

2 Win+R 运行 regedit.exe, 或者启动 PE, 在 PE 那修改注册表

3 定位到以下路径:
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Security Center\Provider\Av\

4 (重点)右键这个 Av 项-权限-高级, 把里面所有主体的权限 改成只有读取一个权限,
如果改不了,就点更改所有者,先改成自己的用户-禁用继承-删除已继承权限-添加自己的用户进去, 把自己用户权限全选

也可以在后面用火绒的 hips 规则锁定该 Av 项, 仅允许读取操作

5 这时再安装第三方杀软
2022-11-18 14:01:21 +08:00
回复了 movq 创建的主题 程序员 为什么 Java 父类构造函数调用被重写的方法会调用到子类的
Glyph 的 draw() 被设计为可重写,在 RoundGlyph 这个方法被重写。但是 Glyph 的构造器里调用了这个方法,结果调用了 RoundGlyph 的 draw() 方法,这看起来正是我们的目的。输出结果表明,当 Glyph 构造器调用了 draw() 时,radius 的值不是默认初始值 1 而是 0 。这可能会导致在屏幕上只画了一个点或干脆什么都不画,于是我们只能干瞪眼,试图找到程序不工作的原因。

前一小节描述的初始化顺序并不十分完整,而这正是解决谜团的关键所在。初始化的实际过程是:

在所有事发生前,分配给对象的存储空间会被初始化为二进制 0 。
如前所述调用基类构造器。此时调用重写后的 draw() 方法(是的,在调用 RoundGraph 构造器之前调用),由步骤 1 可知,radius 的值为 0 。
按声明顺序初始化成员。
最终调用派生类的构造器。
这么做有个优点:所有事物至少初始化为 0 (或某些特殊数据类型与 0 等价的值),而不是仅仅留作垃圾。这包括了通过组合嵌入类中的对象引用,被赋予 null 。如果忘记初始化该引用,就会在运行时出现异常。观察输出结果,就会发现所有事物都是 0 。

另一方面,应该震惊于输出结果。逻辑方面我们已经做得非常完美,然而行为仍不可思议的错了,编译器也没有报错( C++ 在这种情况下会产生更加合理的行为)。像这样的 bug 很容易被忽略,需要花很长时间才能发现。

因此,编写构造器有一条良好规范:做尽量少的事让对象进入良好状态。如果有可能的话,尽量不要调用类中的任何方法。在基类的构造器中能安全调用的只有基类的 final 方法(这也适用于可被看作是 final 的 private 方法)。这些方法不能被重写,因此不会产生意想不到的结果。你可能无法永远遵循这条规范,但应该朝着它努力。
2022-11-18 14:00:39 +08:00
回复了 movq 创建的主题 程序员 为什么 Java 父类构造函数调用被重写的方法会调用到子类的
下面例子展示了这个问题:

// polymorphism/PolyConstructors.java
// Constructors and polymorphism
// don't produce what you might expect
class Glyph {
void draw() {
System.out.println("Glyph.draw()");
}

Glyph() {
System.out.println("Glyph() before draw()");
draw();
System.out.println("Glyph() after draw()");
}
}

class RoundGlyph extends Glyph {
private int radius = 1;

RoundGlyph(int r) {
radius = r;
System.out.println("RoundGlyph.RoundGlyph(), radius = " + radius);
}

@Override
void draw() {
System.out.println("RoundGlyph.draw(), radius = " + radius);
}
}

public class PolyConstructors {
public static void main(String[] args) {
new RoundGlyph(5);
}
}
输出:

Glyph() before draw()
RoundGlyph.draw(), radius = 0
Glyph() after draw()
RoundGlyph.RoundGlyph(), radius = 5
2022-11-18 13:59:29 +08:00
回复了 movq 创建的主题 程序员 为什么 Java 父类构造函数调用被重写的方法会调用到子类的
可以参考 On Java 8 (或 On Java 中文版:基础卷+进阶卷)中第九章多态的 构造器内部多态方法的行为:

构造器内部多态方法的行为

构造器调用的层次结构带来了一个困境。如果在构造器中调用了正在构造的对象的动态绑定方法,会发生什么呢?

在普通的方法中,动态绑定的调用是在运行时解析的,因为对象不知道它属于方法所在的类还是类的派生类。

如果在构造器中调用了动态绑定方法,就会用到那个方法的重写定义。然而,调用的结果难以预料因为被重写的方法在对象被完全构造出来之前已经被调用,这使得一些 bug 很隐蔽,难以发现。

从概念上讲,构造器的工作就是创建对象(这并非是平常的工作)。在构造器内部,整个对象可能只是部分形成——只知道基类对象已经初始化。如果构造器只是构造对象过程中的一个步骤,且构造的对象所属的类是从构造器所属的类派生出的,那么派生部分在当前构造器被调用时还没有初始化。然而,一个动态绑定的方法调用向外深入到继承层次结构中,它可以调用派生类的方法。如果你在构造器中这么做,就可能调用一个方法,该方法操纵的成员可能还没有初始化——这肯定会带来灾难。
2022-09-16 17:16:51 +08:00
回复了 cghost 创建的主题 信息安全 大抵是被投毒了,是通过 ftp 匿名登陆投的,该如何解决?
折腾了一下, 实现了同时开启火绒或者其他第三方杀毒软件和 Windows Defender(wd)

火绒的杀毒比较菜, 但是胜在是免费的 HIPS, 用来拦截一些危险操作还是可以的, wd 的杀毒虽然也有点菜, 但稍微好点, 还是免费的. 目前测试两个杀软共存没问题, 只是 wd 的 cpu 占用是真的大.

(PS: 要是卡巴斯基的免费版 KFA 没下架, 早就扔掉 wd 了)

说下具体操作, 顺便备忘:
1 Win+X +A , 打开 PowerShell(管理员身份)

2 执行命令, 找出第三方杀软对应的 instanceGuid:
Get-WmiObject -Namespace root\SecurityCenter2 -Class AntiVirusProduct

3 删掉这个杀软所属的实例:
Remove-WmiObject -path \\localhost\ROOT\securitycenter2:AntivirusProduct.instanceGuid="输入 instanceGuid"

4 (可选) 有时可能会重新生成这个被删除的实例, 可以跟我一样猛一点, 把实例的上一级类删掉, 这样就不能直接写入操作了, 得先有类才能写入.
Remove-WmiObject -Namespace root\SecurityCenter2 -Class AntiVirusProduct

5 Win+R 运行 regedit.exe, 或者启动 PE, 在 PE 那修改注册表

6 定位到以下路径, 找到第三方杀软对应的子项:
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Security Center\Provider\Av\

(这里我的是{4C17E7AE-043A-D732-91B8-D139C9EB6B26})

7 右键该子项-权限-高级-更改所有者, 先改成自己的用户-禁用继承-删除已继承权限-添加自己的用户进去, 权限全选

8 删除该子项, 或者清空该子项下的所有内容

9 定位到上一级 Av, 右键-权限-高级-把里面所有用户主体的权限改成仅读取
还可以用火绒的 hips 规则锁定该子项({4C17E7AE-043A-D732-91B8-D139C9EB6B26})或者上一级, 仅允许读取操作

参考:
https://docs.microsoft.com/en-us/answers/questions/785351/delete-antivirusproduct-instance-using-wmi.html
https://support.sophos.com/support/s/article/KB-000043763?language=en_US
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/remove-wmiobject?view=powershell-5.1
https://community.lansweeper.com/t5/forum/delete-antivirusproduct-wmi/m-p/36607
如果没启用 DHCP:
那就直接在 /etc/network/interfaces 修改 dns 好了,如果不是用 debian 默认的 ifupdown, 用的是 networkd,那就改这个的配置文件

networkd 在 Debian11 中是已安装但未启用的,也不是 Debian 默认的网络管理,使用 networkctl 命令可检查其运行状态,networkd 修改 dns 更方便点貌似, 也支持 dhcp 只获取 ip 不获取 dns 的场景, 如果用 netplan 作为前端管理就更加方便了

以下是参考链接:
https://manpages.debian.org/buster/isc-dhcp-client/dhclient.8.en.html
手贱想按^+Enter 换行,结果发送回复了
如果启用了 DHCP:
debian 默认的网络管理为 ifupdown, 一般通过修改 /etc/network/interfaces 文件来启用 DHCP, 具体配置操作可参考官方文档, 这里给出样例, 我的配置如下:
sudo nano /etc/network/interfaces
auto ens123
iface ens123 inet dhcp

之后就交由 dhcp 来配置 dns(dns 全称: domain-name-servers),
ifupdown 的 DHCP 方式:dhclient, pump, udhcpc, dhcpcd(按启用的先后顺序), 一般默认使用内置的 dhclient,
因此要修改 dhclient 的配置文件(/etc/dhcp/dhclient.conf), 才真正修改 DNS:
sudo nano /etc/dhcp/dhclient.conf
#添加下面这行就是覆盖全局所有使用 DHCP 的网卡的 DNS.
supersede domain-name-servers 202.96.128.86, 119.29.29.29, 202.96.134.133;

#添加下面这块代码就是只覆盖特定网卡的 DNS, 并且不获取 domain-name-servers 和 ipv6 的配置.
interface "ens192" {
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-search, host-name,
netbios-name-servers, netbios-scope, interface-mtu,
rfc3442-classless-static-routes;
supersede domain-name-servers 202.96.128.86, 119.29.29.29, 202.96.134.133;
}

#其中 supersede 这个修饰符的意思是只按用户指定的值, 忽略 DHCP 获取的; 此外还有 default prepend 等修饰符,具体可参考官方文档.
debian 默认的网络管理为 ifupdown, 一般通过修改 /etc/network/interfaces 文件来启用 dhcp,具体配置操作可参考官方文档:
sudo nano /etc/network/interfaces
auto ens123
iface ens123 inet dhcp
2022-09-09 16:01:05 +08:00
回复了 shubiao 创建的主题 问与答 那里能找到高德、知乎、京东金融等新版的 32 位安装包
https://apk.support/ 里面有选项
2022-09-06 19:48:03 +08:00
回复了 HelloWorld556 创建的主题 职场话题 今天是个好日子
恭喜大佬 沾沾喜气哈哈哈
2022-08-27 16:07:09 +08:00
回复了 estk 创建的主题 Android Motorola 手机及其国际版安卓系统的体验
@estk 实测除了底层硬件层面的数据(MEID IMEI SN 码等), 其他数据(应用列表和文件等)是完全隔离的, 隔离空间里的只能访问隔离空间的数据.

F-droid 这个应用市场挺好用的, 里面的 app 好像全部都是要从开源代码中构建, 所以闭源 app 一般是不在 F-droid 上架的.
这里推荐两个网站,能获取 Google play 谷歌应用市场的直链:
https://apkpremier.com/download/
https://apk.support/app/

使用手册: 例如 qq
先去谷歌商店搜索 qq,在网址找到 qq 的包名
https://play.google.com/store/apps/details?id=com.tencent.mobileqq

把包名补充到网址后面
https://apkpremier.com/download/com-tencent-mobileqq
https://apk.support/app/com.tencent.mobileqq

选择版本和系统架构
https://apk.support/app/com.tencent.mobileqq/download?v=OC4yLjEx&e=fafb599c

最后选择 Google Server 里的链接
https://play.googleapis.com/开头的就是直链

注意:不推荐到 apkpure 下载,apkpure 的 apk 安装包无法溯源,安全性难讲.


再推荐几个支持 apk 的在线扫描网站:
支持 100M 及以上的文件:
https://opentip.kaspersky.com/
https://www.virustotal.com/
https://virusscan.jotti.org/

https://sandbox.ti.qianxin.com/sandbox/page
https://www.maldun.com/submit/submit_file/
https://www.joesandbox.com/#android
https://metadefender.opswat.com/

只能扫描小容量的文件:
https://www.virscan.org/
https://vms.drweb.com/scan_file/
2022-08-26 09:54:01 +08:00
回复了 estk 创建的主题 Android Motorola 手机及其国际版安卓系统的体验
Android 有一个工作模式,提供了一个隔离的空间,可以用来实现多开, 用 shelter 这个 app 可以提供操作界面
https://f-droid.org/zh_Hans/packages/net.typeblog.shelter/
主机 CPU 性能有设置:
win 里面有个电源模式, 里面有个 CPU 最大频率, 调 100%以下就是限制主机 CPU 性能; 另外, 参考网上教程修改注册表, 使之显示睿频等选项, 然后禁用睿频.
Linux 限制 CPU 频率+修改 CPU 调度模式为 powersave, 具体参考网上教程.
风扇转速这个估计第三方软件比较方便
1  2  3  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2682 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 26ms · UTC 11:53 · PVG 19:53 · LAX 04:53 · JFK 07:53
Developed with CodeLauncher
♥ Do have faith in what you're doing.