跳到主要内容

6 篇博文 含有标签「技术」

查看所有标签

· 阅读需 4 分钟
Seven Wate

自己一条龙研发的 Halo 博客主题 Redemption 最近也是发布了首个正式版,在博友杜郎俊赏提供的 CleanCSS 工具下麻溜地搞定了,同时又添加了一些自己的想法。主要思路是首页做减法:删减无用代码文件、压缩静态资源体积,同时完全不影响首页的内容展示。

问题场景

整体未优化前

如上图博客首页未优化的加载速度,需要 2.03 秒并且存在可优化的余地。优化方案主要从静态资源、样式表、字体这三个方面出发。整套操作步骤下来,实测速度提升了近 5 倍。

0.内容分发(CDN)

傻瓜式优化就是 CDN,各个云服务厂商都有提供。最简单最省事最有效,CDN 具体优化步骤可根据厂商提供的文档操作。(有的要钱有的不要钱,有的好用有的不好用)

1.静态媒体资源

图片优化效果

首页如果有媒体资源,例如图片、Logo 等。那么最简单的方法就是压缩图片体积,便捷高效的提升首页加载速度。

2.CSS/JS 代码

如果想优化 CSS/JS 代码文件,可以尝试在博友杜郎俊赏提供的 CleanCSS 中一键优化代码。

CleanCSS 第一次直接优化了之后提升明显,但是发现 remixicon.css 字体图标有问题。然而这个优化还是最大问题,毕竟加上字体 1.3s,遂又找了其他方法实现(后来发现是我没用明白 CleanCSS 🤣)。

后来在 GitHub 上找到开源项目 UnCSS ,其提供了简单的在线优化,使用了一下满足需求足够用了。最后再利用在线 CSS/JS 压缩体积工具,就大功告成!

css优化

3.优化字体

常见的优化就是 CDN、静态资源、CSS/JS 代码,这里我为了追求更极致的速度,将字体文件也进一步优化。优化方向稍微偏激了,根据实际情况来。

因为 remixicon.css 的字体图标文件只用了几个,所以我利用 Github 上 font-spider 将无用的字符进行删减。如下图所示可以发现,字体删减优化是质的改变,体积缩减了近 70 倍!

font-spider优化

优化后

整体优化后

在特定问题场景下,通过一套操作优化后的首页体积仅仅 35kB,加载时间 597 毫秒。就连 CDN 都不用套,全国平均访问延时 0.6s。需要注意的地方是,优化字体比较偏激可能导致页面显示不正常。其次我为了避免其他页面出现未知错误,利用代码进行判断仅仅对首页进行了优化。

现在 H5 的 CSS 样式库越来越多了,网页效果越来越优美了,同时也变得臃肿了起来。不过只要网速快,优化个毛线!奥里给!!!

· 阅读需 3 分钟

img

Redemption 一款专注阅读、写作的 Halo 博客主题。主要设计思想即是专注阅读、写作,是一款极简类型的博客主题。

Redemption 部分设计灵感借鉴 Halo 博客 Zozo 主题,感谢各位前辈的无私开源。特意针对首屏加载进行优化,无需 CDN首屏 0.7s 内加载完成。全尺寸媒体自适应查询以及自适应深/浅色模式,让你专注写作,不带感情!

预览

预览

主要功能

  • 专注阅读写作设计
  • 深 / 浅色自适应模式
  • 全尺寸布局媒体自适应
  • Markdown 样式设计
  • 社交链接展示
  • 支持独立页面

安装方法

  1. 远程拉取:https://github.com/7Wate/halo-theme-Redemption 复制地址点击下载
  2. 本地上传:在 Github国内 gitee 下载) 页面,下载压缩包然后上传安装。

主题配置

  • 自定义博客标题以及短语,并填写对应备案号。
  • 自定义显示开往十年之约的 logo。

社交链接

  • 自定义关于页面、Github、哔哩哔哩、邮箱链接。

评论设置

  • 自定义开启评论,默认关闭。

正常启用评论,需要编辑主题在 /source/plugins/comment/halo-comment.min.js 文件中修改 {baseUrl:"https://blog.7wate.com/"} 双引号内的地址为你的博客地址。

为了适配主题风格,Fork 了官方仓库的评论组件。

组件仓库:7Wate/halo-comment-normhalo-theme-Redemptional

图库设置

  • 自定义是否显示图库。
  • 自定义图库页面标题以及短语。

许可证

GPL-v3.0 协议开源,请遵守开源协议。

来源:Halo 主题 Redemption 首发版 - 7Wate‘s blog;非商业引用,著作权归作者所有。

· 阅读需 1 分钟
Seven Wate

Hello Halo

如果你看到了这一篇文章,那么证明你已经安装成功了,感谢使用 Halo 进行创作,希望能够使用愉快。

相关链接

在使用过程中,有任何问题都可以通过以上链接找寻答案,或者联系我们。

这是一篇自动生成的文章,请删除这篇文章之后开始你的创作吧!

· 阅读需 11 分钟
Seven Wate

无意间发现 CSDN 显示自己拥有九年码龄,就勾起了很深的记忆。那时刚开始接触程序设计的时候,经常接触到易语言、精益论坛、吾爱破解、看雪论坛等等。所以就一个一个登录查看有没有当年留下的痕迹……

邮箱群发

帖子

当时是在精益论坛接的一个 200 元的一个单子,然而写好以后又被放鸽子……

最后就开源放了出来,找不到源码了,蛮简单的一个邮件群发助手,简单测试功能还可以用!

软件界面

邮件

附件功能应该是有 BUG 了,其他的正常使用;顺带附一下帖子地址和软件地址,满足一下各位好奇心。

帖子地址:QQ群发利器_精易论坛 (125.la)

软件地址:QQ群发利器软件

Algorithm : SHA256
Hash : 01E1E277B9BC173BA5E3A75E3D42E1AF18EA974AC91F42E8940AAE6FD1473452
Path : C:\Users\ZZP\Downloads\Compressed\QQ群-发利器\QQ群发利器.zip

洛克王国

其实一开始我是做外挂出身的哈哈哈,其中洛克王国辅助外挂做的时间最长,简单记述分享一下当年巧遇 BUG 的事情,防止多年以后遗忘。

洛克王国是一款网页游戏,如果了解过相关的知识;就会知道这种游戏离不开数据包,所有游戏的操作都是基于数据包来完成的。当然所有类型的游戏互动都是基于数据包的,但是外挂不只有单一的数据包类型的外挂,在此仅简述数据包类型辅助外挂。

洛克王国简单来说就是一个宠物养成游戏,最枯燥的事情就是宠物升级需要不停的打怪。因此诞生了许多辅助外挂,当时最快的外挂辅助从 1 级到 100 级满级需要 2 小时 15 分钟左右;

因为洛克王国是一个偏向青少年的游戏,在其更新过防沉迷机制后,只有 4 个小时可以正常获取打怪经验。但是官方存在这样一个机制,就是在一个特定的场景:大剧院(就是在游戏内观看各种官方的电影等……),不会增加游戏时间。所以很多辅助外挂根据这个机制,衍生了很多延长获取经验时间的相关功能。

而我这当时发现这个 BUG,只需 12 分钟,对于当时游戏机制及其他辅助外挂是颠覆性的。

一个简单的打怪场景

如果在游戏内与场景怪物战斗升级,就会与服务器进行数据包通信。类似于 TCP 的三次握手、四次挥手。例如

  1. 客户端:我要与编号 0001 怪物战斗。
  2. 服务器:收到编号 0001 怪物战斗请求,当前地图场景编号是否 0001 的我需要确认一下?
  3. 客户端:我确定在编号 0001 怪物的地图场景,我要开始战斗了。
  4. 服务器:战斗开始校验……
  5. 客户端:我要用技能 A,干它。
  6. 服务器:技能 A 使用成功。
  7. 客户端:我要用技能 B,干它。
  8. 服务器:技能 B 使用成功。
  9. 服务器:怪物死亡……
  10. 服务器:宠物 A 获取 100 exp(经验)。

这是一个简单的战斗过程,实际校验以及数据包通信比较复杂繁琐。这时你可能想,我直接给服务器说怪物死亡,获取经验不完了。你想要的可能结果是这样的:

  1. 客户端:怪物死亡……
  2. 服务器:战斗异常(这玩意脑子抽风了?客户是上帝我还是委婉点。)

当时基本上 95% 的外挂辅助都是基于此原理开发的,通过不断重复的与服务器进行数据包通信,借此达到宠物升级的目的。

大剧院机制

不过后来大剧院的机制,很多外挂辅助便在进入战斗,确认战斗场景以后。更换场景进入大剧院,接着完成剩下的数据通信。简单来说就是在上述第 5 步之前,与服务器进行数据包沟通更换场景,然后继续战斗,以便达到节省正常游戏经验获取时间。因为并不影响游戏体验,所以官方是默许此机制存在的。

而且官方其实开发的也有外挂辅助,只是以民间的名义存在罢了。当时手动升级一个宠物需要一周左右,太影响游戏体验了,而且当时市面的游戏辅助并不影响 TX 挣钱,所以……

检测机制

当时作为外挂辅助开发者,我是不满足长达 2 个小时的时间,就一直在摸索官方的检测机制。因为数据包通信必须存在一定间隔,因为你不可能这样通信:

  1. 客户端:我要与编号 0001 怪物战斗。
  2. 客户端:我确定在编号 0001 怪物的地图场景,我要开始战斗了。
  3. 客户端:我要用技能 A,干它。
  4. 客户端:我要用技能 B,干它。
  5. 服务器:傻 X ……

所以当时每个数据包通信间隔最少需要 600ms(约为 0.6 秒),正是因为这个机制所以一只宠物需要 2 个小时才可以升到 100 级。

发现 BUG

当时反向思维搞了一波,就是如果数据包通信间隔过快,官方是如何检测我的违规操作,并进行封禁处理呢?

简单尝试一下,发现官方并不是检测到你状态异常,直接对你的用户状态进行封禁。而是很莫名其妙的,用这个机制进行封禁……

  1. 客户端:我要与编号 0001 怪物战斗。

100ms

  1. 服务器:收到编号 0001 怪物战斗请求,当前地图场景编号是否 0001 的我需要确认一下?
  2. 客户端:我确定在编号 0001 怪物的地图场景,我要开始战斗了。

100ms

  1. 封禁服务器:这 B 太快了,封禁。
  2. 封禁服务器:这 B 在那个地图?跟谁战斗?找到他封禁!
  3. 客户端:已被封禁

可能是因为每个功能具体分工不同,而且也不明白为什么要在游戏内找到这个角色再进行封禁……

基于这个机制,我是这样搞得哈哈h

  1. 客户端:我要与编号 0001 怪物战斗。
  2. 服务器:收到编号 0001 怪物战斗请求,当前地图场景编号是否 0001 的我需要确认一下?
  3. 客户端:我确定在编号 0001 怪物的地图场景,我要开始战斗了。
  4. 服务器:战斗开始校验……
  5. 客户端:我要用技能 A,干它。
  6. 客户端:哎、我跑到这个地图了。

1ms

  1. 客户端:我要用技能 B,干它。
  2. 客户端:哎、我跑到这个地图了。

1ms

  1. 客户端:我要用技能 C,干它。
  2. 客户端:哎、我跑到这个地图了。

1ms

  1. 服务器:技能 A 使用成功。

  2. 服务器:技能 B 使用成功。

  3. 服务器:技能 C 使用成功。

  4. 服务器:怪物死亡……

  5. 服务器:宠物 A 获取 100 exp(经验)。

  6. 封禁服务器:这 B 太快了,封禁他

  7. 封禁服务器:这 B 在那个地图?跟谁战斗?找到他封禁!

  8. 地图服务器:在 001 地图(此时用户又更换了地图场景 002)

  9. 封禁服务器:找不到啊,赶紧告诉我位置!

  10. 地图服务器:在 002 地图(此时用户又更换了地图场景 003)

  11. 封禁服务器:找不到啊,赶紧告诉我位置!

  12. ……

简述如上,封禁服务器一直在屁股上追着你,而且永远追不到你!就这样每个数据包通信为 1ms,升级时间从两个小时缩短到 12 分钟。

后续

后续,我还没有发布这个版本,官方便停服维护了,进入战斗后 10 秒吧,禁止移动游戏场景……

我现在不开发外挂,Over!游戏外挂和逆向破解挺有成就感的,不过可不要贪杯哦哈哈!

接下来的日子,砥砺前行!

CSDN

· 阅读需 3 分钟
Seven Wate

爸妈的手机太卡了,就考虑换手机。最后决定买了 VIVO IQOO3 Neo。OPPO 和 VIVO 作为蓝绿大厂,高价低配,主营三四线城市饱受诟病。现如今积蓄了足够的资本,也开始冲击中高端市场。那便简单写篇开箱测评!

展示图

首图

硬件

IQOO Neo3 是 VIVO 一款搭载了高通骁龙 865 处理器,支持双模 5G 全网通,采用 Wifi6 标准的中高端机型。同时 Neo3 还搭载了新一代 UFS 3.1 闪存,屏幕方面 Neo3 则采用了 6.57 英寸挖孔全面屏,拥有 90.4% 屏占比,并且配置 144Hz 高刷新率,显示顺滑流畅。

续航方面,Neo3 拥有一颗 4500mAh 容量电池,采用 44W Super FlashCharge 闪充技术,58分钟可充入100%的电量,足够日常使用。

摄影方面,Neo3 使用了前置1600万像素单摄,后置4800万像素主摄 + 800 万像素超广角 + 200 万像素微距摄像头的三摄方案。

IQOO3 Neo 测评汇总图

相机

VIVO IQOO Neo3

小米 MIX3

不知道如何测评比较好,简单的使用两款手机,专业模式下相同参数拍的同一时刻的照片。

第一张图为 VIVO IQOO Neo3、第二张图为小米 MIX3

总结

VIVO IQOO Neo3 于 2 月 14 日 2600 元购于京东,总体来说这个价位,拥有着骁龙 865 + 8G 运行内存 + 128 储存内存和双模 5G,少有媲美者了。不要跟我抬杠,抬杠你就是对的哈哈哈。总之给父母用,再也不会出现卡顿什么乱七八糟的事,加上父母也比较中意 OPPO 和 VIVO 的手机。

第一次测评,期待继续努力!

· 阅读需 6 分钟
Seven Wate

昨天下午一位公务人员通过朋友联系到我,需要我帮忙恢复执法记录仪中的视频文件。因为他不知道执法记录仪的工作原理,所以导致一个重要的执法视频被覆盖。我了解后,觉得有几率恢复,便有了这次数据恢复的经历。

数据恢复基本常识

首先对于电子文件的损坏,无外乎以下两种损坏的方式。

物理损毁

就是指存储电子文件的物理硬件:磁带、磁盘、光盘等损毁,因为物理元件的损毁导致文件修复难度极大,所及基本上 99% 的物理损毁很难被修复,同时文件的价值也可能不值得我们去修复(物理损毁修复价格及其昂贵)。

逻辑损坏

逻辑损坏有很多种,常见的就是电子文件被删除,覆盖,格式化等。逻辑损坏修复的可能性较大,同时修复的价值相对物理损毁较低,所以大部分的逻辑损坏都是可以尝试修复的,这也是我觉得能恢复上述的原因。

恢复方式

大多逻辑损坏可以通过市面上常见的数据恢复软件修复,例如 DiskGenius 就一款专业级的数据恢复软件,同时也不乏其他好用的软件,需要各位自行体验了。

文件修复过程

  1. 执法记录仪是惠普的 DSJ 系列之一,拥有官方的桌面管理工具,通过阅读说明书发现连接记录仪需要禁用驱动程序签名强制,具体操作可以 Google。
  2. 连接执法记录仪,登录软件,进入U盘模式。
  3. 通过使用数据恢复软件,查找到近两年的视频文件。
  4. 恢复视频文件,发现视频文件无法打开。
  5. 猜测视频文件头可能损坏,使用视频修复工具修复。
  6. 文件修复成功,但视频错乱,只修复了部分帧数。

首先在成功连接执法记录仪后,便先用了 DiskGenius,但发现恢复的是一些无用文件。便找到了另外一款,该软件成功恢复了视频文件的目录,所以我觉得还是挺有希望的。26G 的视频恢复了一个多小时,但是恢复之后只有几个视频文件可以打开。

这个时候心凉了一半,觉得可能要出糗了。但是根据我多年的行业经验和直觉,我觉的还有救。使用十六进制编辑工具打开视频,果不其然有救。至于为什么有救,因为我之前逆向研究过 GIF 的文件格式,所以我猜测,文件头可能是损坏的,但是视频的部分帧数可能还没有被覆盖。但是现在去哪里找一个这样的工具,总不能现成写一个吧。

不过还真就找到了这样的一个工具:Video Repair Tool,通过它我成功的修复了部分未覆盖的视频帧数 。后来还是没能帮上忙,执法视频文件在 1 月 17 日,我只找回来到 1 月 31 日的部分视频文件。

杂谈

简单的描述了一下这次的文件恢复,其实我没有这项技能的。只是凭借多年的行业经验和直觉,我才揽下这个小 case 的。

后来 Google 了一下,看到了挺多对数据恢复和销毁的观点。这里我也简单谈一下自己的看法,欢迎各位交流。

对于销毁文件,因为电子文件是被人为的创造出来的,所以它不存在销毁的决无踪迹。但是你可以销毁它存在的记录,使其恢复的成本提高。为什么要这样说,因为毕竟猴子算法都存在可能性,所以任何文件都有被修复或创造范本的可能性存在。

但是如何提高文件的恢复成本,网上有很多种说法:全覆盖 35 次,0 填充一次,扔进火堆哈哈。我认为在不损害物理硬件的前提下,理论上三次全覆盖擦写,找回的可能性就如同猴子算法的平均时间复杂度一样 O(n × n!)。

希望大家多了解一下相关的知识,务必不要让自己的文件损毁。我之前一块 2T 移动硬盘坏掉了给我心疼的,心疼着心疼着我还是没想起来里面到底存了啥哈哈哈。

硬盘有价、数据无价!