谈几点银狐源码学习感悟

admin 2026-01-22 00:37:35 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文分享学习银狐远控源码的感悟,指出仅依赖工具而忽视原理的误区,强调掌握汇编、Windows系统原理及内核开发等基本功的重要性。作者还推荐了《WindowsShellcodeMastery》译作以辅助学习shellcode编写,旨在引导读者深入理解安全工程底层逻辑。 综合评分: 65 文章分类: 恶意软件,逆向分析,安全开发,二进制安全


cover_image

谈几点银狐源码学习感悟

原创

安全研究员 安全研究员

CppGuide

2026年1月20日 14:59 上海

由于工作需要,又重新捡起了安全工程方面的知识,一直在学习银狐远控代码,也因为这个代码接触了一些搞安全工程的小伙伴,本文不介绍具体技术,来讲一讲学习方法。

特别申明:

1. 本文介绍的内容仅做技术上的交流,请勿使用本文介绍的技术做其他用途,违者与本号无关。

2. 作者不提供任何支持免杀版本的银狐源码,不做任何黑产,有此需求的读者请勿联系作者。

银狐这套源码虽然代码风格稀烂,但总体设计还是很好的,是一份不错的学习材料。

在与部分小伙伴做技术交流时发现,大多数同学学习安全工程只沉迷于学习各种工具和脚本,而不注重技术原理的学习。

举个例子,某个小伙伴看到抖音上谁谁谁发了一个过Windows UAC的视频,就很兴奋,拿过来与笔者分享,结果我一看,是非常老的技术,如果稍微有点对Windows UAC原理和机制有了解的同学,就不会追捧这类视频,如果轻松几步软件就能过UAC提升自己到Windows管理员权限,那Windows上恶意软件岂不为所欲为,微软在安全方面设计岂不太拉垮,谁还敢用Windows。

笔者以为,搞Windows安全工程除了学习一些必要的工具,如windbg、IDA、x64(x86)debg、CS等工具,还要至少掌握以下基本功,不然永远是个调库侠或者脚本小子:

  • 汇编
  • Windows系统原理,需要熟悉Windows常用的API包括部分Native API
  • Windows内核或驱动开发
  • 网络编程

但研究银狐这套源码,不仅需要安全工程方面的知识,还需要正统的开发技能,例如Windows C/C++编程、多线程编程等等。当然,也可以通过这套源码去学习这些知识。

看雪学院招募小伙伴翻译《Windows Shellcode Mastery》一书,这是一本教授如何编写安全shellcode的学习资料,我一遍学习一遍翻译了一下,放在cppguide.cn上方便更多的小伙伴学习。

https://cppguide.cn/pages/windows-shellcode-advanced-practice/

(微信公众号不支持外链,请复制至浏览器打开)

目录如下:

1  shellcodisation在病毒学中的应用

1.1  背景定义

1.2  恶意代码的选定目标

1.2.1  避开基于特征码识别的反病毒软件检测

1.2.2  在受感染主机上留下尽可能少的痕迹

1.2.3  嵌入合法程序以创建特洛伊木马

1.2.4  拦截使用受感染计算机的用户的私人数据

1.2.5  加密自身以防止人工分析

1.3  基于可执行文件的实现

1.3.1  实现多态性

1.3.2  仅在内存中执行

1.3.3  感染其他可执行文件

1.3.4  执行代码注入

1.3.5  实现真正的加密

1.3.6  总结

1.4  基于shellcode的实现

1.4.1  实现多态性

1.4.2  仅在内存中执行

1.4.3  感染其他可执行文件

1.4.4  执行代码注入

1.4.5  实现真正的加密

1.4.6  总结

2  编写shellcode

2.1  编译生成的二进制数据解析

2.2  shellcode生成原理

2.2.1  第一种方法:汇编代码修补

2.2.2  第二种方法:使用栈

2.2.3  第三种方法:使用全局数据

3  WiShMaster:shellcodisation过程

3.1  工具介绍

3.2  开发进展

3.2.1  WiShMaster 版本1

3.2.2  WiShMaster 版本2

3.3  shellcodisation过程

3.3.1  概述

3.3.2  “分析”步骤说明

3.3.3  “获取全局变量大小”步骤说明

3.3.4  “生成”步骤说明

3.3.5  “自定义”步骤说明

3.3.6  “集成”步骤说明

3.3.7  WiShMaster中shellcodisation的实现

3.3.8  shellcode初始化

4  使用WiShMaster开发应用程序

4.1  WiShMaster的目标

4.2  WiShMaster版本2中应用程序的结构

4.2.1  应用程序结构概述

4.2.2  导出表和导入表

4.2.3  入口点

4.3  标准模块

4.3.1  “日志”模块

4.3.2  “initsh”模块

4.3.3  “加载器”模块

4.4  shellcode加密

4.4.1  32位密钥的异或(XOR)加密

4.4.2  256位密钥的高级加密标准-密码分组链接模式(AES-CBC)加密

4.4.3  使用共享密钥

4.5  开发反向shell

4.5.1  程序结构概述

4.5.2  生成反向shell

4.6  实现USB攻击以执行反向shell

4.6.1  攻击准备

4.6.2  攻击流程

5  未来工作

5.1  pycparser工具

5.2  GCC编译器的fPIC选项

5.3  趣味使用编译指令

6  结论

#

源码获取

如果对银狐(winos)有兴趣,可以通过下面的方式获取全套源码:

关注后回复【winos】即可获取源码

更多阅读

银狐远控问题排查与修复——Viusal Studio集成Google Address Sanitizer排查内存问题

银狐远控代码中差异屏幕bug修复

银狐远程屏幕内存优化方法探究

银狐远程软件bug修复记录 第03篇

银狐远程软件 UDP 断线无法重连的bug排查和修复

银狐远程软件代理映射功能优化思路分享

银狐远程软件去后门方法

银狐远控一键编译调试与开发教程

银狐远控免杀与shellcode修复思路分析 01

银狐ShellCode混淆怪招

详解银狐远控源码中那些C++编码问题

给银狐远控增加一个小功能01

银狐远控的被控端是如何隐藏和保护自己的

从银狐复制和转移客户功能的bug说起……


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:CppGuide 安全研究员 安全研究员《谈几点银狐源码学习感悟》

评论:0   参与:  0