分类 折腾=-= 下的文章

事情要从给家里老人祝寿说起,说来惭愧,我连他老人家今年何寿都不知道。
老人家前些年因为脑血栓中风半身不遂,吞咽能力也差,稍微硬的完全嚼不动,随着年龄增大大脑功能进一步退化现在大小便也基本失禁,虽然表面上还能跟你沟通几句,但是长久接触就会发现记忆力和逻辑思维已经大受影响,简单些说就是老年痴呆了吧。
我认为自己算不上什么孝顺的人,父亲倒是十里八乡有名的孝子。老人家在我们家住了一段时间,后面因为脑子糊涂了总和父亲起矛盾不愿意待在我家。又辗转在我姑姑和大哥哪里呆过一段时间,最终还是回了老家搬迁后的房子。

回家祝寿

家里其他人都要上班,刚好我辞职在家要躺一个月,于是5.21买了点他老人家能吃的水果自己骑着两轮回了老家,上楼还没进门就闻到那股屎尿味了。 他坐在床边,裤子看上去是湿的,脚底下是一片腥臭混着不明絮状物的液体。 仔细一观察裤子形状我就确定他是拉裤子了,和他沟通换一条,刚开始还不愿意说吃完饭再换。“今天过生日,您肯定也希望自己干净体面些不是?” 也可能是孙子buff加成吧,我劝他一般比我爸劝好使。总归是劝动了,从楼下问了长辈衣物在哪 “又尿裤子了?”沉默一秒,“嗯” 转身回了楼上取来裤子,准备更换。
拉开裤子,果然,黄色的排泄物堆在裤兜。 气味刺鼻难闻,我没戴手套,也没戴口罩。好在也不是第一次遇到这情况了,早些时候也不少给幼儿园小孩子擦屁股,不算太慌。 我本想把裤子拖拽下来,但是地上的排泄物太过刺鼻,我差点就没忍住吐出来。 和他说了一声先去取了拖把,把地面简单处理了一下,减少令人作呕的气味。
中途他老人家吆喝着“快掉下来了!快掉下来了!” 好吧,总算是取得阶段性的胜利。楼下窸窸窣窣的脚步和说话声音传入房中,客人们也陆续到了。我关紧房门,终于是把裤子给他扒了下来。臀部沾黏着大片的黄色排泄物,又是一场攻坚战。
“好久没用纸擦屁股了” 他冷不丁的蹦出这句,让我有点懵逼。“那拿什么擦?” “不擦...”
我略微停了一下手上的动作,卫生纸擦了擦难以擦干净。
只能去找来一个看上去可能接过雨水的塑料盆,拿刷子和84快速刷干净打了盆水手忙脚乱取了说不清是拖布还是毛巾的毛巾替代品回房间。
打湿毛巾替代品用力擦洗臀部和肛周。 涮一涮,反复几次,再换了换水继续重复。擦到末尾,姑姑也到了把门打开接着我的工作继续。
“咦,怎么不戴手套?让我来!”
后面画面主题变成了他老人家的孝顺闺女和略显游手好闲的孙子......
在长久但没几句的尬聊后,除了身体不便的老人家大家陆续上桌。

无效的催婚

终于,催婚环节也到了我身上。我亲爱的亲友们开始讲述婚后给自己家孩子带娃的天伦之乐。 小侄女确实很可爱,可惜我在幼儿园呆过对小萝莉和难对付的魔丸法术抗性很高了,这点可爱是不可能推动我这个死宅的。如果不知道这个可爱的小萝莉的爷爷是前教体某大领导,我或许会对这些所谓的“天伦之乐”有些期待吧。
毕竟很难想象拿皮带抽出来我这种拿着大专文凭的网瘾青年的父亲能把下一代带出来个什么好样。 上完学,学过教育学和心理学过后的我 对教育出合乎我或者说社会大众期许的下一代实在没多少信心。
恐怕只能带出烷基八氮的后代吧。
在我表达出“时代不同”和长辈们的”丁克同事现状示例“作了对冲之后,小萝莉的父上开口说了点有用的 “不管你谈不谈对象,总要保持向上的态度不能颓废放弃总要充实提升自己“ 这不是原话,但是意思是这么个意思。
这大道理倒是完全没错,我还是很认同的,还是年轻人的更懂年轻人的沟通方式啊。所以在6.1参加完同学的婚礼之后,我还是得去找个工作干着,不可能一直在家坐吃山空。

老年人的无奈你无法体会

聊了这么多,只是想提醒大家,养儿防老不可靠,也不现实。
至于机器人养老之类的玩意,也许未来成本进一步降低会逐渐普及。
但是打铁也需自身硬,你要么有钱,要么保持好身体。 可惜就现在的社会用工环境,有钱和身体好这俩对大部分普通人都是不可兼得的。 但是你要是不注意,还玩命压榨自己,那很快你就知道职工医保也不是万能的了,伤身体的是你痛苦的也是你。
我现在都记得厂里一个师傅,在外面干了十几年,胃熬夜熬坏了。三十多岁看着跟四五十岁的人一样老。
至于积谷防饥,这条也不算可靠,因为政府会通过货币贬值的方式收割你,不要以为攒钱就能解决问题了,当然你说买实物黄金,那看看现在金价自己盘算吧,这个我是真不懂。

今天刷BOSS直聘看到有一个招游戏视频数据的,去问了问主要收集主流3A 游戏(SteamTop 2000)的游戏画面和键鼠交互操作。
看了看其他招聘岗位,大概知道未来会怎么样了。
也许在不久的未来,已经沦为黑奴的人工游戏搬砖/跑刀 这些底层行业未来会在AI搬砖的挤兑下彻底失业,提供情绪价值的陪玩才能在夹缝中勉强生存下来。
这和中央对数字经济的近期新闻态度契合,不愧是行业冥灯指谁谁死。🤣
经济萎缩的时代,AI的时代,资本主义的时代,蓄水池释放后逐渐干涸的时代。

在关闭Frp的tcp mux 后上传才正常持续,之前是小文件可以秒传卡100%,大就传一下等待一会儿就报错Network Error(仅使用Frp进行端口转发的情况下)如果再加上Nginx进行反向代理没有写明超时时间,默认60s就更完蛋了,给你报405/502/504等一串错误。
HK 大陆3网直连 200Mbps的VPS做转发,一个30MB的文件1MB分片已经传了十几分钟了,真的逆天啊我很难想想这性能瓶颈到哪里了,哪怕作为下载方的家宽服务器现在也有100Mbps下行,我本地直接5G流量居然还是这么龟速。 纯纯逆天。
折腾这个玩意真的让我力竭了,当然力竭的倒霉蛋也不只我一个,互联网上随手就能搜到类似的问题,而且最终说是解决的实际和没解决也区别不大,依旧是慢如蜗牛。

先来谈谈Frp TCP多路复用的逆天降速问题

看个帖子:tcpmux 会大幅降低链路速度#2987
看完你应该大致明白发生了啥,总之开发者们选择了稳定性,但是这在我的应用场景就很糟糕。
所以我最终选择了关闭TCP MUX。

Nginx 反代对Cloudreve的影响

首先,我刚才提过Nginx对前后端的默认的连接超时都是60s一超时就给前端返回504,所以你要么60s内传完,要么保障断开连接后自动重连。
当然,我们还有个更具备实操价值的办法😉:

  location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host; 
        proxy_redirect off;
        proxy_pass http://127.0.0.1:5212;  
        proxy_request_buffering off; # 禁用反向代理缓存
        proxy_read_timeout 3600s;   # 等待后端响应超时
        proxy_send_timeout 3600s;   # 发送请求体给后端
        client_body_timeout 3600s;  # 接收客户端请求体
        send_timeout 3600s;         # 发送响应给客户端

        client_max_body_size 0;     # 0 表示不限制请求体大小
    }

分片大小

在带宽足够的情况下,为了充分吃满带宽分片大小应该尽可能的大以提高[所求数据传输时间/协议开销时间]的值,拆分成小块发送意味着花费更多的时间在协议开销上。具体大小应该根据你自己的各级服务器带宽决定,如果带宽本身就很低或者波动明显,就适当调小维持稳定上传状态。
对于我的200Mbps上行的Frps和30上/100Mbps下的Frpc 我选择的分片大小是16MB。

Frps与Frpc 之间的协议效率

在理想的情况下,QUIC一定是最好的选择,如果网络波动明显只能退选KCP。但是考虑到实践中某些运营商对UDP流量极端的QoS策略,我只能选择TCP和基于TCP的协议。
在某些特殊环境下,开启流量加密是你不得不做的选择,但是如无必要加密和压缩两个都没有必要开,特别是设备cpu性能明显羸弱的情况下,开启流量压缩没有任何意义。

最后,看看更接近操作系统底层的地方

Linux之TCPIP内核参数优化

懒人方案:决定24H不睡迎接中秋节——顺便修一修linuxuser.site邮件服务器的严重不可用问题

162RMB/年的HK三网优化线路(目前IDC下单自动提供六折优惠,叠加互联网烂大街测评九折优惠码)

我很少在自己博客给IDC打广告,但是这个价格和性能真的强无敌,我只推荐下面俩款:

HK大陆三网优化

HK.AMD.D 1核1GB 10GB SSD 月流 500GB 带宽 200 Mbps ¥300¥180/年
香港VPS 大陆三网优化 (本博客同款,延迟已经很低,但比不过CNIX这种类专线性质的,适合一般免备案建站/NAS Frp转发用途)

HK非大陆优化(送CNIX入口)

HK.BGP.A 1核1GB 10GB SSD 月流 1TB 带宽 500 Mbps ¥168 238¥/年
送香港BGP国际网络云主机 原生IP 送CNIX NAT入口 AMD 7542 NVMe
(这个得抢购,没有CNIX配置能力或者不愿意加预算买国内大厂前置鸡的就没必要。)
至于啥是CNIX,请看:前海交换中心成立的目的与意义

推荐的IDC全部产品列表

所有产品列表

其他?

这公司域名备案的,你去ICP备案查 yt.net,想想2字符.net域名什么含金量。

切线公告

得益于过去随手记录的好习惯,本次访问线路切换速度非常快。当你看到本文章时,博客和Linux用户站已经完成线路切换了,欢迎来到ipv4 only 快如闪电的新时代!

厂商型号:YR-CP100
主板版本:CP102-MAIN-V2.2
主要芯片:RG200U-CN V3MF-D10-DDC(移远通信)
其他硬件:塑料外壳,3根FPC天线(疑似5G/4G),2根WIFI天线。1个USB Type-C 接口,1个RJ45网线接口。
开盖后取下主板风扇可见各个模块及2个SIM芯片(预计为移动和电信)还有一个空SIM芯片引脚,以及一个没有引出接线位置的SIM卡槽标识位置。

固件备份

经过不懈努力终于在一众工具中找到了我能正常使用的备份工具。
除了spd_dump是可用的,还有SPRDC_Core也是可用的。但是这两个工具对本设备仍然有一些概率性的玄学问题,比如莫名其妙的信号灯超时时间已到报错。
备份分区表:

<?xml version="1.0" encoding="utf-8"?>
<Partitions>
  <Partition id="prodnv" size="4" />
  <Partition id="miscdata" size="1" />
  <Partition id="recovery" size="16" />
  <Partition id="misc" size="1" />
  <Partition id="trustos" size="1" />
  <Partition id="sml" size="1" />
  <Partition id="uboot" size="2" />
  <Partition id="boot" size="16" />
  <Partition id="system" size="53" />
  <Partition id="userdata" size="0xFFFFFFFF" />
  <Partition id="nr_fixnv2" size="6" />
  <Partition id="nr_runtimenv2" size="9" />
  <Partition id="nr_pmsys" size="1" />
  <Partition id="nr_agdsp" size="6" />
  <Partition id="nr_modem" size="27" />
  <Partition id="nr_v3phy" size="6" />
  <Partition id="nr_nrphy" size="3" />
  <Partition id="nr_nrdsp1" size="2" />
  <Partition id="nr_nrdsp2" size="2" />
  <Partition id="nr_deltanv" size="1" />
  <Partition id="ubipac" size="248" />
</Partitions>

这个东西的价格和性能符合我的预期,到的第一天内置移动卡5G测速150Mbps下 50Mbps上,不过这个WI-FI性能就比较怪异了,特别是延迟极端的不稳定,插线用倒是完全没问题,跟手机USB网络共享的热点延迟一致。

简单逆向分析

通过hexdump查看分区镜像文件数据头部的魔数(Magic Number)为:DHTB
xfox@fedora:~/Dev/YR-CP100$ hexdump /home/xfox/Dev/YR-CP100/all_part_backup/system_payload.bin -C | head -5
00000000 44 48 54 42 01 00 00 00 00 00 00 00 00 00 00 00 |DHTB............|
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000030 00 2e df 01 00 00 00 00 00 2e df 01 00 00 00 00 |................|
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
查询相关资料可以确定这是紫光展锐设备特有的DHTB分区格式Dynamic Hybrid Trusted Boot,根据已有信息,DHTB分区会把原始分区放置在DHTB数据头后。
直接使用ImHex编辑器查看整个system.img发现0x1000处出现了68 73 71 73 -> hsqs字样。
结合DS对hexdump回显的前几十行原始数据的分析:

根据你之前 hexdump 的结果:
在 0x30 处的值 00 2e df 01 (小端序为 0x01df2e00,约30MB) 很可能指示了**某个数据段的长度。**
在 0x1000 处出现了 68 73 71 73 (hsqs),这很可能是**一个有效数据块的起始标志**,但它不是UBI格式。
因此,你的 system.img 结构很可能如下:
偏移量 0x0:    DHTB 文件头 (包含长度等信息)
偏移量 0x1000:  某个数据块开始 (可能是压缩的映像,如 squashfs)

所以确定原始分区是一个基于Linux的SquashFS只读压缩文件系统,通过dd命令取出原始分区:
dd if=system.img of=system_payload.bin bs=4096 skip=1
SquashFS分区镜像可以直接挂载。

确定架构

cat /etc/os-release
ID=unisoc-initgc
NAME="unisoc-initgc-distro"
VERSION="udx710-module+unisoc-initgc-1.0+W25.38.5:10.52.14+user+native (sumo)"
VERSION_ID=udx710-module-unisoc-initgc-1.0-w25.38.5:10.52.14-user-native
PRETTY_NAME="unisoc-initgc-distro udx710-module+unisoc-initgc-1.0+W25.38.5:10.52.14+user+native (sumo)"
DISTRO_CODENAME="sumo"

从Yocto sumo的时间点看貌似是2018年的老版本了,Linux Kernel 4.14.98估计是厂商提供给开发者的SDK。
比较有趣的是,解包后里面开发者写的后台PHP代码基本上和安全俩字没什么关系,连我这个纯外行都能看出来有明显的漏洞,群友们表示尝试过修改镜像并刷回但是因为没有厂商提供的证书签名启动不了。
所以后续Crack完全没必要改来改去硬刷镜像,理论上可以通过Web渗透完成既定目的。

2026年1月26日,Got Shell!

昨天通过对后台PHP代码的查看确定了后台处于不设防的状态:

    function quoteArgument($value) {
        return empty($value) ? "'null'" : "'{$value}'";
    }

    function quoteArgument_int($value) {
        return empty($value) ? "0" : "'{$value}'";
    }

    function execShell ($cmd) {
        $result = shell_exec($cmd);
        $json = json_decode($result);

        if ($json->result === 0)
            return "success";
        else
            return "error";
    }

今天一通尝试,终于构造了post请求拿下了root shell,看/usr/bin有adbd看起来可以启用adbd.
/etc/init.d/下发现了adbd-init 当然,默认是没启用。

2026年1月27日

扒拉到/etc/usbenum/usbenum.ini

[machine]
machine=udx710-module
[property]
virtualcn=0
diag=1
log=1
debug=1
usbch=mode0
iq_vser=close
udc=29100000.dwc3
afterpowerloss=1
#virtualcn 0-rndis|1-ecm|2-ncm|3-mbim|4-8*AT|5-1*ecm|6-2*ecm|7-3*ecm|8-4*ecm|9-1*ncm|10-2*ncm|11-3*ncm|12-4*ncm|13-test

看上去我完全有机会使用USB cdc-ncm 替换RDNIS,当然...前提是能修改好镜像。
似乎可以通过overlay完成对SquashFS的写入存储?但是一改/etc/fstab就涉及现有鸡还是现有蛋的问题了,早于系统启动之前完成修改是不可能的,最终还是得诉诸于修改和重新打包刷入system镜像。

示例 僵尸恐慌—起源 Zombie Panic Source

参考资料:engine.so: cannot enable executable stack as shared object requires: Invalid argument
启动日志:

xfox@fedora:~/.local/share/Steam/steamapps/common/Zombie Panic Source$ ./zps_linux 
SDL video target is 'x11'
SDL video target is 'x11'
This system supports the OpenGL extension GL_EXT_framebuffer_object.
This system supports the OpenGL extension GL_EXT_framebuffer_blit.
This system supports the OpenGL extension GL_EXT_framebuffer_multisample.
This system DOES NOT support the OpenGL extension GL_APPLE_fence.
This system supports the OpenGL extension GL_NV_fence.
This system supports the OpenGL extension GL_ARB_sync.
This system supports the OpenGL extension GL_EXT_draw_buffers2.
This system supports the OpenGL extension GL_EXT_bindable_uniform.
This system DOES NOT support the OpenGL extension GL_APPLE_flush_buffer_range.
This system supports the OpenGL extension GL_ARB_map_buffer_range.
This system supports the OpenGL extension GL_ARB_vertex_buffer_object.
This system supports the OpenGL extension GL_ARB_occlusion_query.
This system DOES NOT support the OpenGL extension GL_APPLE_texture_range.
This system DOES NOT support the OpenGL extension GL_APPLE_client_storage.
This system DOES NOT support the OpenGL extension GL_ARB_uniform_buffer.
This system supports the OpenGL extension GL_ARB_vertex_array_bgra.
This system supports the OpenGL extension GL_EXT_vertex_array_bgra.
This system supports the OpenGL extension GL_ARB_framebuffer_object.
This system DOES NOT support the OpenGL extension GL_GREMEDY_string_marker.
This system supports the OpenGL extension GL_ARB_debug_output.
This system supports the OpenGL extension GL_EXT_direct_state_access.
This system supports the OpenGL extension GL_NV_bindless_texture.
This system DOES NOT support the OpenGL extension GL_AMD_pinned_memory.
This system supports the OpenGL extension GL_EXT_framebuffer_multisample_blit_scaled.
This system supports the OpenGL extension GL_EXT_texture_sRGB_decode.
This system supports the OpenGL extension GL_NVX_gpu_memory_info.
This system DOES NOT support the OpenGL extension GL_ATI_meminfo.
This system supports the OpenGL extension GL_EXT_texture_compression_s3tc.
This system supports the OpenGL extension GL_EXT_texture_compression_dxt1.
This system DOES NOT support the OpenGL extension GL_ANGLE_texture_compression_dxt3.
This system DOES NOT support the OpenGL extension GL_ANGLE_texture_compression_dxt5.
This system supports the OpenGL extension GL_ARB_buffer_storage.
This system DOES NOT support the OpenGL extension GLX_EXT_swap_control_tear.
OpenGL: NVIDIA GeForce RTX 3060 Laptop GPU/PCIe/SSE2 4.6.0 NVIDIA 580.119.02 (4.6.0)
GL_NV_bindless_texture: DISABLED
GL_AMD_pinned_memory: DISABLED
GL_ARB_buffer_storage: AVAILABLE
GL_EXT_texture_sRGB_decode: AVAILABLE
 failed to dlopen /home/xfox/.local/share/Steam/steamapps/common/Zombie Panic Source/bin/engine.so error=/home/xfox/.local/share/Steam/steamapps/common/Zombie Panic Source/bin/engine.so: cannot enable executable stack as shared object requires: Invalid argument
AppFramework : Unable to load module engine.so!
Unable to load interface VCvarQuery001 from engine.so

修复方案:

execstack -c "~/.local/share/Steam/steamapps/common/Zombie Panic Source/bin/engine.so"
如果你使用了其他存储设备存储steam游戏库,应修改为对应的挂载位置。

问题原因:

GNU C 库 2.41 版本现已发布:如果共享库要求,dlopen 和 dlmopen 不再使栈可执行,可能是因为缺少 GNU_STACK ELF 头部(以及默认 ABI 权限对可执行位的设置),或者显式地因为 GNU_STACK 中有可执行位,而栈本身还不是可执行的。相反,加载此类对象会失败。

在这个内存暴涨的时刻,从万能的某宝完成了一次超出某宝默认售后期限的换货。
实际上在这篇文章发布之前找到下载文件损坏和Windows蓝屏崩溃软/硬重启的元凶:光威战将DDR4 3200Mhz 16G*2内存我就已经出现了一些奇奇怪怪的错误,但是直到最近CSGO频繁出现文件错误需要重新校验的问题我才意识到原来这些问题本质上都是内存条的故障导致的。
作为测试的一部分,洗个澡回来接着打CS直到报错为止(之前通常打开一局进入地图时或进入后几秒就报错,为此导致我多次官匹竞技被禁赛掉分)。
打了几把确实没有再出现内存问题导致的报错。
就是比较难受的是原来的是套条,现在这两根一条黑PCB一条绿PCB,neurax看了照片告诉我颗粒一个三星一个镁光,三星那个颗粒还不是一个批次。 就这,还能组成双通道,型号也打的同一个型号,实在是抽象。 除非够便宜不可能再买光威的内存条了,混的有点让人不爽。