课前闲聊
你知道吗?unity学了可以速通黄游
你知道吗?CTF打好了可以去美国参加国际比赛
你想打竞赛提升自己嘛?
想提升逆向功底却还在黑暗里摸索?
对防治软件破解和反制游戏外挂感兴趣?
in1t-主攻软件攻防、移动安全
大二大三参加国赛,拿国奖。
ctftime国际赛排名,打积分。
Misc–python pvm的逃逸
合天pwn学过了,很入门
shellcode恶意代码–拿shell的代码
认识CTF
什么是CTF
CTF是指Capture The Flag,是一种网络安全竞赛,参赛者需要在规定时间内解决一系列的安全问题,获取旗帜并提交给组织者,以获取积分和排名。这种比赛可以提高参赛者的安全意识和技能,也可以促进安全社区的交流和合作。
CTF解题模式
解题模式 (Jeopardy)常见于线上选拔比赛。在解题模式 CTF 赛制中,参赛队伍可以通过互联网或者现场网络参与,参赛队伍通过与在线环境交互或文件离线分析解决网络安全技术挑战获取相应分值,类似于 ACM编程竞赛、信息学奥林匹克赛,根据总分和时间来进行排名。
不同的是这个解题模式一般会设置 一血 、二血、三血,也即最先完成的前三支队伍会获得额外分值,所以这不仅是对首先解出题目的队伍的分值鼓励,也是一种团队能力的间接体现。
题目类型主要包含 Web网络攻防、Re逆向工程、Pwn二进制漏洞利用、Crypto 密码攻击、Mobile 移动安全以及 Misc安全杂项 这六个类别。
什么是逆向
逆向是指分析数据和程序的过程,旨在理解原理和工作原理,以及编写可控制的程序。
主要是:把二进制机器码反汇编得到的汇编代码,进行功能分析。
定义
软件代码逆向主要指对软件的结构、流程、算法、代码等进行逆向拆分及分析
对软件进行定制化和私人化,自己开发模块,把它嵌入,
把软件变得更顺手!
随心所欲~~
让自己的软件不同!
应用领域
主要应用于软件维护、软件破解、漏洞挖掘、恶意代码分析等
CTF中的逆向
平台: Windows、linux、Android、开发板
lot固件吗…
涉及:算法、加解密、反分析、反调试、系统机制等
现状
现在的awd全是脚本怪物
AWD:Attack With Defence,即攻防对抗,比赛中每个队伍维护多台服务器(一般两三台,视小组参赛人数而定),服务器中存在多个漏洞(web层、系统层、中间件层等),利用漏…
推荐书籍
Re4b
C++反汇编与逆向分析技术揭秘
加密与解密
程序员的自我修养
学习要点
逆向要潜心学习,入门慢,但是横向提高快!
buu nss上刷完就起飞了
逆向工程学习基础
熟悉如操作系统,汇编语言,加解密等相关知识具有多种高级语言的编程经验有较强的程序理解和逆向思维
耐得住寂寞
常规逆向流程
阶段一:信息收集
使用 strings/file/binwalk/strace
等工具收集信息
,并根据这些静态信息进行google/github 搜索
通过信息收集来指导你后续的工作,知道这个文件出自哪里的片段,边打比赛边学习!
阶段二:过保护后静态调试
研究程序的保护方法,检查是否存在代码混淆、壳、反调试等技术,并设法破除或绕过保护根据平台/语言选择相应反汇编/反编译器对目标软件进行静态分析,并根据一些程序特征快速定位到关键代码进行分析
阶段三:结合动态调试
结合动态调试,验证自己的静态分析猜想,在动调过程中进一步熟悉程序功能理清程序流程,
阶段四:写解题脚本逆向
根据正向算法推理逆向算法
写出解题脚本,求解 flag
例题概览
1-控制台程序
提示输入后,验证,决定你得不得到flag
解题过程
1.收集信息,如上所述
2.ida反汇编
3.为了更快分析程序,直接反编译
注意:有的没办法反编译出来,咱就只能看汇编了
4.动态调试
5.理清程序思路,明白了!
2-Crackme
在实战里面就是输入注册码
在题目里面就是flag
3-游戏
常规解法也可以解出来
但如果会开源框架,那解题速度大大增加!
4-移动安全
分析注册码生成逻辑
其他方法:开源框架
CTF逆向赛题共同点
出题套路
输入x
数据处理
判断输入是否正确
怎样出一道题?
怎样接收用户输入x
以什么形式来处理数据对输入做变换 f3(f2(f1(x)))…怎样解密密文判断输入是否正确
直接输出flag
输入就是flag
对输入做固定变换就是flag
真实世界中的逆向
攻击
病毒木马
软件破解
游戏外挂
软件漏洞挖掘与利用
防御
杀毒
木马检测
软件加固
外挂检测
软件漏洞检测与补丁
逆向知识大纲
逆向常用框架
🌸I could be bounded in a nutshell and count myself a king of infinite space.
特别鸣谢:木芯工作室 、Ivan from Russia