本地怎么使用unity官网的资源
资源已经购买添加到个人的名下,在我的资源中点击 “在Unity中打开” 无法启动 unity hub 打开项目
浏览器中输入 “unityhub://” 可以正常唤起 Unity Hub ,点击 “在Unity中打开” 在网络请求中提示错误如下
显示为请求了一个 com.unity3d.kharma:content/195698 地址,然后出现 “(已取消)” 的状态
com.unity3d.kharma:// 似乎是一个 Unity 旧的资源商店 (Asset Store) 协议 ,新的协议应该是 unityhub://
将请求修改为 unityhub://content/195698,然后直接在浏览器中打开,弹出 Unity Hub 后,显示一个错误如下,似乎编辑器版本的问题?
估计是待打开项目的编辑器版本 …
nginx部署goaccess监控
前言 要在 nginx 中增加 流量访问的统计功能,可以通过以下几种方式实现:
1、通过分析 nignx 的日志
2、使用 ningx 的模块,如 ngx_http_stub_status_module 以及第三方的 nginx 组件
3、使用第三方监控,如Grafana + Prometheus、ELK Stack、Zabbix 等
其中组件 ngx_http_stub_status_module 提供的监控信息比较基础,如果需要更详细的监控需要引入其他的组件,在部署上相对麻烦
第三方的监控方式,是比较成熟的商业解决方案,但是部署上比较麻烦,通常用于企业部署,个人部署倾向使用 goaccess 来分析 nginx 日志进行监控
部署 goaccess 是轻量级的开源解决方案, …
软件反调试(9)- 基于文件完整性的检测
前言 在前面的文章中,提到了一些基本的反调手段,事实上大部分的手段都作用不大,因为太容易被绕过了,只是从理论角度进行反调的学习
这里稍微升级一下,从基于文件完整性的角度进行反调试的学习,在这之前,补漏说明一下基于时间的反调
基于时间的反调理论也很简单,就是在关键代码前记录一下时间戳,接着在关键代码后记录一下时间戳,然后计算运行关键代码的时间差
通常来说,在没有被调试的情况下,运行关键代码的耗时不会太久(假定 100ms 内肯定能运行完毕),如果关键代码被调试了,那么这个时间差就会变大超过 100ms
实际反调的时候,对应的伪代码类似如下
ULONGLONG start = GetTickCount64(); //significant code ULONGLONG end = GetTickCount64(); …
软件反调试(8)- 基于SEH异常的检测
反调原理 异常处理 SEH(Structured Exception Handling)是 windows 提供的一种结构化异常处理机制,用于捕捉并处理运行时异常(如除以零、访问无效内存等)
基本结构如下
__try { // 可能抛出异常的代码 } __except(EXCEPTION_EXECUTE_HANDLER) { // 异常处理代码 } 目标程序在被调试时,程序触发的异常会被调试器优先处理,而不是程序的 SEH 来处理
调试器先收到 “first-chance exception” 通知,如果调试器选择不处理,异常将会传递给程序的 SEH 来进行处理
如果 SEH 也不处理该异常,调试器将会再次收到 “second-chance exception” …
软件反调试(7)- 基于NtSetInformationThread设置线程信息
反调原理 NtSetInformationThread 和 ZwSetInformationThread 是本质相同的函数,Nt 位于 ntdll.dll 模块,在用户模式下供应用程序调用
Zw 位于内核模式中,供驱动/内核模块使用,它们的调用关系如下
NtSetInformationThread -> syscall -> 内核 -> ZwSetInformationThread(或统一的内核服务处理函数)
通过 NtSetInformationThread 设置线程的某些属性,可以对调试器的行为造成干扰,最常见的反调试用途是 隐藏线程
函数原型如下
__kernel_entry NTSYSCALLAPI NTSTATUS NtSetInformationThread( [in] …
hugo博客优化PasteImage以及其他
前言 之前的博客是使用 halo 进行搭建的,前段时间迁移到了 hugo 构建,在 halo 中文章的图片是保存到自建的 easyimage 图床上的
在迁移到 hugo 后,图片不再需要保存到图床上,直接保存在 md 文件的当前目录下即可,基于 hugo 的配置,完整路径为 /archives/xxx/phndmy.png 这种格式
其中 xxx 为当前 md 文件的目录,phndmy 为图片的随机名称,在 vscode 中本身也支持 ctrl + v 粘贴剪切板中的图片,但并不支持这种自定义路径和随机文件名
PasteImage插件 vscode 插件市场里面有很多同类插件,其中安装量最大的是下面这款,从最后 commit 的时间来看,已经是 6 年前的了
查看该插件的配置说明,也并不支持这种自定义路径和随 …
软件反调试(6)- 基于NtQueryInformationProcess的检测
反调原理 NtQueryInformationProcess 是一个未公开的函数,函数原型如下,关于函数的更多信息可以参考官方的文档 MSDN
__kernel_entry NTSTATUS NtQueryInformationProcess( [in] HANDLE ProcessHandle, [in] PROCESSINFOCLASS ProcessInformationClass, [out] PVOID ProcessInformation, [in] ULONG ProcessInformationLength, [out, optional] PULONG ReturnLength ); 使用 ProcessInformationClass 字段赋予不同值的方式来进行检测
0x00 检测PEB结构 …
软件反调试(5)- 基于注册表实时调试器检测
反调原理 当程序发生异常崩溃的时候,如果设置了系统的调试器,那么就会启动调试器来调试该异常
这个信息是记录在注册表中的,win32 和 win64 版本分别是两个不同的路径,Debugger 表示调试器路径,Auto 为 1 表示启用自动附加调试
//32 位调试器的注册表路径 HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug //64 位调试器的注册表路径 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug 在调试器中也可以进行设置,设置后将会覆写注册表这里的配置项,在程序发生异常时将会启动新设置的调试 …
基于悬浮球快速启停ssr进程
前言 路由器安装了 openwrt 并启用了 ssr 实现了分流,但是由于插件或者 ip 库存在一些问题,导致部分流量并没有按预期的走,这引发了很多不必要的麻烦
插件的代码逻辑,短时间内也没精力去研究怎么优化,只能暂时通过手动 start、stop 规避,而且在路由器的 web 管理页面,发现只能开启而不能停止
然后为了停止插件,还必须得登录路由器的终端,手动去运行命令实现停止,即便在 web 页面上可以 stop,每次登录 web 去停止是一件极其麻烦的事
因此,编写了一个小工具实现手动 start/stop 路由器的 ssr 插件,在 windows 本地运行一个悬浮小球,类型于 360 加速小球这种
在路由器运行一个 lua 脚本,提供一个启停 ssr 的接口,本地悬浮小球实时显示路由器 ssr 插件的运 …
clawcloud测评
前言 最近准备入手一台海外的 vps,在网上了解了一下,一些人在推 claw cloud 的机器,总体评测还不错
考虑到国内的延时,然后就入手了一台香港的 claw vps,使用官方的优惠码,2C4G 的机器年付花了 48 刀,人民币 346,汇率 7.22
结果给踩坑里去了,延时实在是太高了,考虑退款的,还得扣 10% 的手续费,什么事都没干就抽 10%,先留着吧,后面再看怎么利用起来
itdog ping测试如下,全部是橙黄色的,延时都在 300 以上,这是在早上低峰期 ping 的,网上高峰期 ping 的话接近 500
使用 opentrace 测试节点线路,发现是绕美国去了,然后再打道回日本,最后到达香港
延时都不是最大的问题,最大的问题是掉包严重,部分地区访问掉包率超过了 10%,网上高峰期掉包更加 …
加速访问基于hugo部署的静态博客站点
前言 前几天使用 hugo 构建了博客,并部署到了 github pages 上,然后通过托管在 cloudflare 上的域名进行访问
在魔法加持的情况下,表现没有任何异常,但是关闭魔法后,访问域名就出现间歇性抽风,通过 itdog 测试 ping 延时的部分情况如下
国内大部分地区访问均出现严重丢包的情况,一些地区的 dns 解析直接被污染了(如下面的甘肃兰州)
对于移动线路的访问,情况就更加严重了,请求全部都是失败的,看起来 github pages 在移动线路是被完全 block 掉了
迁移cloudflare 基于国内环境对 github 访问的严重破坏,考虑迁移到 cloudflare 的 pages 上来(当然 cloudflare 的默认访问也是被严重破坏的,迁移后再进一步优化) …
Securecrt丢失tab以及终端重新配色
今天在使用 Securecrt 的时候,发现 Securecrt 的 tab 标签消失不见了,仔细回想起来,应该是上一次误按了 alt + enter 最大化,然后导致配置丢失的问题
还有表现就是菜单中的 Session Tabs 无论勾选还是不勾选都没有任何变化,以及 Full Screen 菜单当时是灰色不可操作的(之前没截图)
问了 gpt 以及网上搜了一遍,Securecrt 的配置也仔细看了一遍,没有找到有效的解决方案
只好尝试将配置文件 C:\Users\Administrator\AppData\Roaming\VanDyke\Config\Global.ini 重命名 backup 起来,然后重启 Securecrt 进行配置初始化
这时候 tab 显示恢复正常了,但是所有 Session 的配 …
基于hugo的静态博客站点部署
前言 之前写的一些文章,基于 halo 搭建了一个个人站点,运行也有半年多了,大概就长下面这个样子
我没有专门研究怎么配置它的 theme,不过我看有些人整得挺拉风的,最近在考虑迁移到 hugo, 以后记录就使用静态站点了
至于迁移到原因,主要有以下几个点吧
1、服务器要花钱,halo 服务是部署在阿里云的,之前 99 一年买的小鸡,现在已经没优惠了,续费的话费用至少得大几百
2、halo 基于 java 开发的,内存占用实在有点高,再加一个 mysql,内存就没有了,因为请求量也不多,cpu 倒是没什么占用
3、人工运维,hugo 虽然说整体也挺稳定,但是半年来也死机过两三次,不确定什么原因,但从表现看就是内存耗尽了,只能重启机器
4、发布流程麻烦,涉及环节多,最开始登录 web 发布 mardown,需要额 …
软件反调试(4)- 基于IsDebuggerPresent的检测
反调原理 该检测方式使用 IsDebuggerPresent 或者 CheckRemoteDebuggerPresent 函数,这两个函数都是 kernel32.dll 中实现的
对于 IsDebuggerPresent 函数,如果返回值为 TRUE,那么表示当前进程在调试器上下文中运行
CheckRemoteDebuggerPresent 的底层是通过 NtQueryInformationProcess 函数来实现的,函数接受一个 BOOL 的指针参作为返回值
函数调用成功的时候返回非零值,这时候检查出参 pbDebuggerPresent 指针的值,如果值为 TRUE,那么表示当前进程正在被调试中
使用这两个函数需要引用 windows.h 头文件,函数的原型分别如下
BOOL …
B站图片资源无法加载
访问 B 站出现大面积失败的情况,很多的 hdslb.com 资源显示连接超时,了解到这里 https://v2ex.com/t/666462
然后更新了域名的 host 配置,然后就可以正常访问了
查看本地 dns 的配置,两个配置分别为 8.8.8.8 和 1.1.1.1,跟踪路由发现也是正常的
域名解析涉及到的有以下几个,如果还有其他失败的域名也得继续替换,直到全部正常为止
s1.hdslb.com
i0.hdslb.com
i2.hdslb.com
配置 host 时每个域名对应的 ip 地址,可以在站长之家中查看,如:https://ping.chinaz.com/s1.hdslb.com
从解析到的 ip 地址列表中选择其中一个进行替换即可