- 博客(48)
- 收藏
- 关注
原创 Magisk的Root原理
Magisk通过修改Android系统镜像(如boot.img),在不触发安全检测的前提下实现Root权限。其核心原理是利用Magisk Manager注入自定义脚本,在系统启动时动态加载Root组件,同时隐藏Root痕迹,避免被应用或厂商检测到,从而实现无痕、稳定且兼容性良好的Root体验。
2026-11-04 18:22:13
74
原创 SpiderDemo挑战挑战11---验证码图片识别
本文介绍了验证码图片识别的技术挑战。验证码作为网络安全的重要组成部分,其识别过程涉及图像处理和机器学习等技术。文章将探讨验证码识别的关键难点和解决方案,帮助读者理解这一安全领域的核心问题。通过解析验证码识别技术,可以更好地认识网络安全防护机制及其突破方法,为相关研究提供参考。
2026-08-17 19:09:49
201
原创 SpiderDemo挑战8------字体乱码S
本文探讨了字体乱码问题,指出其原理类似于编码转换和映射。提供了两篇参考资料:一篇是Python爬虫中关于字体文件反爬的技术文章(简书链接),另一篇是关于自定义字体反爬的知乎讨论。这些资源详细解释了字体反爬机制及其应对方法,帮助读者理解字体乱码背后的技术原理。
2026-08-12 20:27:37
484
原创 SpiderDemo挑战1-----浏览器缓存控制台判断
本文探讨了浏览器缓存控制对请求头的影响及检测方法。作者通过分析spiderdemo第1题的请求头检测挑战,展示了如何复现并绕过请求头校验。文章重点指出禁用缓存会改变请求头和浏览器行为,提供了具体的网络调试步骤和截图说明,为开发者理解缓存机制与请求头校验的关系提供了实用参考。
2026-08-09 20:51:12
223
原创 抖看 -- 永久会员复现过程
本文介绍了抖看App永久会员功能的复现过程。通过分析会员验证机制,发现该App存在本地数据验证漏洞。具体实现方式为修改本地存储的会员状态标识和时间戳,绕过服务器验证。操作步骤包括:1)使用root权限访问应用数据目录;2)定位会员状态配置文件;3)修改相关参数为永久会员标识。该方法利用了客户端验证不严谨的安全缺陷,建议开发者加强服务端校验机制。注意:此类操作可能违反用户协议,仅供技术研究参考。
2026-08-02 17:08:54
215
原创 Master PDF Editor 逆向复现
摘要:本文介绍了对Master PDF Editor软件的逆向分析过程,重点展示了如何破解其商业授权验证机制。通过动态调试和静态分析相结合的方法,定位关键验证函数并修改跳转指令,成功绕过注册验证。文章采用技术性语言详细记录了逆向分析的关键步骤,为软件安全研究提供了实践案例。(98字)
2026-07-23 14:33:02
878
原创 一、主持人信息(域名 网站资产情报搜集)原理解析
文章摘要: 本文主要介绍网站资产情报搜集的方法,聚焦于通过域名查询获取网站主机信息。内容包括利用DNS解析工具(如nslookup、dig)获取IP地址、WHOIS查询注册信息、子域名枚举技术(如爆破、搜索引擎)等。通过分析域名关联的资产(如服务器、子站、证书),可全面掌握目标网站的基础设施情况,为安全测试或业务分析提供数据支持。
2026-07-21 20:17:07
209
原创 《安卓逆向这档事》demo6 ----正己大佬
本文介绍了Android应用签名校验的破解方法。作者通过分析发现缺少特定版本demo的去除教程,转而采用直接分析Java代码和修改smali代码的技术路线。文章指出签名校验可分为本地校验和在线校验两种,当前练习主要针对本地校验场景。对于简单情况,可通过直接修改APK程序实现破解;而更复杂的签名算法和在线校验则需要后续学习。作者认为通过分析hash校验逻辑并直接修改判断条件是最直接有效的方法,相比IO重定向等技术更加实用。
2026-07-19 19:44:05
665
原创 周志华《机器学习—西瓜书》九
本文介绍了机器学习中的聚类任务,主要包括以下内容: 聚类是无监督学习中最常用的任务,旨在将数据划分为不相交的簇,可用于探索数据结构或辅助其他学习任务。 聚类性能度量分为外部指标(如Jaccard系数)和内部指标(如DB指数),核心思想是簇内相似度高、簇间相似度低。 距离计算介绍了闵可夫斯基距离及其特例(欧氏距离和曼哈顿距离),以及针对无序属性的VDM距离和混合属性的MinkovDM距离。 聚类方法概述强调聚类标准取决于应用需求,并介绍三类主要方法:原型聚类(如k均值)、密度聚类(如DBSCAN)和层次聚类(
2026-07-12 12:07:20
311
原创 《安卓逆向这档事》demo5 ----正己大佬
本文介绍了一种绕过Android应用签名校验的方法。作者发现网上缺乏相关教程,转而通过jadx分析Java代码定位签名校验函数,使用NP管理器修改对应的smali代码。该方法直接修改判断逻辑,相比IO重定向等技术更为简单高效。文章还展示了具体操作步骤,包括修改smali判断逻辑的示例。作者认为这种基于hash逻辑分析并直接修改最终判断的方法简单实用,适用于各种签名校验场景。
2025-12-24 22:13:01
1220
原创 周志华《机器学习—西瓜书》八
集成学习通过组合多个学习器提升模型性能,核心原则是"好而不同":个体学习器需具备一定准确性且相互差异。主要方法包括序列化(如Boosting)和并行化(如Bagging)两类。Boosting通过调整样本权重逐步优化模型,而Bagging采用自助采样生成多个训练集并行训练。理论分析表明,个体学习器的准确性和多样性共同决定集成效果,但多样性度量仍存在局限。集成学习已成为机器学习竞赛和实际应用中的关键技术。
2025-12-21 23:45:23
492
原创 《安卓逆向这档事》demo4 ----正己大佬
摘要:本文详细介绍了Android逆向分析第四关的破解过程。首先通过修改AndroidManifest.xml文件开启调试模式,然后使用JEB工具分析APK代码,定位关键校验函数。通过设置断点、ADB调试和动态跟踪,最终获取到Base64编码后的正确密钥格式为"flag{*******}"。整个过程涉及smali代码分析、Java代码解析、动态调试技巧等逆向工程技术,展示了完整的密钥获取流程。
2025-12-19 22:13:42
596
原创 周志华《机器学习—西瓜书》七
摘要:本文介绍了贝叶斯理论在机器学习中的应用。贝叶斯决策论基于条件风险最小化,构建最优分类器。判别式模型直接建模后验概率,而生成式模型通过联合概率推导后验概率。贝叶斯定理将后验概率分解为先验概率、似然和证据因子。极大似然估计用于参数估计,而朴素贝叶斯分类器假设属性独立,简化联合概率计算。针对概率估计中的零概率问题,采用拉普拉斯修正进行平滑处理。这些方法为概率框架下的分类问题提供了理论基础和实用工具。
2025-12-17 22:58:54
952
1
原创 《安卓逆向这档事》demo3----正己大佬
本文介绍了三种去除Android应用广告的方法。首先通过Activity定位找到开屏广告Activity,将3000毫秒的等待时间改为0实现跳过;其次使用文字定位法搜索弹窗广告关键词,找到并注释show方法;最后借助算法助手工具,通过日志分析弹窗调用堆栈,定位并注释相关show方法。三种方法分别针对开屏广告、普通弹窗和更新弹窗,通过修改smali代码或结合工具分析,有效实现了去除各类广告的目标。
2025-12-15 22:54:54
1722
原创 周志华《机器学习—西瓜书》六
本文摘要: 《机器学习-西瓜书》第六章主要介绍神经网络模型。首先定义了神经网络是由适应性简单单元组成的并行互连网络,重点讨论了M-P神经元模型及其Sigmoid激活函数的优势。随后阐述了多层前馈网络的万有逼近能力,即通过足够多隐层神经元可逼近任意连续函数。针对过拟合问题,提出了早停和正则化两种缓解策略。最后回顾了神经网络的发展历史,从1940年代萌芽到2012年后深度学习兴起,呈现周期性发展规律,并特别介绍了CNN的发展历程。神经网络通过连接权和阈值蕴含知识,其强大表示能力使其成为机器学习重要分支。
2025-12-14 00:27:54
799
原创 《安卓逆向这档事》demo2----正己大佬
本文介绍了安卓逆向中修改APK判断逻辑的方法。首先通过MT管理器定位目标文本"一键三连"在classes.dex文件中的位置,然后分析相关代码逻辑。发现当p0==0时会跳转到会员充值提示,通过将if-eqz判断改为if-nez或直接注释该判断,即可绕过会员验证实现功能修改。整个过程展示了从文本定位到代码修改的完整逆向流程。
2025-12-13 00:19:20
464
原创 周志华《机器学习—西瓜书》五
本文介绍了支持向量机(SVM)的核心原理与求解方法。首先阐述了SVM的基本思想:在多个可能的分类超平面中,选择间隔最大化的"正中间"超平面以获得最佳泛化能力。通过数学推导,将最大化间隔问题转化为最小化||w||²的凸二次规划问题。重点讲解了SVM的对偶问题求解过程,包括拉格朗日乘子法的应用、KKT条件的推导,以及高效的SMO算法实现。SMO算法通过每次优化两个变量来高效求解大规模问题,最终得到稀疏的支持向量解。文章还详细说明了如何从对偶问题的解反推原始参数w和b,并强调了支持向量在确定决
2025-12-09 00:27:49
1001
原创 周志华《机器学习—西瓜书》四
本文介绍了决策树的基本原理和关键算法。决策树通过树形结构进行决策,内部节点对应属性测试,叶节点对应预测结果。核心算法包括递归划分属性和三种停止条件。重点阐述了三种属性划分准则:信息增益(ID3算法)、增益率(C4.5算法)和基尼指数(CART算法),并通过西瓜分类案例演示了信息增益的计算过程。文章指出,相比划分准则的选择,剪枝操作对决策树泛化性能的影响更为显著,是防止过拟合的主要手段。不同划分准则对模型性能影响有限,而合理剪枝可显著提升带噪数据的泛化能力。
2025-12-07 00:45:28
789
原创 周志华《机器学习---西瓜书》三
本文介绍了机器学习中的线性回归模型及其扩展。主要内容包括:1)基本线性回归模型的形式、求解方法和离散属性处理;2)多元线性回归的矩阵表示和最小二乘求解;3)线性模型的变化形式,如对数线性回归;4)广义线性模型的一般形式;5)二分类任务中的对率回归模型,包括对数几率函数的引入及其优势。文章详细推导了各种回归模型的数学形式和解法,并比较了它们的特性与应用场景。
2025-12-06 00:32:38
918
原创 《安卓逆向这档事》demo1----正己大佬
本文介绍了修改安卓应用界面元素的具体步骤,主要包括文字汉化和图片替换两部分。文字汉化通过界面分析APP定位控件信息,使用MT管理器提取安装包并搜索目标字符串进行修改;图片替换则通过获取控件ID,在资源文件中定位对应图片路径后替换。操作过程详细展示了从分析、定位到修改、签名的完整流程,适用于安卓应用界面元素的定制化修改需求。
2025-11-29 23:55:16
1043
原创 周志华《机器学习—西瓜书》二
《机器学习模型评估与性能度量方法》摘要 本文介绍了机器学习中的模型评估核心概念和方法。首先阐述了泛化误差与经验误差的区别,以及过拟合和欠拟合问题。重点讨论了三种主要评估方法:留出法(需保持数据分布一致)、k折交叉验证法(减少随机性)和自助法(改变数据分布)。在性能度量方面,详细讲解了错误率、精度、混淆矩阵、查准率(P)、查全率(R)及其综合指标F1度量(调和平均)和带权重的Fβ度量。最后指出模型比较需考虑统计显著性,介绍了交叉验证t检验和McNemar检验等方法。这些评估技术对确保模型泛化能力至关重要。
2025-11-28 23:52:52
593
4
原创 周志华《机器学习---西瓜书》 一
本文摘要: 《机器学习---西瓜书》第一部分介绍了机器学习的基础理论。主要内容包括:1)PAC理论,阐述模型预测结果与真实结果的误差概率关系;2)机器学习基础术语,详细解释了监督学习、无监督学习、训练数据、类别标记等核心概念;3)典型的机器学习过程;4)现实应用中强调定制化方案的重要性;5)归纳偏好原则,特别是奥卡姆剃刀原理,主张在性能相近时选择更简单的模型。文章通过图解和示例(如西瓜分类)帮助理解机器学习的基本框架和核心思想。
2025-11-27 23:38:09
1026
2
原创 ElGamal、Schnorr及 DSA 签名算法对比分析
本文对比分析了ElGamal、Schnorr和DSA三种基于离散对数难题的数字签名方案。ElGamal签名直接使用大素数模运算,签名结果为(r,s)对;Schnorr通过哈希压缩消息,签名结果为(e,s)对,计算量较小;DSA引入双素数结构平衡安全与效率,签名同样为(r,s)对。三者均依赖离散对数难题,但Schnorr和DSA通过优化参数选择降低了计算复杂度。验证过程均需进行模幂运算,但具体实现方式存在差异。总体而言,Schnorr计算效率最高,DSA在安全性与效率间取得平衡,ElGamal则提供最基础的理
2025-11-24 00:01:59
1210
原创 不止 HTTP:应用层协议家族的 “成员图鉴“
应用层协议是网络体系结构中的顶层协议,直接为用户提供服务。常见的应用层协议包括HTTP(超文本传输协议)、FTP(文件传输协议)、SMTP(简单邮件传输协议)等,它们定义了应用程序之间的通信规则和数据格式。这些协议建立在传输层协议之上,通过特定的端口号进行标识,实现各种网络应用功能。应用层协议的设计需要考虑效率、安全性和兼容性等因素,是互联网服务实现的关键技术基础。
2025-11-23 23:36:01
1153
原创 探索Windows DLL文件,发现隐藏的关键奥秘
文章摘要:kernel32.dll是Windows系统中的核心动态链接库文件,负责进程管理、内存分配等基础功能。该文分析了其关键作用与结构特点,并探讨了相关安全风险与防护措施。
2025-10-17 23:54:11
347
原创 DES 加密算法:核心组件、加解密流程与安全特性
DES对称加密算法摘要: DES是一种经典的64位分组加密算法,采用16轮Feistel网络结构。算法流程包括初始置换、16轮加密(每轮含扩展、异或、S盒替代、P盒置换)和末置换。DES存在4种弱密钥(加密=解密)和6对半弱密钥(相互加密可还原)。通过Python实现验证了DES加解密过程及弱密钥特性:弱密钥加密两次等于明文,半弱密钥对双重加密可还原原文。代码完整实现了密钥生成、Feistel函数、加解密流程及PKCS#7填充,并包含弱密钥测试案例。
2025-10-11 22:05:05
854
原创 《从零到精通:PyTorch (GPU 加速版) 完整安装指南
本文介绍了PyTorch(GPU加速版)的完整安装指南,帮助读者从零开始掌握安装流程。内容涵盖系统要求、CUDA驱动安装、PyTorch环境配置等关键步骤,特别针对GPU加速功能进行了详细说明。通过清晰的步骤指导和常见问题解答,使初学者能够顺利完成安装并验证GPU加速功能是否生效。
2025-09-22 22:57:25
2546
原创 揭秘互联网的隐形桥梁:HTTP协议与内外网划分全解析
超文本传输协议(HTTP)是互联网通信的核心桥梁,负责浏览器与服务器之间的信息交换,确保网页内容的高效与安全传输。它支撑着我们日常的网络活动,从浏览新闻到在线购物,无一不依赖HTTP的稳定运行。与此同时,内网与外网的划分是网络安全的重要基础。内网作为私有网络,保护着企业或家庭内部的敏感数据和设备免受外部威胁;外网则连接着全球互联网,提供广阔的信息交流平台。理解HTTP的工作机制及内外网的区别,有助于构建安全、高效的网络环境,提升网络管理和防护能力,为现代信息社会的稳定运行提供坚实保障。
2025-07-01 22:38:34
1013
原创 洞察攻击轨迹,守护网络安全——隐马尔可夫模型识别XSS攻击
摘要:本文介绍了隐马尔可夫模型(HMM)及其在XSS攻击检测中的应用。HMM是一种时序概率模型,由隐藏状态序列和观测序列构成,包含初始概率、状态转移概率和观测概率三个关键参数。文章详细阐述了HMM的三个基本问题:概率计算(前向-后向算法)、参数估计(Baum-Welch算法)和解码问题(维特比算法)。在XSS检测场景中,通过训练正常请求数据构建HMM模型,计算新请求的生成概率来识别异常。由于直接处理HTTP请求复杂度高,需要先进行URL解码和特征简化。该方法利用HMM的序列建模能力,通过概率阈值判断潜在攻击
2025-05-30 03:30:00
975
原创 隐式马尔可夫模型:破解XSS攻击的隐秘密码
本文详细阐述了隐马尔可夫模型(HMM)中基于EM算法的参数估计过程。首先,定义了EM算法中的Q函数,即在旧参数条件下隐藏状态序列的后验分布对完整数据对数似然的期望。通过前向后向算法计算隐藏状态的后验概率,实现E步的“软分配”估计。随后,在M步中利用这些期望统计量对初始状态概率、状态转移概率和发射概率进行最大似然更新。文章还结合变分推断视角,说明EM算法保证对数边际似然单调不降的理论基础。最后,介绍了基于对数似然增益的收敛判定方法,确保算法在达到预设精度或最大迭代次数时停止。
2025-05-29 01:01:15
185
原创 《恶意软件代码共享挖掘:基于Jaccard和Dice相似度的特征分析与图形可视化》
恶意软件相似度分析是识别和比较恶意软件样本之间共享代码的过程,尤其适用于APT(高级持续性威胁)攻击,因为攻击组织通常会复用恶意软件代码。共享代码分析通过比较预编译源代码的相似性,帮助识别来自同一恶意软件家族或工具包的样本。与共享属性分析不同,共享代码分析关注代码本身而非外部属性。常用的相似度计算方法包括Jaccard系数和Dice系数,前者衡量两组特征的重叠程度,后者则通过交集与并集的比例计算相似度。分析流程包括逆向工程提取二进制代码、特征提取(如可打印字符串)、相似度计算及可视化(如CSV文件、SVG热
2025-05-19 00:02:43
928
原创 黑客密码:解锁互联网提问的智慧密码
如果你还是找不到任何对你的问题有用的内容,请把你的问题发在与它最相关的网站上。本地的用户群组(user group),或者你所用的 Linux 发行版本也许正在宣传他们的网页论坛或 IRC 频道,并提供新手帮助(在一些非英语国家,新手论坛很可能还是邮件列表),这些都是开始提问的好地方,特别是当你觉得遇到的也许只是相对简单或者很普通的问题时。好问题是激励,是厚礼。在网页论坛上,好的提问方式稍有不同,因为讨论串与特定的信息紧密结合,并且通常在讨论串外就看不到里面的内容,故通过回复提问,而非改变标题是可接受的。
2025-04-24 17:13:18
941
原创 Google大规模数据处理:Bloom过滤器
浏览器通常使用Bloom过滤器识别恶意链接,警告用户访问的网站可能是钓鱼网站。请设计一个存储钓鱼网站的Bloom过滤器,存储已知的钓鱼网站,用户可以快速查询某个网址是否是已知的钓鱼网站。编写代码实现一个Bloom过滤器(Hash函数可以自己设计,也可以调用类似MD5、SHA1、SHA2的密码学Hash函数);使用Python列表存储位数组时,内存占用达4MB(远超理论值52KB)空间效率:95851位 ≈ 11.7KB,远小于存储所有URL的空间。MurmurHash3的快速哈希计算(约0.2μs/次)
2025-04-24 03:00:00
736
原创 Linux内核编译全流程详解与实战指南
将CONFIG_SYSTEM_TRUSTED_KEYS等号右侧字符串置空即可(在开发或测试环境中,我们可能不需要严格的模块签名验证)。(指定被吊销的密钥文件)如下图所示。将CONFIG_SYSTEM_EXTRA_CERTIFICATE_SIZE=1024,将数字1024改为4096。(定义了内核可以承载的额外证书空间大小(单位:字节):)将CONFIG_SYSTEM_EXTRA_CERTIFICATE_SIZE=1024,将数字1024改为4096。(定义了内核可以承载的额外证书空间大小(单位:字节)。
2025-04-23 21:57:40
1215
原创 Linux文件系统:结构与管理的核心基础
当你创建一个文件时,它的链接计数是 1,因为它是唯一指向该节点的文件。文件系统的基本数据单位是文件,它的目的是对磁盘上的文件进行组织管理,那组织的方式不同,就会形成不同的文件系统。然而,有时你可能会注意到,当你创建一个新文件时,它得到的索引号比其他文件低,这是因为一旦索引被删除,它们就可以被其他文件重用。,记录指向该 inode 的文件总数,这时会加 1,反过来,删除一个文件名,会减 1,当链接数变为 0 时,表明没有文件指向这个 inode 号码,系统就会回收这个 inode 号码与文件数据块区。
2025-04-23 00:08:34
970
原创 探索 Linux:文件与链接操作的奥秘
当创建硬链接时,两个文件(如 file1.txt 和 file2.txt)共享同一个索引节点,因此它们的内容是相同的。索引节点(inode):每个文件在文件系统中都有一个唯一的索引节点(inode),它包含了文件的元数据(如文件大小、权限、创建时间等)以及指向文件数据块的指针。索引节点(inode):每个文件在文件系统中都有一个唯一的索引节点(inode),它包含了文件的元数据(如文件大小、权限、创建时间等)以及文件数据块的位置。软链接(或符号链接)创建一个新文件,该文件“指向”它所链接到的文件的名称。
2025-04-01 23:33:54
1069
原创 《多线程与信号量编程:实现生产者-消费者模型的深入探讨》
在生产者-消费者问题中,生产者和消费者需要同步,以确保消费者在生产者生产数据后才能消费。在生产者-消费者模型中,互斥锁用于保护对缓冲区的访问,防止数据竞争。确保在访问共享资源的代码块中,互斥锁的使用是严格的,避免死锁。生产者在插入项目后,会输出当前的 empty 和 full 值,表示缓冲区的状态。由于生产者每秒生成一个项目,而消费者每五秒消费一个项目,生产者的生产速率明显高于消费者的消费速率。线程:是进程的一个执行单元,线程之间共享进程的资源,但每个线程有自己的栈和寄存器。线程的创建和管理比进程更轻量。
2025-03-30 18:47:40
977
原创 《线程大师——多线程高效处理》
线程同步问题:多个线程同时访问共享资源(如数组)时,可能会导致数据竞争(Data Race)和不一致的结果。进程与线程:线程是作系统调度的最小单位,是进程中的一个执行流在本程序中,使用了多个线程(sorting_thread 和 merging_thread)来并行执行任务。排序线程函数功能:线程执行的函数,对子数组进行排序。合并线程函数功能:线程执行的函数,对两个子数组进行合并。排序函数实现:使用选择排序算法,遍历子数组,将最小的元素放到正确的位置。参数:array:待排序的数组。线程启动后执行的函数。
2025-03-26 22:56:55
669
原创 基于SVD分解的图片嵌入
(水印嵌入)同学自由组队,每位同学任意选取彩色载体图像矩阵AMxNx3'Wmxnx3作为待嵌入水印的彩色图像矩阵,M>m,N>n,选择合适的水印强度参数 a,通过 SVD 将Wmxnx3嵌入到AmxNx3中,交给其他同学必须的数据进行水印的验证。将第二张图片的部分像素值隐藏入第一张图片中,由于特征值的改变,图片的黑白色度发生变化,由于嵌入的是隐藏图像的奇异值信息,输出图像与原始承载图像在视觉上通常非常接近。S_modified:承载图像的奇异值向量,将隐藏图像的奇异值按比例叠加到承载图像的奇异值上。
2025-03-23 20:33:17
814
原创 多进程编程之基本shell
实现 shell 接口的一种技术是让父进程首先读取用户在命令行中输入的内容(在本例中为 cat prog.c),然后创建一个单独的子进程来执行该命令。如果已满,先释放最早一条命令的内存,然后将后续命令向前移动,最后将新命令添加到队列末尾。重复执行历史命令时,先检查命令是否存在,避免执行无效命令。n时,将字符n转换为数字索引,并检查索引是否在有效范围内,避免执行不存在的命令。此外,覆盖历史命令时,未释放旧命令的内存,也会造成内存浪费。解决方法: 在覆盖历史命令时,先释放旧命令的内存,再添加新命令。
2025-03-21 04:00:00
716
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅