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

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

October 16, 2026 · 2 min