Github标星95K+超火的从零基础到精通的二进制安全学习路线(附教程)

写在开篇

本人曾经就职过微软、NEXON、趋势科技等国内外著名的安全公司,目前就职于国内大型网络安全研究院。精通 Windows/Android 内核分析和 X86/X64/ARM 平台逆向。对反病毒、APT 攻击、物理渗透、游戏反外挂、黑灰产、车联网、司法鉴定、流量溯源有深入的研究和实际的产出,网络安全项目经验非常丰富。

什么是二进制安全

在很久以前安全圈并没有把安全技术做出一个特别清晰的分类。在大部分人眼里,所谓的黑客,安全研究者指的就是研究渗透入侵一类的技术的从业者,并不知道什么是逆向工程或者说二进制安全。提起逆向工程也许还有人可以联想到软件破解,如果提起的是二进制安全,那么知道的人就真的是寥寥无几了。

实际上二进制安全技术在20世纪90年代就已经有了一小群先驱者在研究。时至今日二进制安全以及发展出了完整清晰的体系,并且有大量的爱好者希望学习这门技术。虽然市面上已经有了许多的经典书籍可以让二进制安全爱好者们来学习。但是似乎没有人提出一条清晰有效的学习路线,避免初学者误入歧途。这也就是这篇文章诞生的目的。

本文可能没有那么多的“技术干货”。只是为了给初学者明确为什么要学习Windows下的二进制安全,学习之后可以做些什么,又到底应该如何学习,从基础到深入,都应该做些什么。

《黑客&网络安全入门&进阶学习资源包》分享腾讯文档-在线文档https://docs.qq.com/doc/DYWpETGFsQ0JPUkdY?

为什么学习,学习后可以做些什么?

首先提出一个问题,不知道大家有没有碰到过在写代码中遇到过以下这样的问题:

1. 明明看起来代码写的毫无问题,但是却在main函数之前就已经报错。

2. 碰到一款好的软件,但是广告太烦无法关闭。

3. 你想知道一款软件的功能是如何实现的,却苦于没有源代码。

4. 软件出现崩溃,想要找到原因却无从下手。

5. 电脑中了病毒,杀毒软件却无法查杀。

6. 刚刚发布的产品,马上就被人破解了。

上面只是提出一部分常见的问题。在学习二进制安全后你可以这样解决以上的问题。

(1). 因为二进制安全需要深入理解计算机的运行机制,操作系统原理。所以碰到此类问题,你可以很快定位到错误位置,为你的编码工作提供强有力的支撑。

(2). 碰到这类软件的时候,你可以通过逆向工程的方式,将其中的广告页面替换,甚至直接将弹出广告的函数直接ret或用nop填充掉。还给自己一个清静没有广告的办公环境。

(3). 当你想知道这个功能如何实现的时候,你既可以静态分析其函数的实现逻辑,也可以动态跟踪它的数据流向,从而完整了解该功能是如何实现的。

(4). 当软件崩溃是不是无从下手,但是学了二进制安全之后你可以使用调试器接管异常,去发掘漏洞产生的位置,定位到模块或者函数的某一条语句。然后提供给厂商修复或者自己二次开发使用补丁修复漏洞。

(5). 当中了杀软无法识别的病毒是不是很恐慌,学习了二进制安全后就可以直接手动分析病毒做了些什么,并且将其执行的操作逆转,拯救中毒的计算机操作系统。

(6). 刚刚发布的软件马上就被别人破解了,没有收入了。是不是很郁闷,当学习了二进制安全后,你可以对你的软件加混淆、加花指令、加反调试、加代码虚拟化等等手段,让破解者的破解成本增加到无法承受,从而放弃破解。

学习后可以从事什么样的职业

上面说的都是日常中的问题,那么如果我们要走专业路线,我们有什么样的职业可以选择呢,下面我们来详细了解一下。

1. 逆向工程师

大部分的逆向工程师都是在进行竞品分析,所谓的竞品分析就是分析同行的软件,看看有什么东西是比自己好的,加到自己的产品中。还有一部分逆向工程师是配合研发工程师进行项目攻关,解决疑难问题的。

2. 恶意代码分析工程师

恶意代码分析工程师也可以成为病毒分析师,主要服务于乙方安全公司、各大监管单位以及政府部门。负责对病毒进行快速分析或详细分析。目的主要是发报告为单位获取知名度或者为自家单位的恶意代码引擎提供规则。

近年来有一种新的概念叫APT,是类似于特工情报组织所研发出针对指定敏感行业,例如能源化工,亦或者政府机关的攻击载体。特点是长期潜伏,密集踩点。对目标系统内部极为了解,有针对性的窃取情报。有部分恶意代码分析工程师就是负责追踪此类组织的攻击轨迹,分析同源性等相关工作。

3. 漏洞分析工程师

漏洞分析工程师主要负责针对已有漏洞进行分析,并且产出报告或者规则。职业权能与恶意代码分析工程师类似,但是更专注于漏洞类型的样本分析。不过近年来恶意代码也多带有漏洞传播。例如大名鼎鼎的永恒之蓝漏洞,就催生出了一大批勒索软件。所以如今的漏洞分析工程师,也多兼任恶意代码分析工程师的职能。

4. 漏洞挖掘工程师

漏洞挖掘工程师与漏洞分析工程师的不同之处在于漏洞挖掘工程师的主要工作内容为通过模糊测试等手段对软件、驱动或操作系统进行未知的漏洞发掘工作。此类工程师有可能是对自家产品进行检测,负责的是模拟攻击者对产品的安全性进行检测。也有可能是对第三方厂商进行漏洞挖掘,并且将漏洞提交给厂商或SRC等平台。目的可能是提升企业知名度也可能是满足监管单位对其的要求。

5. 游戏安全工程师

游戏安全工程师也称为反外挂工程师,顾名思义就是与游戏外挂做对抗的专业人士。目前大部分的反外挂手段都集中在R0层,也就是使用驱动作为对抗手段。因为R3层的反调试手段已经很难阻止越来越猖獗的外挂作者了。并且现如今的外挂作者也由最初的业余玩家变成了如今的专业人士。导致外挂与反外挂的对抗手段越来越趋近底层,据我所知目前外挂作者中的顶级高手已经在VT层进行反反外挂工作了。利用虚拟化手段重建调试体系。所以游戏安全工程师的任务依然很艰巨。

6. 安全研发工程师

安全研发工程师主要集中在各大乙方单位,例如负责杀软、恶意代码检测引擎、沙箱、蜜罐、扫描器、调试器等安全工具或安全产品的开发工作的研发人员。都是安全研发工程师。此类工程师一般多为具有安全背景的研发者,区别于普通研发者的地方在于他们更加了解安全,可以实现一切特殊的功能以满足安全产品的需要。

如何学习二进制安全

上面我们已经讨论过了为什么要学,学了可以做什么。学完可以从事什么样的职业。那么接下来我们要讨论的就是如何学习。当初学者兴致勃勃的准备开始学习的时候会发现,虽然书籍众多,却无从下手。一个不小心还会误入歧途,成为一个只懂得是什么,却不懂得为什么的庸人。接下来我们要做的就是,缕清这条线,让其清晰明了。

首先,我们作为二进制研发人员必须要懂的语言有三门半,为什么说是三门半呢,因为这四门语言是C、C++、Python以及汇编。C和C++属于一脉相承因此只算一门半语言,因为这两门语言的学习是连续的,不需要像学习Python或汇编一样重新学习语法结构。那么接下来我来说明一下为什么要学习这三门半语言。首先是C和C++,先不说开发杀毒引擎或者其他大型工程,仅仅有一点最为实际。那就是IDA pro所翻译出的伪代码是C语言格式的。另外在以后漏洞的学习中,除了汇编语言,C和C++是开发shellcode最为高效的语言。而且相比于汇编也更容易理解。并且也许我们想招写一些具有特殊功能的小玩意,比如远(病)控(毒)软(木)件(马),C和C++也一定是你最优秀的选择。或者我们需要写一些驱动代码,比如实现一个类似于火绒剑的监控软件,毕竟,你总不能去用易语言开发吧。现在的系统也不兼容啊对不对。

那么介绍完C和C++的用处,接下来说明下Python的作用。其实Python就像是一个万能胶水,哪里有用粘哪里。它可以辅助我们快捷的开发一些辅助分析工具或者Exploit。也可以充当解放双手释放劳动力解决重复操作的机器人。总之,Python除了性能感人,其他都不会让你失望的。最后说明一下汇编语言的作用。其实这是最不用解释的了。毕竟,动态分析中没有任何一款工具可以把代码还原成伪代码执行,我们分析过程中所接触的全都是汇编代码。

学习路线

第一章:C语言

C 语言开篇
数据类型
C 语言输入和输出
运算符和表达式
流程控制
数组
函数
C 语言预处理
指针
复合数据类型
C 程序的组成

第二章:C++

C++概述
C++对 C 的拓展
类和对象
继承
多态
异常
泛型编程
强制类型转换

第三章:汇编

为什么要学习汇编
计算机语言发展历史
编程语言分类
机器语言
汇编语言
寄存器的概念
字的存储
物理地址与段地址
CS 和 IP
DOS 的安装与使用
段的分类
一个源程序从写出到执行的过程
源程序
编译
连接
程序执行过程的跟踪
数据传输指令
算术运算指令
位运算指令
串操作指令
控制转移指令
处理机控制指令及伪指令

第四章:逆向

汇编与 C 的关系
从逆向角度看 C++
动态调试基础
IDA 动静分析基础
PE 文件结构基础
Windows 系统安全基础
脚本类恶意程序的快速分析技巧
PE 类恶意程序的快速分析技巧 (DLL 篇)
PE 类恶意程序的快速分析技巧 (EXE 篇)

APT 攻击链恶意样本分析
勒索病毒类型快速分析
白+黑类型样本快速分析
恶意软件脱壳基础
恶意样本加壳基础
游戏反外挂基础
游戏加密协议基础
游戏功能函数分析

外服 CABAL 脱机辅助开发原理
nProtect Game Guard 漏洞分析
游戏检测绕过与防护
游戏插件开发原理与查杀
游戏截包工具开发基础
游戏资源文件解密
MIR 4 区块链游戏的对抗方式
游戏资源文件解密
流量溯源的信息探索
流量溯源的溯源画像模板
流量中攻击链的形成
流量中攻击链的基础溯源

社交网络部署蜜罐进行溯源分析
从逆向维度溯源扫描器框架
从逆向维度挖掘线索中的价值
暗藏在钓鱼邮件背后的流量攻击
C&C 通讯模块的溯源分析 DDOS 溯源分析
DDOS 攻击流量中域名溯源分析
DDOS 攻击流量中关键 ServerConnectClishell 函数分析
DDOS 攻击流量中关键 DNS 解密函数分析

恶意流量之完整的精准溯源流程
恶意流量之开源 C&C 平台源码分析
恶意流量之完整的精准溯源流程
羊毛党的世界
羊毛党的黑产分析
恶意流量之检测 C&CR AT 通讯流量
恶意流量之源码 ghost 通讯协议分析
SIM token 合约代码自动化薄羊毛攻击还原
区块链 token 的自动化薄羊毛攻击分析
风控模式下的对抗薅羊毛各种方式
薅羊毛 App 软件以及功能分类
薄羊毛 APP 软件功能分析
羊毛灰色产业链结构
薅羊毛之群控的原理

第五章:免杀

从思维角度上改变免杀的认识
安全软件分析思维导向
从源码角度解决 RAT 免杀问题
渗透过程中白+黑利用方式
开发高级版 shellcode 加载器
改壳免杀高级技巧
高级免杀壳开发原理
从源码角度加密输入表
打造自己独立的红蓝对抗 RAT 后门 shell
巧过 360 全家桶方法
迷你方式过卡巴全家桶
冲锋方式过管家系列
免杀 office 相关 APT 组合
奇淫技巧之主动防御绕过
偷梁换柱之奇怪的免杀方法
云沙盘绕过方法

需要完整版的铁子可以看文末名片

《黑客&网络安全入门&进阶学习资源包》分享腾讯文档-在线文档https://docs.qq.com/doc/DYWpETGFsQ0JPUkdY?

至此,我们的安全学习就已经踏上了正轨,需要在工作中不断精进,不断成长

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: GitHub标星 115k 是指某个项目在 GitHub 上收到了 11.5 万个星标(Star)。星标是 GitHub 上用户对项目的一种点赞行为,表示对项目的认可和喜爱。 当一个项目被很多用户标星的时候,通常表示这个项目具有一定的影响力,受到了广泛的关注和认可。标星的数量可以作为评估一个项目受欢迎程度的指标之一。 标星数量的增加主要有以下几个原因: 1. 项目本身优秀:如果一个项目具有很高的代码质量、功能完善、易于使用等优点,就会吸引更多的开发者关注并标星。 2. 开发者社区推广:开发者社区对于一个项目的推广非常重要,如果一个项目在社区中得到了推荐和宣传,就会吸引更多的用户关注和标星。 3. 开发者贡献:开源项目常常接受开发者的贡献,如果一个项目有很多活跃的开发者,意味着项目会持续发展和更新,这也会吸引更多的用户关注和标星。 4. 开发者口碑和用户反馈:如果一个项目具有良好的口碑和用户反馈,证明这个项目对用户来说是有价值的,也会吸引更多的用户关注和标星GitHub标星 115k 表明这个项目受到了极高的关注和认可。这种关注既可以是因为项目本身的优秀,也可能是因为开发者社区的推广和用户口碑的效应。不过,标星数量并不是唯一的评判标准,我们还需要进一步了解项目的质量、活跃度和用户评价等方面的信息,才能全面评估一个项目的价值。 ### 回答2: GitHub 是全球最大的开源代码托管平台之一,用户可以在平台上发布开源项目,并且其他用户可以对其进行关注(Star)。标星(Star)是 GitHub 上一项重要的功能,用于表示用户对某个项目的喜爱程度或兴趣程度。 在你提到的这个情况中,一个项目在 GitHub标星达到 115k 的数量是非常惊人的。这意味着该项目受到了非常广泛的关注和认可,吸引了大量的用户关注和参与。 标星数量的增长通常表明该项目具有出色的代码质量、创新的想法、丰富的功能或对开发者社区有重要的影响。标星数量还能够作为用户评估一个项目质量和受欢迎程度的参考指标。越多的标星数量通常意味着该项目受到更多人的信任和广泛的使用。 标星 115k 的项目往往是在技术方面具有重要意义的项目,也可能是在开发工具、库或框架上具有重要创新的项目。当项目受到如此高的关注时,它不仅会吸引更多的开发者参与贡献代码,也会吸引更多的用户试用和提供反馈。 通过标星数量,我们可以得知这个项目在社区的影响力和认可度。这使得其他开发者能够了解或了解到一些有趣或有价值的项目。同时,对于该项目的维护者来说,标星数量也是对他们工作的认可和鞭策,鼓励他们继续努力改进和维护该项目。 综上所述,GitHub 上一个标星数量达到 115k 的项目无疑是一个备受关注和认可的项目,代表着该项目的质量和影响力。这个数量反映了开发者社区对该项目的认可和信赖程度,证明了该项目在技术领域的重要地位。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是黑客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值