Electron代码保护工程实践


发表于:2025年12月10日

Electron使用nodejs和前端代码来开发应用程序,我们先不说开发出来的应用的包大小问题,因为在今天硬盘和内存已经完全超量的情况下,一个Electron的应用跑起来简直太轻松了。

但是,Electron应用在发布的时候,只是简单的将代码打包,其源代码未受到任何保护。本文将介绍我在Electron应用源代码的保护过程中的实践。

Electron代码运行环境为两种:

  • 主进程中的代码
  • 渲染进程中的代码

在不同的进程中,对代码使用不同的保护方式。

主进程中的代码,可以直接使用bytenode编译为字节码。对于渲染进程中的代码,虽然bytenode也支持,但这是有条件的支持,需要设置nodeIntegrationtrue,开启node的集成才可以。

所以,这里的总体思路是,在主进程中的代码使用bytenode进行编译,渲染进程的预加载(preload)代码,使用javascript-obfuscator进行混淆。

>>>阅读全文<<<

在使用旧版的千牛时,经常出现软件无故崩溃。经过分析,发现是AlibabaProtect捣的鬼,这个时候,我们需要禁用掉AlibabaProtect

AlibabaProtect是阿里巴巴的全家桶插件,此进程不仅会占用大量内存和cpu性能,会在后台悄悄的监控你的上网过程,还在后台监控你的一举一动,然后给你精准推送广告,所以它不仅仅是一个文件,还是一个恶意软件。而且Alibabaprotect非常难删除,删掉后重启电脑又会自动出现,是一个名副其实的流氓软件。

你可以按照本文的步骤一步一步来禁用掉AlibabaProtect

>>>阅读全文<<<

央视网视频下载及花屏修复


发表于:2025年10月24日

CCTV央视网的视频在网页上观看的时候能正常播放,但能过工具下载后播放,视频会出现花屏。就像下图这样:

alt text

下面,我们将从下载到修复花屏一起介绍。

>>>阅读全文<<<

在前面的文章(https://www.lsz.sc.cn/posts/android-camerax/)中,我们是在视频信息的上面又放置了一层,用来绘制目标框,主要用来框出视频中人脸所在的位置。但在前面,我们只是简单的画了一个框,实际的应用要复杂一些。

在实际中,我们在进行目标检测的时候,传入的图片是摄像头原始的图片大小,所以目标检测方法得到的也是基于原始图片的人脸框的位置,我们如果根据原始图片中人脸的位置来绘制目标框,则肯定会是一个错误的位置。

>>>阅读全文<<<

2FA原理学习


发表于:2025年10月14日

现在大多数知名的网站(平台)都开启了两步验证,即在你登录的时候,除了需要验证账号和密码外,还需要验证2FA生成的密码。不过,国内的一些平台,一般是通过短信进行二次验证,要求高一些的,会要求人脸验证。

在十多年前,使用网银转账的时候,银行会给你一张动态口令卡,卡上有横坐标与纵坐标,在转账的时候,银行会要求你输入指定横坐标与纵坐标交叉位置数字来进行二次验证。

动态口令卡

另外,银行也提供另一种基于硬件的动态口令牌,口令牌会基于时间生成验证码。在进行转账操作的时候,会要求你输入口令牌上的数字进行验证。

动态口令牌

当然,我们普通的网站平台不会有这么高的要求。在国内由于实名制的原因,一般是通过手机短信进行二次验证。在国外,一般使用一种基于时间的一次性口令技术来进行二次验证。

>>>阅读全文<<<

[Android开发]摄像头使用


发表于:2025年09月21日

本篇是Android开发疲劳驾驶、人脸识别的基础篇。

在Android中,对摄像头的使用,主要依赖CameraX,我们将根据摄像头使用的范式(三板斧)来完成功能。

画面数据由摄像头产生后,经过SurfaceTexture,最终显示在View上,摄像头是硬件,会将产生的数据以帧的形式推送到SurfaceTextureSurfaceTexture会不断的将数据显示在View,但是并不一定会将每一帧都显示出来,每次显示的时候,都会显示最新的帧,过期的帧会被舍弃。

>>>阅读全文<<<

JNI极速入门


发表于:2025年09月18日

JNI(Java Native Interface,Java本地接口),是Java平台的标准组成部分,是Java与本地代码连接的桥梁。在Android开发中,普遍通过NDK来使用JNI。

用大白话说就是,要在Java中调用C/C++的函数,就需要用JNI。

NDK(Native Development Kit),是用于在Java代码中集成原生代码的工具集。

学习JNI,主要就是要明白JNI的规则:

  • 在Java中的命名是什么样的?
  • 在C/C++中的命名是什么的?
  • 他们是如何关联起来的?

当然,我们的学习还是要从基本的环境搭建说起。

>>>阅读全文<<<

Vosk有大模型和小模型两种,对应不同的使用场景。

大模型

大模型由于使用了先进的 AI 算法,所以要求的资源比较高,需要至少16GB的内存(RAM),主要用于在服务器上进行高精度的转录。

最新的大模型大小约2GB。

小模型

小模型大小仅仅约50MB,运行时内存(RAM)大约需要300MB,非常适合移动应用程序上的有限任务。可以在智能手机、Raspberry Pi 上运行。

当然也包括车机设备。

>>>阅读全文<<<

网站终于搞定了 - 使用帮助说明


发表于:2025年09月14日

听别人说,我们这批这年头还在还在搞自己个人网站、博客建设的人,一般发布的第一个内容都是教别人如何搞博客。我以为我会与众不同,就不写如何做。但等我做完后才发现,还是得写一下,不是为了教别人,是为了记录一下网站的功能与一些使用方法,要注意的配置太多,如果不记录一下,久了肯定得搞忘。

>>>阅读全文<<<

聊聊IPv4


发表于:2025年06月15日

前不久在抖音上刷到讲为什么局域网电脑IP能互通的问题,非常简单的用锁的概念来描述了同一网段能互通的问题。但视频中有很多内容和实际有点出入,想在这里简单的从计算机网络的角度来聊一聊这个问题。 原本想从网卡开始聊起,但写着写着,觉着这个内容太多了,又转到单纯的IPv4中来。

在IPv4网络中,正常情况下,只有在同一个网段的计算机才能直接进行通信,若不在同一个网段内,则需要使用其它的技术才能进行通信。

通常在说一个IP地址的时候,通常包含了一个隐藏条件:子网掩码。通过子网掩码和IP地址,一起来确定两个IP是否能直接通信。

>>>阅读全文<<<