<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[IT男也疯狂]]></title><description><![CDATA[成人世界里没有容易两个字]]></description><link>https://blog.youkuaiyun.com/yoie01</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; yoie01]]></copyright><item><title><![CDATA[STM32使用HAL库，模拟UART输出字符串]]></title><link>https://blog.youkuaiyun.com/yoie01/article/details/146407450</link><guid>https://blog.youkuaiyun.com/yoie01/article/details/146407450</guid><author>yoie01</author><pubDate>Thu, 20 Mar 2025 22:08:32 +0800</pubDate><description><![CDATA[测试芯片是STM32F103C8T6，直接封装好了，波特率是 9600。测试代码使用了GPIOA的PIN_1。难点在于实现微秒级的延迟。]]></description><category></category></item><item><title><![CDATA[STM32最小核心板使用HAL库ADC读取MCU温度(使用DMA通道)]]></title><link>https://blog.youkuaiyun.com/yoie01/article/details/136921746</link><guid>https://blog.youkuaiyun.com/yoie01/article/details/136921746</guid><author>yoie01</author><pubDate>Thu, 21 Mar 2024 22:37:46 +0800</pubDate><description><![CDATA[使用HAL库，通过ADC读取MCU的温度]]></description><category></category></item><item><title><![CDATA[STM32最小核心板使用HAL库实现CAN接口通讯(轮询方式)]]></title><link>https://blog.youkuaiyun.com/yoie01/article/details/136921034</link><guid>https://blog.youkuaiyun.com/yoie01/article/details/136921034</guid><author>yoie01</author><pubDate>Thu, 21 Mar 2024 21:34:15 +0800</pubDate><description><![CDATA[使用HAL库，轮询方式实现CAN通讯，双机测试]]></description><category></category></item><item><title><![CDATA[STM32最小核心板使用HAL库实现UART接口通讯(中断方式)]]></title><link>https://blog.youkuaiyun.com/yoie01/article/details/136890130</link><guid>https://blog.youkuaiyun.com/yoie01/article/details/136890130</guid><author>yoie01</author><pubDate>Wed, 20 Mar 2024 22:17:45 +0800</pubDate><description><![CDATA[使用HAL库，中断方式实现UART通讯，双机测试]]></description><category></category></item><item><title><![CDATA[Golang 结构和切片互转]]></title><link>https://blog.youkuaiyun.com/yoie01/article/details/135959309</link><guid>https://blog.youkuaiyun.com/yoie01/article/details/135959309</guid><author>yoie01</author><pubDate>Wed, 31 Jan 2024 17:54:05 +0800</pubDate><description><![CDATA[【代码】Golang 结构和切片互转。]]></description><category></category></item><item><title><![CDATA[树莓派 - 设置开机自启动]]></title><link>https://blog.youkuaiyun.com/yoie01/article/details/134244719</link><guid>https://blog.youkuaiyun.com/yoie01/article/details/134244719</guid><author>yoie01</author><pubDate>Mon, 06 Nov 2023 14:07:24 +0800</pubDate><description><![CDATA[设置开机自动运行脚本]]></description><category></category></item><item><title><![CDATA[树莓派 - 新机部署流程]]></title><link>https://blog.youkuaiyun.com/yoie01/article/details/134244253</link><guid>https://blog.youkuaiyun.com/yoie01/article/details/134244253</guid><author>yoie01</author><pubDate>Mon, 06 Nov 2023 13:43:23 +0800</pubDate><description><![CDATA[树莓派的新卡烧录，完整流程，最快速的进行部署]]></description><category></category></item><item><title><![CDATA[64位Shellcode方式注入DLL]]></title><link>https://blog.youkuaiyun.com/yoie01/article/details/131779951</link><guid>https://blog.youkuaiyun.com/yoie01/article/details/131779951</guid><author>yoie01</author><pubDate>Tue, 18 Jul 2023 09:33:07 +0800</pubDate><description><![CDATA[挟持NTDLL的API进行的远程注入DLL，支持主动启动进程方式加载]]></description><category></category></item><item><title><![CDATA[PHP 让数组输出字符串添加分隔符]]></title><link>https://blog.youkuaiyun.com/yoie01/article/details/130404782</link><guid>https://blog.youkuaiyun.com/yoie01/article/details/130404782</guid><author>yoie01</author><pubDate>Thu, 27 Apr 2023 13:58:16 +0800</pubDate><description><![CDATA[输出结果就是：'2'-'3'-'4'-'5'-'6']]></description><category></category></item><item><title><![CDATA[反汇编引擎udis86的使用]]></title><link>https://blog.youkuaiyun.com/yoie01/article/details/129825442</link><guid>https://blog.youkuaiyun.com/yoie01/article/details/129825442</guid><author>yoie01</author><pubDate>Tue, 28 Mar 2023 21:26:30 +0800</pubDate><description><![CDATA[反汇编引擎udis86的使用方法，简洁明了]]></description><category></category></item><item><title><![CDATA[程序加壳后，异常处理无法被捕捉，导致的崩溃问题]]></title><link>https://blog.youkuaiyun.com/yoie01/article/details/129824271</link><guid>https://blog.youkuaiyun.com/yoie01/article/details/129824271</guid><author>yoie01</author><pubDate>Tue, 28 Mar 2023 21:06:20 +0800</pubDate><description><![CDATA[编译配置导致 VM壳的加壳后执行异常处理崩溃]]></description><category></category></item><item><title><![CDATA[War3 脚本对象句柄管理]]></title><link>https://blog.youkuaiyun.com/yoie01/article/details/126008516</link><guid>https://blog.youkuaiyun.com/yoie01/article/details/126008516</guid><author>yoie01</author><pubDate>Wed, 27 Jul 2022 11:12:39 +0800</pubDate><description><![CDATA[War3设计的时候可能没有想到如今的RPG地图的火爆，作为一款RTS游戏来说当初的设计也不会考虑到地图上单位过多的问题(游戏机制有人口限制)。因为在脚本引擎对句柄回收机制这块并没有那么先进(自动回收机制)，只是做了个大概，更多需要开发者自己手动去回收，这里就来看看脚本里对于内存回收的逻辑。...]]></description><category></category></item><item><title><![CDATA[War3 游戏内存管理机制]]></title><link>https://blog.youkuaiyun.com/yoie01/article/details/126008010</link><guid>https://blog.youkuaiyun.com/yoie01/article/details/126008010</guid><author>yoie01</author><pubDate>Wed, 27 Jul 2022 09:55:27 +0800</pubDate><description><![CDATA[War3是款老游戏，由于那个时代的硬件条件有限，所以对于这种有一定时长的游戏他的内存管理十分的讲究，因为地图内单位过多就会导致内存不足，如果没有合理的分配内存就会直接影响游戏的体验。......]]></description><category></category></item><item><title><![CDATA[War3脚本引擎(Jass)执行函数分析]]></title><link>https://blog.youkuaiyun.com/yoie01/article/details/125703792</link><guid>https://blog.youkuaiyun.com/yoie01/article/details/125703792</guid><author>yoie01</author><pubDate>Wed, 27 Jul 2022 09:24:52 +0800</pubDate><description><![CDATA[Jass是魔兽争霸3中比较重要的一个部分，下面资料通过逆向分析Jass执行脚本期间的一些逻辑和函数。]]></description><category></category></item><item><title><![CDATA[暗黑破坏神2重置版 反调保护分析]]></title><link>https://blog.youkuaiyun.com/yoie01/article/details/122804063</link><guid>https://blog.youkuaiyun.com/yoie01/article/details/122804063</guid><author>yoie01</author><pubDate>Mon, 07 Feb 2022 10:34:46 +0800</pubDate><description><![CDATA[暴雪游戏的通用保护分析，这里针对暗黑2重置版深入分析一下]]></description><category></category></item><item><title><![CDATA[暗黑破坏神2重置版 UI界面管理类分析]]></title><link>https://blog.youkuaiyun.com/yoie01/article/details/121588763</link><guid>https://blog.youkuaiyun.com/yoie01/article/details/121588763</guid><author>yoie01</author><pubDate>Sun, 28 Nov 2021 12:27:40 +0800</pubDate><description><![CDATA[一直关注暴雪的游戏，这次来分析下暗黑2重置版里的UI界面数据结构。
由于游戏有着各种猥琐的反调检测和保护，所以只能使用伪调试的方式进行静态分析。

起手一个字符串枚举看看有什么可用的，从暗黑2的旧版客户端了解下，就从小地图入手！

关键字：AutoMap





乍一看，显然图二有点东西，那就从这里入手了，跟进去看看代码上下文



如图注释，这里应该是注册控件的地方，根据字符串的意思，应该是有个PanelManager的类管理着游戏内所有的界面。那我们就来找下这个类，继续搜索字符串，于是就找到了这里.]]></description><category></category></item><item><title><![CDATA[D3D11、D3D12开发中CreateSwapChain返回DXGI_ERROR_INVALID_CALL(0x887A0001)错误的坑]]></title><link>https://blog.youkuaiyun.com/yoie01/article/details/120858647</link><guid>https://blog.youkuaiyun.com/yoie01/article/details/120858647</guid><author>yoie01</author><pubDate>Wed, 20 Oct 2021 08:32:18 +0800</pubDate><description><![CDATA[根据MSDN查询的描述中说0x887A0001错误是因为参数为空才会产生的，经过代码的仔细检查并没有任何问题。最后怀疑到了结构对齐上，没错就是这个，项目设定里的结构成员对齐，如果非默认值就会导致CreateSwapChain执行出错，如图设定即可：






...]]></description><category></category></item><item><title><![CDATA[War3 132版本获取Jass函数列表]]></title><link>https://blog.youkuaiyun.com/yoie01/article/details/109283754</link><guid>https://blog.youkuaiyun.com/yoie01/article/details/109283754</guid><author>yoie01</author><pubDate>Mon, 26 Oct 2020 10:16:44 +0800</pubDate><description><![CDATA[一、调试过程

简单的记录下调试过程，详细的就阐述了

   首先枚举下游戏内的所有字符串，随便找一个jass的函数名(接触过jass函数都知道)，这里就随便找个StoreInteger，就可以找到以下片段：



简单分析下，这里有2个CALL，第一个call(7FF624565620)是获取一个对象指针，第二个call看起来就是个注册jass的，通过参数可以得到函数原型：


typedef UINT64 (WINAPI *FnRegJassFunction)(PVOID pHandle,PVO...]]></description><category></category></item><item><title><![CDATA[某肠派对过模拟器检测(已过期)]]></title><link>https://blog.youkuaiyun.com/yoie01/article/details/109009004</link><guid>https://blog.youkuaiyun.com/yoie01/article/details/109009004</guid><author>yoie01</author><pubDate>Sun, 11 Oct 2020 11:17:23 +0800</pubDate><description><![CDATA[有个好工具办事真是事半功倍，这里使用了GDA3.8是个反编译APK的工具，可以直接将DEX反编译成java。

下载链接：https://www.52pojie.cn/thread-632104-1-1.html

一、提取APK

游戏直接要用平台安装，不单独提供下载，所以需要使用ADB命令从模拟器内提取出来

二、分析代码

将APK直接拖入工具，很快就反编译完毕了



三、找到检测函数

通过类名判断，还是比较容易就找到了以下片段



这里的readSysProperty就是读取系统相关信息了，这]]></description><category></category></item><item><title><![CDATA[War3 132版本局域网房间信息数据包分析]]></title><link>https://blog.youkuaiyun.com/yoie01/article/details/108776374</link><guid>https://blog.youkuaiyun.com/yoie01/article/details/108776374</guid><author>yoie01</author><pubDate>Fri, 25 Sep 2020 12:02:54 +0800</pubDate><description><![CDATA[调试环境：

   游戏版本号1.32.8.15801

一、前言

   War3 132重置版内有自带旧版UI界面，包括旧版协议通讯，但是毕竟是新版本，所以略有不同。至于怎么进入旧版模式回头整理完会另外发博文，我是怎么知道的？我会告诉你去调试网易平台么？开玩笑！！本文用到的数据包可以通过拦截游戏通讯(UDP协议) 后获取，由于通讯协议众多，本文只针对Host广播的建主信息进行分析、扩展。







二、封包分析

游戏内所有相关操作的通讯包都以下面这个结构开头：


typedef ...]]></description><category></category></item></channel></rss>