<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[CoderAldrich的专栏]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/CoderAldrich</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; CoderAldrich]]></copyright><item><title><![CDATA[[NUAACTF-2017] [Reverse]快速解nuaactf]]></title><link>https://blog.csdn.net/CoderAldrich/article/details/162972442</link><guid>https://blog.csdn.net/CoderAldrich/article/details/162972442</guid><author>CoderAldrich</author><pubDate>Fri, 17 Jul 2026 16:18:38 +0800</pubDate><description><![CDATA[如果直接用GLM5.2大模型解此题现在不是难度，但难度是你无法在便携设备上得到这样的算力，所以我选用了Qwen3.6的35B，利用云侠AI配合直接完成此题目。确认目标哈希就是标准 SHA-1（Nazo 的自定义填充不影响短字符串结果）。4、逐步还原过程得出flag{bY73c0D3_W17h_C0D3}。实现了完整 SHA-1，但存在填充差异。三、第二阶段：ClassLoader 动态解密。反编译，得到可读 Java 源码。二、第一阶段：爆破 4 字符 Key。四、第三阶段：逆向变换链。]]></description><category></category></item><item><title><![CDATA[C++单元测试框架Catch1.x简介]]></title><link>https://blog.csdn.net/CoderAldrich/article/details/121501211</link><guid>https://blog.csdn.net/CoderAldrich/article/details/121501211</guid><author>CoderAldrich</author><pubDate>Tue, 23 Nov 2021 19:54:45 +0800</pubDate><description><![CDATA[Getting Catch
The simplest way to get Catch is to download the latest single header version. The single header is generated by merging a set of individual headers but it is still just normal source code in a header file.
The full source for Catch, includin]]></description><category></category></item><item><title><![CDATA[Visual C++ 里的异常处理]]></title><link>https://blog.csdn.net/CoderAldrich/article/details/120909981</link><guid>https://blog.csdn.net/CoderAldrich/article/details/120909981</guid><author>CoderAldrich</author><pubDate>Fri, 22 Oct 2021 17:33:28 +0800</pubDate><description><![CDATA[简介
微软Visual C++是Win32最广泛使用的编译器，因此Win32反向器对其内部工作非常熟悉。能够识别编译器生成的粘合代码有助于快速集中于程序员编写的实际代码。它还有助于恢复程序的高级结构。我将集中讨论MSVC编译程序中的堆栈布局、异常处理和相关结构。假设对汇编程序、寄存器、调用约定等有一定的了解。
名词解释：

Stack frame — 堆栈帧，函数使用的堆栈段的片段。通常包含函数参数、返回调用方地址、保存的寄存器、局部变量和其他特定于此函数的数据。在x86（和大多数其他架构）上，调用者和被调]]></description><category></category></item><item><title><![CDATA[IsBadReadPtr函数和异常处理]]></title><link>https://blog.csdn.net/CoderAldrich/article/details/120891741</link><guid>https://blog.csdn.net/CoderAldrich/article/details/120891741</guid><author>CoderAldrich</author><pubDate>Thu, 21 Oct 2021 18:48:30 +0800</pubDate><description><![CDATA[起因是优化代码性能，注意到这个函数，搜了一下发现是微软弃用的函数，说是有线程安全问题。经过一系列操作发现，处理大文件时这个函数会导致耗时变长，于是就研究一下这个函数。
首先看函数开头：
mov     edi, edi
push    ebp
mov     ebp, esp
push    0FFFFFFFEh
push    offset stru_77991A20
push    offset FindResourceExA_SEH
mov     eax, large fs:0
push    ea]]></description><category></category></item><item><title><![CDATA[C++ Runtime Code Reload]]></title><link>https://blog.csdn.net/CoderAldrich/article/details/120226047</link><guid>https://blog.csdn.net/CoderAldrich/article/details/120226047</guid><author>CoderAldrich</author><pubDate>Fri, 10 Sep 2021 17:30:15 +0800</pubDate><description><![CDATA[Quick prototyping and fast iteration times are incredibly important concepts for modern game development. Being able to hot swap an asset while the game is up and running can make the difference between a succesfull or a mediocre game simply because artist]]></description><category></category></item><item><title><![CDATA[https的中间人攻击和防范]]></title><link>https://blog.csdn.net/CoderAldrich/article/details/120205224</link><guid>https://blog.csdn.net/CoderAldrich/article/details/120205224</guid><author>CoderAldrich</author><pubDate>Thu, 09 Sep 2021 17:07:59 +0800</pubDate><description><![CDATA[https的中间人攻击和防范
这里的中间人场景主要是Windows平台下的C/S架构劫持，技术指的是SSL劫持攻击，即SSL欺骗，剥离攻击暂不涉及。整体原理是伪造证书，既充当请求方的server角色，又充当真正server的请求方。以此来获取和篡改通信的明文报文数据。

整体流程

使用openSSL制作证书
编写代理程序
根证书添加到可信任发布机构
设置系统代理

证书制作
首先装个openSSL，安装包下载地址：http://slproweb.com/products/Win32OpenSSL.html]]></description><category></category></item><item><title><![CDATA[maven 配置指南]]></title><link>https://blog.csdn.net/CoderAldrich/article/details/120055912</link><guid>https://blog.csdn.net/CoderAldrich/article/details/120055912</guid><author>CoderAldrich</author><pubDate>Thu, 02 Sep 2021 10:53:35 +0800</pubDate><description><![CDATA[maven 配置指南
打开 maven 的配置文件（ windows 机器一般在 maven 安装目录的 conf/settings.xml ），在&lt;mirrors&gt;&lt;/mirrors&gt;标签中添加 mirror 子节点:
&lt;mirror&gt;
  &lt;id&gt;aliyunmaven&lt;/id&gt;
  &lt;mirrorOf&gt;*&lt;/mirrorOf&gt;
  &lt;name&gt;阿里云公共仓库&lt;/name&gt;
  &lt;url&g]]></description><category></category></item><item><title><![CDATA[ssl证书]]></title><link>https://blog.csdn.net/CoderAldrich/article/details/118354467</link><guid>https://blog.csdn.net/CoderAldrich/article/details/118354467</guid><author>CoderAldrich</author><pubDate>Wed, 30 Jun 2021 09:43:53 +0800</pubDate><description><![CDATA[随着SSL证书的广泛应用，申请SSL证书的人也越来越多，但是很多使用SSL证书的用户其实并不太了解SSL证书。他们仅仅是因为要把站点从HTTP转换到HTTPS而申请使用SSL证书，而最终用户也只是获取SSL证书也是证书链的一部分而已。

在本文将为大家介绍关于SSL证书的根证书和中间根证书的知识。
什么是根证书？
根证书是指CA机构颁发SSL证书的核心，是信任链的起始点。根证书是浏览器是否对SSL证书每个浏览器都有一个根证书库，有的浏览器是采用自主的根证书库，而一些浏览器则采取第三方的根证书库。而根证书库.]]></description><category></category></item><item><title><![CDATA[lacewing简介]]></title><link>https://blog.csdn.net/CoderAldrich/article/details/99830673</link><guid>https://blog.csdn.net/CoderAldrich/article/details/99830673</guid><author>CoderAldrich</author><pubDate>Tue, 20 Aug 2019 11:39:27 +0800</pubDate><description><![CDATA[lacewing简介
liblacewing是一个跨平台的，为C/C++提供的高级网络开源库，旨在提供一个简明的类，做到能够扩展并且可以平台优化（支持IOCP/EPOLL/KQUEUE等）。
Classes
lacewing::eventpump
eventpump is a default implementation of pump provided by the library, power...]]></description><category></category></item><item><title><![CDATA[lxl 大厅协议 -- [libcef部分]]]></title><link>https://blog.csdn.net/CoderAldrich/article/details/96322296</link><guid>https://blog.csdn.net/CoderAldrich/article/details/96322296</guid><author>CoderAldrich</author><pubDate>Wed, 17 Jul 2019 16:27:34 +0800</pubDate><description><![CDATA[根据Reversing the League of Legends Client一文中提到的方法，我们可以通过API Monitor拦截cef_parse_url得到部分的 url 调用。这里为了方便，介绍另一种方法。

工具:Fiddler+Proxifier+TCPView

准备工作:
在Proxifier中设置一个针对LeagueClientUx进程的访问转向，...]]></description><category></category></item><item><title><![CDATA[Android 双开沙箱 VirtualApp 源码分析（六）ContentProvider]]></title><link>https://blog.csdn.net/CoderAldrich/article/details/92798143</link><guid>https://blog.csdn.net/CoderAldrich/article/details/92798143</guid><author>CoderAldrich</author><pubDate>Tue, 18 Jun 2019 18:58:06 +0800</pubDate><description><![CDATA[Android 双开沙箱 VirtualApp 源码分析（六）ContentProvider
Provider 注册
回顾前面，Activity 启动的时候会检查 Application 是否初始化，会调用 bindApplication，里面执行了安装 Provider 的方法：
private void installContentProviders(Context app, List&lt;...]]></description><category></category></item><item><title><![CDATA[Android 双开沙箱 VirtualApp 源码分析（五）BroadcastReceiver]]></title><link>https://blog.csdn.net/CoderAldrich/article/details/92798093</link><guid>https://blog.csdn.net/CoderAldrich/article/details/92798093</guid><author>CoderAldrich</author><pubDate>Tue, 18 Jun 2019 18:53:49 +0800</pubDate><description><![CDATA[Android 双开沙箱 VirtualApp 源码分析（五）BroadcastReceiver
方案猜测
同 Activity 一样，Client App 在 Menifest 中注册的静态广播外部 AMS 是无法知晓的，经过前几章的分析，相信大家已经是老司机了，我们可以先尝试提出自己的观点。

和 Activity 一样使用 Stub 组件占坑？仔细想一想是无法实现的，因为你无法预先确定 Cl...]]></description><category></category></item><item><title><![CDATA[Android 双开沙箱 VirtualApp 源码分析（四）启动插件 Service]]></title><link>https://blog.csdn.net/CoderAldrich/article/details/92797964</link><guid>https://blog.csdn.net/CoderAldrich/article/details/92797964</guid><author>CoderAldrich</author><pubDate>Tue, 18 Jun 2019 18:40:57 +0800</pubDate><description><![CDATA[Android 双开沙箱 VirtualApp 源码分析（四）启动插件 Service
原生 Service 创建过程
首先有必要了解一下原生 framework 对 Service 的创建，因为在 VA 中启动 Service 和 Activity 有很大的区别。
首先入口 ContextWrapper.startService():
@Override
    public Component...]]></description><category></category></item><item><title><![CDATA[Android 双开沙箱 VirtualApp 源码分析（三）App 启动]]></title><link>https://blog.csdn.net/CoderAldrich/article/details/92797776</link><guid>https://blog.csdn.net/CoderAldrich/article/details/92797776</guid><author>CoderAldrich</author><pubDate>Tue, 18 Jun 2019 18:24:44 +0800</pubDate><description><![CDATA[Android 双开沙箱 VirtualApp 源码分析（三）App 启动
在这之前，我们还是要先了解一下 VA Client Framework 和 VAService 之间的通讯方式
VAService 与通讯
VAService
首先，VAService 是指 VA 仿造 Android 原生 framework 层 Service 实现的一套副本，举例有 VActivityManagerS...]]></description><category></category></item><item><title><![CDATA[Android 双开沙箱 VirtualApp 源码分析（二）]]></title><link>https://blog.csdn.net/CoderAldrich/article/details/92797566</link><guid>https://blog.csdn.net/CoderAldrich/article/details/92797566</guid><author>CoderAldrich</author><pubDate>Tue, 18 Jun 2019 18:08:55 +0800</pubDate><description><![CDATA[Android 双开沙箱 VirtualApp 源码分析（二）
VA 初始化
先看一下代码：
VirtualCore.startup
public void startup(Context context) throws Throwable {
        if (!isStartUp) {
            // 确保 MainThread
            if (Looper...]]></description><category></category></item><item><title><![CDATA[Android 双开沙箱 VirtualApp 源码分析（一）]]></title><link>https://blog.csdn.net/CoderAldrich/article/details/92797497</link><guid>https://blog.csdn.net/CoderAldrich/article/details/92797497</guid><author>CoderAldrich</author><pubDate>Tue, 18 Jun 2019 18:03:47 +0800</pubDate><description><![CDATA[欢迎使用CSDN-markdown编辑器
最近发现了一个非常好的开源项目，基本实现了一个 Android 上的沙箱环境，不过应用场景最多的还是应用双开。
VA github: https://github.com/asLody/VirtualApp
VA 的源码注释: https://github.com/ganyao114/VA_Doc
第一章主要是分析一下项目的整体结构。
包结构

andro...]]></description><category></category></item><item><title><![CDATA[Panorama - Custom DOTAScenePanel]]></title><link>https://blog.csdn.net/CoderAldrich/article/details/89360473</link><guid>https://blog.csdn.net/CoderAldrich/article/details/89360473</guid><author>CoderAldrich</author><pubDate>Wed, 17 Apr 2019 17:23:59 +0800</pubDate><description><![CDATA[Introduction

In this tutorial we'll go through the tricks you can do with the undocumented DOTAScenePanel class in panorama.

Now, you might have seen its usage if you looked through the sources in t...]]></description><category></category></item><item><title><![CDATA[Getting Started With Dota 2 Modding]]></title><link>https://blog.csdn.net/CoderAldrich/article/details/89360387</link><guid>https://blog.csdn.net/CoderAldrich/article/details/89360387</guid><author>CoderAldrich</author><pubDate>Wed, 17 Apr 2019 17:21:56 +0800</pubDate><description><![CDATA[So you're completely new to Dota 2 modding? Don't know where in the hell to begin? This is the guide for you, the future Dota 2 modder!

Note: “Addon”, "mod", and “custom game” are all synonymous thro...]]></description><category></category></item><item><title><![CDATA[影响并发代码性能的因素]]></title><link>https://blog.csdn.net/CoderAldrich/article/details/88124270</link><guid>https://blog.csdn.net/CoderAldrich/article/details/88124270</guid><author>CoderAldrich</author><pubDate>Mon, 04 Mar 2019 16:49:53 +0800</pubDate><description><![CDATA[多处理系统中，使用并发的方式来提高代码的效率时，你需要了解一下有哪些因素会影响并发的效率。即使已经使用多线程对关注进行分离，还需要确定是否会对性能造成负面影响。因为，在16核机器上应用的速度与单核机器相当时，用户是不会打死你的。
之后你会看到，在多线程代码中有很多因素会影响性能——对线程处理的数据做一些简单的改动(其他不变)，都可能对性能产生戏剧性的效果。所以，多言无益，让我们来看一下这些因素吧，...]]></description><category></category></item><item><title><![CDATA[C++11 宽窄字符转换]]></title><link>https://blog.csdn.net/CoderAldrich/article/details/88058651</link><guid>https://blog.csdn.net/CoderAldrich/article/details/88058651</guid><author>CoderAldrich</author><pubDate>Fri, 01 Mar 2019 14:52:30 +0800</pubDate><description><![CDATA[C++11增加了Unicode字面量的支持，可以通过L来定义宽字符：


std::wstring str = L&quot;中国人&quot;;    // 定义Unicode字符串

将宽字符串转换为窄字符串需要用的codecvt库种的std::wstring_convert。std::wstring_convert需要借助以下几个Unicode转换器：

std::codecvt_utf8，封装了UTF-8与U...]]></description><category></category></item></channel></rss>