Grav1ty 发布的文章

/etc/skel 是 Skeleton Directory 的缩写,意为“骨架目录”。它的核心作用是:当一个新用户被创建时,系统会自动将这个目录下的所有文件和目录,复制到新用户的家目录中,作为新用户初始环境的起点。

每次使用useradd命令新建用户时,useradd背后Glibc中的adduser()会负责将/etc/skel的内容复制到/home/<新用户>中。

/etc/skel权限一般是755

//https://www.cnblogs.com/Meteor-Kai/articles/18473549这篇文章不错

  1. 文件头签名
    UPX! 或 UPX0、UPX1、UPX2
  2. 独特的节区名称
    UPX 处理后的 PE 文件通常包含特征明显的节区:
    UPX0 - 通常包含解压后的代码
    UPX1 - 包含压缩的数据
    UPX2 - 在某些版本中使用
  3. 入口点代码模式
    UPX 壳的入口点有特定的汇编指令模式:
    assembly
    pushad ; 保存所有寄存器
    ; ... 解压代码 ...
    popad ; 恢复所有寄存器
    PUSHAD 可能被改为等价的指令序列(如多个PUSH指令),或者被垃圾指令包围,但核心逻辑仍在。你会看到在保存寄存器后,紧接着是一大段复杂的循环、异或操作、MOV指令等,这符合解压代码的特征。
    PUSHAD 将所有寄存器压栈,导致ESP变化。解压代码通常不会在中间频繁操作栈,但在解压结束、执行 POPAD 之前,一定会恢复栈指针(之后的代码就是原始代码)。为了找到OEP,我们在PUSHAD(或多个PUSH保存寄存器操作)之后,对当前栈顶的内存地址下一个硬件断点即可。这个原理对许多UPX变种都有效。
  4. 资源结构异常
    UPX 压缩的文件通常:
    资源段很小或异常
    原始程序的资源被压缩到数据段中
    导入表被压缩和重建
  5. 动态行为分析
    在沙箱环境中运行程序并观察行为:
    内存解压模式:监控进程在运行时是否大量修改自身内存
    API 调用序列:检测典型的解压壳行为模式
    代码自修改:监控程序是否在运行时生成或修改可执行代码

绕过监测的技术:

  1. 修改 UPX 特征
    重命名 UPX! 签名和节区名称
    修改入口点代码模式
    使用自定义编译的 UPX 版本
  2. 多层加壳
    使用多个不同的加壳工具依次加壳:
    text
    原始程序 → UPX压缩 → 其他壳压缩 → 最终文件
  3. 加壳后修改
    在 UPX 压缩后手动修改文件,破坏特征签名但保持功能完整。
  4. 使用保护壳而非压缩壳
    使用 Themida、VMProtect 等高级保护壳,它们提供:
    1)反调试技术
    2)代码虚拟化
    3)更强的加密

UPX魔改对抗可看Linux | UPX变形壳脱壳Tips /// Linux | UPX变形壳脱壳Tips(Bak)

查看本机上的在线用户
>quser
査看本地用户组的名称
>Net Localgroup
 查看某个用户组中的成员
>Net Localgroup Administrators
添加用户组的成员
>net localgroup [用户组名称] [要添加的账号] /add
显示当前用户的登录ID
>whoami /logonid
查看当前操作系统版本信息
>wmic os get caption,csdversion,osarchitecture,version
检查当前shell权限
>whoami /user
查看安装的应用程序及版本信息
>wmic product get name,version
查询杀软
>WMIC /Node:localhost /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct Get displayName /Format:List
远程桌面连接历史记录
>cmdkey /l
远程桌面连接
>mstsc
远程桌面3389端口开启
>REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
(有的时候开了3389也不一定可以连接那就试试执行该命令解除访问限制)
>net stop mpssvc
>reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SecurityLayer /t REG_DWORD /d 0  /f & reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 0 /f  & reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v fAllowSecProtocolNegotiation /t REG_DWORD /d 0 /f
远程桌面3389端口关闭
>REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 11111111 /f
远程桌面3389端口关闭
>REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 11111111 /f
关闭防火墙
>Netsh advfirewall set allprofiles state off
查看当前登录域
>net config workstation
查看域的用户帐号列表
>net user /domain
查看某个域用户详情
>net user [域用户名] /domain
添加域用户
>net user [要创建的域用户名] [密码] /add /domain
查询域控主机名
>nltest /dsgetdc:[域名]
列出域之间的信任关系
>nltest /domain_trusts
查看所有域控
>net group "domain controllers" /domain
查询域列表
>net view /domain
判断主域
>net time /domain
查询同域的机器
>net view
查看域里的计算机
>dsquery computer
查看域用户
>dsquery user
查看网段的划分
>dsquery subnet
显示所有域控
>dsquery server

以下内容来自DeepSeek

证书最初可能是通过 certbot certonly --manual(手动交互模式)申请的,这种方式需要人工操作(如手动添加DNS记录或HTTP验证文件)。
自动续订时,Certbot 会尝试使用相同的插件(manual),但非交互模式下必须通过 --manual-auth-hook 提供自动化验证脚本,否则会失败。

解决方案
如果不需要手动验证(如DNS验证),改用 webroot 或 standalone 模式重新申请证书:

删除旧证书配置:
bash
sudo certbot delete --cert-name <sitedomain>
重新申请证书(以 webroot 模式为例) :
bash
sudo certbot certonly --webroot -w /var/www/html -d <sitedomain>
-w /var/www/html: 指定网站根目录(根据你的实际路径修改)。
-d <sitedomain>: 你的域名。
后续自动续订:
bash
sudo certbot renew --quiet
webroot 模式无需停止Web服务,适合自动化续订。

☁  ~  sudo certbot delete --cert-name <sitedomain>
Saving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
The following certificate(s) are selected for deletion:

  * <sitedomain>

WARNING: Before continuing, ensure that the listed certificates are not being
used by any installed server software (e.g. Apache, nginx, mail servers).
Deleting a certificate that is still being used will cause the server software
to stop working. See https://certbot.org/deleting-certs for information on
deleting certificates safely.

Are you sure you want to delete the above certificate(s)?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: yes
Deleted all files relating to certificate <sitedomain>.
☁  ~  sudo certbot certonly --webroot -w /var/www/html -d <sitedomain>
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Requesting a certificate for <sitedomain>

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/<sitedomain>/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/<sitedomain>/privkey.pem
This certificate expires on 2025-07-02.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
 * Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
 * Donating to EFF:                    https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
☁  ~  sudo certbot renew --quiet

看了几款wagon
真是心仪Audi S4 Avant
落地算上选配 差不多40个
我觉得30岁之前的目标就是这个了 30岁之前开上这辆车 走完祖国大部分我想去的地方
30岁之前就算过的不失败!

30岁之后再开始玩硬派越野

第一次过法定节假日的春节,从寒暑假的习惯中挣脱出来,还是不习惯。


我慢慢意识到 经过岁月洗礼之后依然保存的喜好 才是真正的喜欢
比如听歌 看书 看世界


好久没写代码 复工这几天没事 在办公室偷偷敲了敲代码
蹭热度也折腾了一下DeepSeek

同事们不是做技术出身 所以对技术的理解确实不一样
有时候感觉沟通起来还是有障碍的

我觉得我还是喜欢写代码 还有研究计算机 这样也好 保留了这份热爱
这不就是当初的愿望吗


想换电脑了 一方面可以换轻薄本改善生产力 一方面可以配台式机做自己喜欢的事
其实主要是手痒想打靶场了

但是要想好钱怎么花

马上过生日了 我想买一块Hamilton 也算是了却心里一直以来的愿望 24岁 也算有纪念意义
然后加上换电脑的费用 可能手机就得推迟了
不过也没事 手里还有一台荣耀 可以用到618


这两天和她的感情出了点问题
总结来说 就是互相都不是那么了解

她有些好胜,爱比较,爱教育我(这是老师的职业病?),现实,我能感觉出来她不是那种很愿意陪着另一半一起成长的女生。
还有一点很不好 生气的时候说话很没有分寸
这点和前任很像 但是有一点稍微好点 她确实不会说什么脏话
但是没有分寸这件事还是很不好 语言造成的伤害 一定是持久的
女生说话没分寸就算了 我能有什么反应呢?说回去就是互相伤害,这样对两个人都没有好处。所以我不会表现出什么。
一次两次我能自愈,但是次数多了呢?

她说过多次 自己是一个不会吃亏 不好说话的人

想到这些点…

里面有些点 之前就有感受到 我心里有所准备
但是 提前做的准备 有没有到能接受她的程度呢?
而且 还有一些点是最近才发现的 我又是否能接受?

往好的方面想,她冷静下来,心情平复下来的时候 性格是好的

但是很多时候伤害就是在激动的时候造成的

所以说 我确实对她的了解有限 还是慢慢再相处一段时间吧


有件事还是要反省
生气的时候还是要控制说话的声音

王赐说的话很对
嘴巴长在别人身上,我有什么办法?

所以以后再被别人误解 冤枉 说我的时候
就当对方是个sb
何必和sb动怒
嘴巴在它身上 随它怎么说吧


以为她会和我比较像 会能理解我的性格 想法
但是最近发生的一些事 让我觉得她不是那么能理解我

唉 这件事 倒也没什么
毕竟相处时间有限 经历的事情有限
不知道我的来时路 谈何能够理解我
从这一方面想 也不可能有什么人能够理解我

(nnd 想到现在 最能理解我的人可能就是pyq了 不过也确实 这么多年的交情 但是我上哪再找一个快20年一起过来的人…

她也没那么会关心我
发了很多给她看的动态 她也不会想为什么 也不会来问我
我不知道她心里是怎么想的 但至少看了之后她是没有反应的

我在想 是不是我的要求太高了…\苦笑


我觉得我要抽离出来
专注自己的事情
有空还是多和自己待一待

结构化数据是指按照一定的规则或格式组织存储的数据,例如数据库中的表格、电子表格、XML文件等。结构化数据具有以下特点:

易于查询和分析。由于结构化数据有明确的字段、类型和关系,可以使用标准的语言(如SQL)或工具(如Excel)进行快速有效的查询和分析。占用空间较小。由于结构化数据避免了重复和冗余的信息,可以节省存储空间。需要预定义模式。为了实现结构化存储,需要事先定义好数据的模式(schema),即确定好每个字段的名称、类型、长度等属性。这样做可以保证数据的一致性和完整性,但也限制了数据的灵活性和扩展性。
非结构化数据是指没有固定格式或规则组织存储的数据,例如文本、图像、音频、视频等。非结构化数据具有以下特点:

难以查询和分析。由于非结构化数据没有统一的字段、类型和关系,不能直接使用标准的语言或工具进行查询和分析。需要使用特定的方法(如自然语言处理、计算机视觉等)提取出有效信息。占用空间较大。由于非结构化数据包含了大量无关或冗余信息,占用了更多存储空间。不需要预定义模式。非结构化数据不受任何模式约束,可以随意添加或修改任何内容。这样做可以提高了灵活性和扩展性,但也降低了一致性和完整性。
半结构化数据是一种介于结构化数据和非结构化数据之间的数据类型,它不符合传统的关系型数据库或表格的格式,但是有一定的组织和规则,可以用标记、标签、键值对等方式表示数据的层次和语义。半结构化数据在现实生活中很常见,例如XML、JSON、HTML等文件格式,以及日志、电子邮件、社交媒体等文本信息。

半结构化数据相比于结构化数据,具有更大的灵活性和可扩展性,可以适应不同的场景和需求,不受固定模式或架构的限制。半结构化数据也相比于非结构化数据,具有更高的可读性和可处理性,可以通过一些工具或方法提取出有用的信息和知识,进行分析和挖掘。