【AIGC】一个 24.9 万字符的 bat:变量消噪做完了,载荷还躺在注释里

样本长什么样 526 行,277,699 字节。打开第一屏是这样的: @echo off %KPjSTBxCcolpNEgJWbqf%s%KPjSTBxCcolpNEgJWbqf%e%KPjSTBxCcolpNEgJWbqf%t%KPjSTBxCcolpNEgJWbqf%l%KPjSTBx... set "cblMLttYimYYgdCCrjSR=s" set "ksfjvFgWRcXVFNdVgrjk=t" set "XufOtBOOdJXCdrpMmnJU=!cblMLttYimYYgdCCrjSR!e!ksfjvFgWRcXVFNdVgrjk!" 人眼看到的是噪声,但两件事已经能读出来了:变量名全是随机大小写混合串,而且变量之间会互相引用(第三个 set 的值里套着前两个)。 先做一个最省事的动作:看体积集中在哪一行。 数出来是第 141 行,248,924 个字符——全文 90% 的体积在这一条行上。这个比例本身就是结论:一个正常的启动脚本不可能有 25 万字符的单行。后面会看到它是什么。 ...

October 16, 2026 · 2 min

【AIGC】啃一个未知安装包的方法路径:从寻找 buf,到能写出解包器

任务 拿到一个安装包,要求做到四件事: 搞清楚该类型安装包的具体名称; 搞清楚它的内部信息存储结构,尝试解析存储结构中字段的含义,并用结构体实现相关定义; 搞清楚该安装包内嵌文件的存储方式,以及如何还原出内嵌文件; 在前两步的基础上,通过代码实现该类型安装包的解包程序——输出包内部信息,甚至还原出包内的内嵌文件。 第 1 条的答案这篇不写,所以下面所有截图和描述都只到「某类安装包」这一层。留着的只有方法路径、偏移量、结构体字段,以及几个我自己踩过的判断。原始样本只以 GPG 加密的形式随仓库发布。 这四条的排列本身就值得说一句:它是一条从"这是什么"到"我能复刻"的递进链,而不是四个并列的问题。名称和结构是认知,存储和还原是操作,最后代码只是把前三步的结论固化下来。做的时候如果跳过 2 直接奔 4,写出来的东西通常只对眼前这一个包成立。 一、寻找 buf 既然是安装包,资源肯定在自身。 第一反应是走 PE 资源:安装包嘛,图标、版本信息、对话框都在资源段里,内嵌文件大概也在那。打开资源看了——没有找到有用信息。这条路是死的,划掉。 ...

October 16, 2026 · 2 min