当前位置: 首页 > article >正文

OllyDBG逆向分析入门:手把手教你调试微信程序(附常用快捷键大全)

OllyDBG实战指南从零开始掌握Windows程序调试艺术最近有不少朋友在后台留言问我怎么开始学习逆向分析。说实话这个领域确实有点门槛但只要你掌握了正确的工具和方法其实并没有想象中那么难。今天我就以大家最熟悉的微信为例带你一步步走进OllyDBG的世界看看这个看似神秘的调试器到底能做什么以及如何用它来理解程序的运行逻辑。我刚开始接触逆向的时候总觉得这些工具是“黑客”专属后来在实际工作中才发现调试器其实是每个开发者都应该掌握的基本技能。无论是排查程序崩溃、分析第三方库的行为还是理解系统API的调用方式一个得心应手的调试器都能让你事半功倍。OllyDBG作为Windows平台最经典的调试器之一虽然界面看起来有些复古但其功能之强大、操作之灵活至今仍让很多现代工具望尘莫及。这篇文章主要面向有一定编程基础但对逆向分析还比较陌生的开发者。我会尽量避开那些晦涩的理论直接从实际操作入手让你在动手的过程中逐渐理解调试的核心思想。不用担心我们不会涉及任何敏感或违规的操作所有的示例都基于合法、合规的学习目的。1. 调试环境的搭建与准备在开始调试之前我们需要先搭建一个合适的工作环境。很多人一上来就直接打开调试器结果发现各种问题其实准备工作做得好后续的操作会顺畅很多。1.1 OllyDBG的安装与配置首先需要获取OllyDBG。虽然官方版本已经停止更新但社区维护的版本依然活跃。我推荐使用OllyDBG 1.10版本这个版本相对稳定插件生态也比较丰富。安装过程很简单基本上就是一路“下一步”但有几个关键配置需要注意插件管理OllyDBG的强大之处很大程度上来自于丰富的插件生态。我常用的几个插件包括OllyDump用于脱壳和转储进程PhantOm反反调试插件对付一些有保护的程序命令行插件增强命令行功能书签插件方便标记重要位置注意插件不要一次性装太多根据实际需要选择。过多的插件可能会导致调试器不稳定。安装完成后第一次启动时建议进行一些基础设置。打开“选项”菜单进入“调试设置”这里有几个关键选项需要调整; 调试选项配置示例 [Debugging] Exception handling 记录所有异常 Pause on new thread 是 Break on module load 否内存访问设置也很重要。对于初学者我建议先不要开启“内存访问中断”否则程序每访问一次内存都会中断调试体验会很差。等熟悉基本操作后再根据需要开启特定的内存断点。1.2 目标程序的选择与准备选择合适的目标程序对学习调试至关重要。我选择微信作为示例主要是因为它大家都很熟悉理解起来没有障碍功能相对复杂包含了GUI、网络、文件操作等多种类型的代码是合法的商业软件学习调试技术完全合规在开始调试前有几个准备工作要做关闭程序的自动更新调试过程中如果程序自动更新会导致地址变化之前的分析就白费了准备测试账号不要使用自己的主账号创建一个专门用于测试的小号关闭杀毒软件某些杀毒软件可能会干扰调试器的正常工作备份重要数据虽然调试一般不会破坏数据但以防万一这里有一个常见的问题很多人在附加进程时发现程序立即崩溃。这通常是因为程序有反调试机制。对于学习目的我们可以先调试一些没有保护的小程序等掌握了基本技能再尝试更复杂的场景。调试难度推荐程序适合阶段注意事项初级记事本、计算器完全新手无保护代码简单中级小型开源工具掌握基础后有源码参考理解更深入高级商业软件熟练之后可能有保护需要技巧1.3 调试心态与学习方法调试技术的学习曲线比较陡峭刚开始可能会觉得一头雾水。我建议保持这样的心态不要试图一次性理解所有东西。逆向分析就像拼图先找到边缘碎片再慢慢填充中间部分。第一次调试时可能连界面上的按钮是干什么的都不知道这完全正常。我的建议是先从最简单的功能开始比如找到某个字符串在内存中的位置记录下每一步操作和观察到的现象遇到不懂的指令及时查阅文档或资料多动手尝试即使失败了也能学到东西还有一个重要的原则只用于学习和研究目的。调试技术是一把双刃剑要用在正道上。我们学习调试是为了更好地理解计算机系统的工作原理提高自己的编程和调试能力而不是为了破解或侵犯他人权益。2. OllyDBG界面深度解析第一次打开OllyDBG很多人会被它复杂的界面吓到。其实只要理解了各个窗口的作用就会发现它的设计非常合理。让我们逐一拆解这个“控制中心”。2.1 主界面布局与核心功能区OllyDBG的主界面分为四个主要区域每个区域都有特定的用途反汇编窗口左上这是你花费时间最多的地方。它显示的是CPU实际执行的机器码对应的汇编指令。对于微信这样的程序你可能会看到成千上万行汇编代码但别担心我们不需要全部理解。; 典型的汇编代码示例 00401000 /$ 55 PUSH EBP 00401001 |. 8BEC MOV EBP,ESP 00401003 |. 83EC 20 SUB ESP,20 00401006 |. A1 00304000 MOV EAX,DWORD PTR DS:[403000] 0040100B |. 8945 FC MOV DWORD PTR SS:[EBP-4],EAX寄存器窗口右上显示CPU各个寄存器的当前值。对于x86架构最重要的寄存器包括EAX、EBX、ECX、EDX通用寄存器用于计算和数据传输ESP栈指针指向当前栈顶EBP基址指针用于访问函数参数和局部变量EIP指令指针指向下一条要执行的指令内存窗口左下可以查看和编辑进程的内存。这是理解程序数据结构的窗口你可以看到字符串、数组、结构体等在内存中的实际布局。栈窗口右下显示当前的调用栈。当程序调用函数时返回地址、参数、局部变量都会被压入栈中。通过观察栈的变化可以理解函数的调用关系。2.2 工具栏与快捷键体系OllyDBG的工具栏按钮很多但常用的就那么几个。我建议先掌握这几个核心按钮运行F9让程序继续执行暂停F12暂停程序执行单步步入F7执行一条指令如果遇到CALL指令会进入函数内部单步步过F8执行一条指令但把CALL当作一条指令执行运行到返回CtrlF9执行到当前函数的RET指令提示刚开始学习时可以把手放在键盘上多用快捷键操作。熟练使用快捷键能极大提高调试效率。除了这些基本操作还有一些高级功能需要了解表达式计算器CtrlG可以快速跳转到指定地址。比如你想查看0x401000地址处的内容直接按CtrlG输入地址即可。注释功能;键可以在代码旁边添加自己的注释。这是非常重要的学习工具当你理解了一段代码的作用后及时添加注释方便以后回顾。标签管理CtrlL可以为重要的地址创建标签。比如你找到了微信的消息处理函数可以给它起个有意义的标签名这样在代码中引用时就清晰多了。2.3 自定义界面与工作流优化OllyDBG的界面是可以高度自定义的。根据我的经验合理的界面布局能显著提升调试效率。我通常这样设置调整窗口大小把反汇编窗口调大一些因为这是主要工作区固定常用窗口把寄存器和栈窗口放在显眼位置自定义颜色方案给不同类型的指令设置不同的颜色比如跳转指令用蓝色调用指令用绿色保存布局设置好后保存为默认布局这里有一个小技巧你可以创建多个不同的布局配置文件针对不同的调试任务快速切换。比如分析算法时需要一个布局跟踪UI消息时用另一个布局。3. 调试实战从附加进程到断点控制理论讲得再多不如实际动手操作一遍。让我们以微信为例看看完整的调试流程是怎样的。3.1 进程附加与初始化调试启动微信后打开OllyDBG选择“文件”菜单中的“附加”。你会看到一个进程列表找到微信进程通常是WeChat.exe。这里有个细节需要注意64位系统上可能有32位和64位两个版本的进程微信一般是32位的。附加成功后程序会立即暂停。这时候不要急着按F9运行先做几件事检查模块列表AltE看看微信加载了哪些DLL查看入口点OllyDBG会自动停在程序的入口点附近设置初始断点我习惯在MessageBox或CreateWindow等API上设断点这样可以快速定位到UI相关的代码; 在API上设断点的示例 BP MessageBoxA ; 在MessageBoxA函数开始处设断点 BP CreateWindowExW ; 在创建窗口的函数上设断点附加进程时可能会遇到一些问题这里总结几个常见情况问题现象可能原因解决方案附加后立即崩溃程序有反调试使用插件绕过或先运行再附加无法找到进程权限不足以管理员身份运行OllyDBG附加成功但无法中断调试选项设置问题检查“选项-调试设置”3.2 内存查看与数据探索内存是程序的“工作空间”所有数据都在内存中。OllyDBG提供了强大的内存查看功能其中最常用的是dd、dc、du这三个命令。dd命令Display DWORD以十六进制和ASCII形式显示内存。比如你想查看0x401000开始的内存dd 00401000输出结果类似这样00401000 55 8B EC 83 EC 20 A1 00 U‹ìƒì ¡. 00401008 30 40 00 89 45 FC 8B 45 0.‰Eü‹Edc命令Display Chinese专门用于显示中文字符。在分析微信这样的中文软件时特别有用dc 00F2E8B0如果内存中包含中文字符串你会看到正确的显示。du命令Display Unicode显示Unicode字符串。Windows内部很多字符串都是Unicode格式的du 00F2E8C0实际使用中我经常结合这些命令来探索数据。比如在微信中搜索好友昵称先通过字符串搜索找到昵称在内存中的位置用dc命令查看该位置的内容观察周围的内存看看有没有相关的数据结构这里有个实用技巧内存断点。当你发现某个重要的数据比如登录状态标志可以在该内存地址上设置访问断点或写入断点。这样当程序读取或修改这个数据时调试器就会中断你就能知道是哪段代码在操作这个数据。3.3 断点系统的深度应用断点是调试器的灵魂。OllyDBG支持多种类型的断点每种都有其适用场景。普通断点F2是最常用的。在反汇编窗口中将光标移到某行代码上按F2就设置了一个断点。当程序执行到这行代码时就会暂停。条件断点更加智能。右键点击断点选择“编辑条件”可以设置触发条件。比如EAX 0x12345678只有当EAX寄存器的值等于0x12345678时断点才会触发。这在排查特定条件下的bug时非常有用。硬件断点通过CPU的调试寄存器实现数量有限通常4个但功能强大。可以设置在内存访问、内存写入、指令执行等事件上。设置方法在内存窗口或寄存器窗口右键选择“硬件断点”。内存断点分为访问断点和写入断点。当程序访问或修改特定内存区域时触发。设置方法在内存窗口中选中一段内存右键选择“断点-内存访问”或“内存写入”。我个人的经验是合理组合使用不同类型的断点。比如用普通断点跟踪程序流程用条件断点过滤无关的中断用硬件断点监控关键数据的访问用内存断点追踪数据流的变化注意断点不要设置太多否则程序会频繁中断影响调试效率。我一般同时保持3-5个活跃断点根据需要动态调整。4. 逆向分析的核心技巧与实战案例掌握了基本操作后我们来探讨一些进阶技巧。这些技巧能帮助你在复杂的程序中快速定位关键代码。4.1 字符串搜索与交叉引用分析在逆向分析中字符串往往是重要的突破口。微信这样的程序包含了大量的字符串资源错误信息、菜单文本、对话框标题、日志消息等。OllyDBG内置了字符串搜索功能右键-搜索-所有参考文本字符串。搜索到字符串后双击可以跳转到引用该字符串的代码位置。这是理解程序逻辑的捷径。比如你在微信中搜索“登录成功”找到这个字符串后查看哪些代码引用了它很可能就找到了登录验证相关的函数。从这些函数开始分析逐步理清整个登录流程。交叉引用XREF是另一个强大的功能。在某个地址上右键选择“查找参考”可以看到所有引用该地址的代码。这对于理解函数调用关系、数据流走向非常有帮助。; 交叉引用分析示例 ; 假设在00401500处有一个函数 ; 查看谁调用了这个函数 XREF to 00401500 from 00401234 XREF to 00401500 from 00401345通过分析交叉引用你可以构建出函数的调用图理解程序的模块结构。4.2 API监控与系统调用跟踪Windows程序大量使用系统API。监控API调用是理解程序行为的重要方法。OllyDBG可以设置API断点当程序调用特定API时中断。常用的API断点包括文件操作CreateFile、ReadFile、WriteFile网络通信send、recv、connect注册表操作RegOpenKey、RegSetValue进程线程CreateProcess、CreateThread设置API断点的方法BP CreateFileA BP send当断点触发时观察栈窗口可以看到API的参数。比如CreateFileA被调用时栈上会有文件名、访问模式等参数。通过分析这些参数可以了解程序在做什么。我经常用这个技巧来分析微信的文件操作它在哪里保存聊天记录配置文件放在什么位置缓存文件如何管理通过监控文件相关的API这些问题都能找到答案。4.3 算法分析与逻辑理解逆向分析的最高境界是理解程序的算法和业务逻辑。这需要结合代码分析、数据跟踪和动态调试。控制流分析是理解算法的基础。通过单步执行观察程序的执行路径。注意条件跳转JZ、JNZ、JG等和循环结构LOOP、REP等。可以在关键分支处设置断点观察不同条件下的执行路径。数据流跟踪关注数据的来源和去向。选择一个关键数据比如登录令牌跟踪它在内存中的流动从哪里产生经过哪些处理最终用在哪里输入输出分析通过改变输入观察输出的变化推断内部逻辑。比如在微信中尝试不同的输入内容观察程序如何处理。这有助于理解数据验证、格式转换等逻辑。这里有一个实际案例分析微信消息的加密过程。首先在发送消息的函数上设断点发送一条测试消息断点触发单步跟踪观察消息数据如何被处理注意加密函数的调用分析加密算法的特征通过多次测试总结出加密模式这个过程需要耐心和细心但一旦理清了关键算法对整个程序的理解就会深入很多。5. 高效调试的工作流与最佳实践经过前面的学习你应该已经掌握了OllyDBG的基本操作。最后我想分享一些提高调试效率的经验和技巧。5.1 调试日志与笔记系统调试是一个探索的过程过程中会有很多发现。如果不及时记录很容易忘记。我强烈建议建立自己的调试笔记系统。实时记录在调试过程中随时按;键添加注释。当你理解了一段代码的作用时立即加上注释。比如00401500 /$ 55 PUSH EBP ; 函数入口保存基址指针 00401501 |. 8BEC MOV EBP,ESP ; 设置新的栈帧截图保存重要的内存布局、寄存器状态、调用栈都可以截图保存。OllyDBG支持复制数据到剪贴板也可以直接截图。整理归纳每次调试结束后花点时间整理当天的发现。我通常按这样的结构整理调试目标使用的方法和技巧重要的发现遇到的问题和解决方案待进一步研究的问题这样积累下来你就有了自己的知识库。以后遇到类似的问题可以快速找到参考。5.2 脚本自动化与批量操作OllyDBG支持脚本功能可以自动化重复性操作。虽然它的脚本系统不如IDA强大但对于一些简单任务还是很实用的。比如你想批量在所有的malloc调用处设断点可以写一个简单的脚本# OllyDBG脚本示例伪代码 for addr in range(0x400000, 0x500000): if read_byte(addr) 0xE8: # CALL指令 target calc_call_target(addr) if target malloc_address: set_breakpoint(addr)常用的自动化任务包括批量搜索特定模式自动注释已知函数提取字符串资源生成调用关系图即使你不写复杂的脚本也可以录制一些操作序列保存为快捷键。比如我经常需要查看某个地址的交叉引用就把它录制成一个快捷键操作。5.3 多工具协同工作OllyDBG虽然强大但也不是万能的。在实际工作中我经常结合其他工具使用。静态分析工具如IDA Pro适合先进行静态分析了解程序的大致结构然后再用OllyDBG动态验证。网络分析工具如Wireshark配合OllyDBG使用。当程序发送网络数据时在OllyDBG中中断同时在Wireshark中查看实际发送的内容两者对照分析。进程监控工具如Process Monitor可以监控文件、注册表、进程等系统活动。当OllyDBG中看到程序调用了某个API可以用Process Monitor查看更详细的信息。工具组合使用的典型工作流用IDA进行初步静态分析标记感兴趣的函数用OllyDBG动态调试验证静态分析的假设用Process Monitor/Wireshark监控系统行为用Cheat Engine等工具辅助分析内存数据这种多工具协同的方法能从不同角度观察程序行为得到更全面的理解。调试技术的学习是一个长期的过程需要大量的实践和积累。我刚开始学习的时候经常一整天就为了搞清楚一个小问题但每次解决后都有很大的成就感。现在回头看那些看似枯燥的调试过程实际上让我对计算机系统的理解深入了很多。最重要的是保持好奇心和耐心。每个程序都是一个待解谜题调试器就是你手中的放大镜和解剖刀。慢慢来从简单到复杂你会发现逆向分析的世界其实很有趣。在实际项目中遇到具体问题时这些技能会派上大用场。比如上次我们有个服务出现内存泄漏用类似的方法最终定位到了一个第三方库的问题节省了好几天的排查时间。

相关文章:

OllyDBG逆向分析入门:手把手教你调试微信程序(附常用快捷键大全)

OllyDBG实战指南:从零开始掌握Windows程序调试艺术 最近有不少朋友在后台留言,问我怎么开始学习逆向分析。说实话,这个领域确实有点门槛,但只要你掌握了正确的工具和方法,其实并没有想象中那么难。今天我就以大家最熟悉…...

新手必看:PDF-Parser-1.0快速入门指南,开箱即用的文档解析神器

新手必看:PDF-Parser-1.0快速入门指南,开箱即用的文档解析神器 你是不是经常被PDF文档搞得头疼?想从一份技术报告里复制个表格,结果格式全乱了;想提取白皮书里的关键数据,却要手动一页页翻找;或…...

Hunyuan-MT-7B快速上手:从下载到使用,全程保姆级教学

Hunyuan-MT-7B快速上手:从下载到使用,全程保姆级教学 你是不是也遇到过这样的烦恼?想体验一下最新的AI翻译模型,结果光是下载几十GB的模型文件就要等上大半天,好不容易下完了,又要面对复杂的Python环境配置…...

仅限头部客户获取的Dify异步节点调试秘钥:3行代码定位阻塞点,5分钟修复99.99%的任务堆积问题

第一章:仅限头部客户获取的Dify异步节点调试秘钥:3行代码定位阻塞点,5分钟修复99.99%的任务堆积问题 Dify 的异步任务队列(基于 Celery Redis)在高并发场景下偶发任务堆积,但默认日志无法暴露底层执行瓶颈…...

WAN2.2文生视频镜像多行业落地:文旅宣传、职业教育、新媒体运营真实案例

WAN2.2文生视频镜像多行业落地:文旅宣传、职业教育、新媒体运营真实案例 用文字描述就能生成高质量视频,WAN2.2正在改变多个行业的视频制作方式 1. 为什么WAN2.2让视频制作变得如此简单? 想象一下,你只需要用文字描述想要的视频内…...

Wan2.1-UMT5开发环境搭建:Anaconda虚拟环境管理与依赖隔离

Wan2.1-UMT5开发环境搭建:Anaconda虚拟环境管理与依赖隔离 如果你刚开始接触Wan2.1-UMT5这类大模型项目,可能会被各种依赖冲突搞得焦头烂额。明明在别人的电脑上跑得好好的,到自己这儿就报错,什么PyTorch版本不对、CUDA不兼容&am…...

Qwen3-ForcedAligner-0.6B与UltraISO启动盘制作工具集成

Qwen3-ForcedAligner-0.6B与UltraISO启动盘制作工具集成 1. 引言 你有没有遇到过这样的情况:制作系统启动盘时,安装向导的语音提示总是和实际操作步骤对不上?或者语音播报太快,还没来得及看清界面就已经跳过了关键步骤&#xff…...

三相三电平整流器仿真:电压电流双闭环控制与SPWM调制效果佳(仅含仿真文件)

三相三电平整流器仿真,采用电压电流双闭环控制方式,SPWM调制。 效果很好。 只有仿真文件。最近在搞三相三电平整流器的仿真项目,用双闭环控制配SPWM调制,效果居然比想象中还要稳。这个拓扑结构天生自带谐波抑制能力,加…...

MVI46-104S服务器通信模块

MVI46-104S服务器通信模块是一种工业以太网通信接口模块,主要用于PLC系统与支持IEC 60870-5-104协议的远程设备之间建立通信连接。该模块能够实现实时数据传输、远程监控及信息交互,使控制系统能够接入电力或工业监控网络,提高系统的数据处理…...

Qwen3-ASR-1.7B在客服场景中的应用:智能语音助手落地案例

Qwen3-ASR-1.7B在客服场景中的应用:智能语音助手落地案例 1. 引言 "您好,请问有什么可以帮您?"这句话在客服中心每天要重复成千上万次。传统的客服系统面临着一个现实问题:人工客服成本高、培训周期长,而且…...

3步搞定SuperPNG插件效率优化:从安装到高级压缩全攻略

3步搞定SuperPNG插件效率优化:从安装到高级压缩全攻略 【免费下载链接】SuperPNG SuperPNG plug-in for Photoshop 项目地址: https://gitcode.com/gh_mirrors/su/SuperPNG 场景化问题导入:当设计师遇到PNG优化难题 在日常设计工作中&#xff0c…...

PowerPaint-V1 Gradio在Ubuntu系统的一键部署教程:5分钟快速上手

PowerPaint-V1 Gradio在Ubuntu系统的一键部署教程:5分钟快速上手 1. 引言 如果你正在寻找一个真正能"听懂人话"的图像修复工具,PowerPaint-V1绝对值得一试。这个模型不仅能识别遮罩区域,更能理解你的修复意图,实现从简…...

AudioSeal快速上手:5个典型音频文件(人声/音乐/噪声混合)测试集

AudioSeal快速上手:5个典型音频文件(人声/音乐/噪声混合)测试集 1. 引言:为什么你需要关注音频水印? 想象一下,你花了好几个小时录制了一段播客,或者精心制作了一段AI生成的语音内容。发布到网…...

使用Typora编写Qwen-Image-Edit-F2P技术文档

使用Typora编写Qwen-Image-Edit-F2P技术文档 1. 为什么选择Typora编写技术文档 技术文档的编写是每个开发者都需要面对的任务,而选择合适的工具能让这个过程事半功倍。Typora作为一款轻量级的Markdown编辑器,以其简洁的界面和流畅的写作体验&#xff0…...

从Claude到OFA:对比不同大模型在图像描述任务上的能力与部署差异

从Claude到OFA:对比不同大模型在图像描述任务上的能力与部署差异 最近在做一个智能相册的项目,需要让AI自动给图片生成描述文字。一开始我直接用了市面上最火的多模态大模型,比如Claude,效果确实不错,但部署成本和响应…...

国有企业的技术创新如何实现数据驱动?

观点作者:科易网-AI技术转移与科技创新数智化服务平台 国有企业在我国科技创新体系中扮演着核心角色,其技术创新能力直接关系到国家战略竞争力和产业升级进程。然而,传统国有企业在技术创新过程中普遍面临数据孤岛、转化效率低、决策支持不足…...

Skills智能体与Qwen3-ForcedAligner-0.6B的协同工作流设计

Skills智能体与Qwen3-ForcedAligner-0.6B的协同工作流设计 最近在折腾语音处理项目,发现一个挺有意思的问题:语音识别(ASR)模型把音频转成文字后,我们往往还想知道每个字、每个词在音频里具体是什么时候出现的。这个需…...

伏羲天气预报入门必看:FuXi EC模型与ECMWF原始数据格式差异与映射逻辑

伏羲天气预报入门必看:FuXi EC模型与ECMWF原始数据格式差异与映射逻辑 如果你刚接触伏羲(FuXi)天气预报模型,准备用自己的数据跑一次预报,那么你很可能遇到的第一个“拦路虎”就是数据格式问题。模型要求输入一个形状…...

Win10+Xming+VSCode远程开发:图形化界面(GUI)高效配置指南

1. 为什么你需要这套远程GUI开发环境? 如果你是一名开发者,尤其是做数据科学、机器学习或者图形界面应用开发的,那你肯定遇到过这样的场景:你的主力开发机是Windows 10,但你的代码需要跑在性能更强、环境更纯净的Linux…...

Render 免费部署 CLI Proxy API 中转站完整教程

前言 Render 是一款 PaaS 云平台,可托管 Web 应用、数据库、定时任务和静态网站,支持 Docker、Node.js、Python、Go、Ruby 等多种环境,也支持直接关联 GitHub 仓库部署。 优点缺点完全免费,部署简单免费版不支持持久化存储每月 …...

EARS标准

EARS 是需求工程里的一个写需求的标准格式,全称是:Easy Approach to Requirements Syntax意思是: 一种“简单的需求语法方法”,用于把自然语言需求写成结构统一、歧义更少、适合开发实现的格式。它最早由 Rolls‑Royce plc 在复杂…...

虚拟机连接不上问题

一、Winscp、SecureCRT_Portable连接不上或者是这种情况1、进入虚拟机后,点击这个图标2、3、4、5、最后点击右上角的应用即可第二种方法1、点击这个“编辑”按钮2、选择虚拟网络编辑器3、选择后点击更改设置4、5、还原默认设置后,点击确定,重…...

2026年常用CMS系统大全:主流建站内容平台分类与选型指南

“CMS”是内容管理系统(Content Management System)的缩写。常用的CMS通常根据主要应用领域(如网站搭建、企业门户、电子商务、文档管理)来划分。 以下是目前最主流、最常用的几类CMS(按技术生态和用途分类&#xff09…...

2026年6月PMP考试:一场与“人性弱点”的终极博弈!90天通关指南(附第八版考纲深度拆解)

兄弟们,姐妹们,还有那些收藏了十几篇攻略却一页没看的“资深收藏家”们,看过来! 我是你们的互联网嘴替,小黄。 今天这篇文章,咱们不聊那些烂大街的“必过口诀”和“万能模板”。咱们聊点更深的——为什么…...

【个人学习||Electron桌宠项目实战】2把桌宠窗口和Live2D 渲染接上

前言主进程骨架搭完以后,我没有马上去写复杂交互,而是先给自己定了一个最小目标:先做出一个真的像桌宠的窗口,再把模型画进去。因为如果窗口本身还是普通软件窗口,后面再怎么调模型,视觉感觉都不对。桌宠最…...

3分钟解锁炉石传说自动化:从日常任务到卡组测试的智能解决方案

3分钟解锁炉石传说自动化:从日常任务到卡组测试的智能解决方案 【免费下载链接】Hearthstone-Script Hearthstone script(炉石传说脚本)(2024.01.25停更至国服回归) 项目地址: https://gitcode.com/gh_mirrors/he/He…...

微信小程序弹框全攻略:showToast、showModal、showLoading的实战技巧与隐藏功能

微信小程序弹框全攻略:showToast、showModal、showLoading的实战技巧与隐藏功能 在微信小程序的日常开发中,弹框是与用户进行即时、轻量交互的核心组件。无论是简单的成功提示,还是需要用户确认的复杂操作,亦或是安抚用户等待的加…...

Unity摄像机视锥体剔除的隐藏陷阱:如何让Shader动画物体不被误杀

Unity摄像机视锥体剔除的隐藏陷阱:如何让Shader动画物体不被误杀 如果你正在用Shader制作一些酷炫的顶点动画,比如随风摇曳的草丛、能量涌动的粒子、或是形态变换的魔法特效,那么你很可能已经踩过这个坑:明明动画逻辑正确&#xf…...

HS2-HF Patch实战指南:解锁游戏增强功能的5个关键步骤

HS2-HF Patch实战指南:解锁游戏增强功能的5个关键步骤 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 副标题:面向中级玩家的功能扩展与…...

【捕获WebSocket】基于CDP与Playwright增强Selenium测试中的实时消息验证

1. 为什么我们需要在Selenium里监听WebSocket? 如果你做过Web自动化测试,尤其是那种带实时功能的,比如在线文档编辑、股票行情看板或者在线聊天室,你肯定遇到过这个头疼的问题:UI操作做完了,页面也变了&…...