[笔记]CTF逆向入门教程

您所在的位置:网站首页 ctf逆向基础 [笔记]CTF逆向入门教程

[笔记]CTF逆向入门教程

2024-06-13 20:23| 来源: 网络整理| 查看: 265

形式 CTF竞赛中,reverse的题目囊括广泛,一切可执行代码均可以用于进行隐藏flag并要求进行逆向。常见的有: a. Win32程序,包括32位、64位应用程序,特征为PE格式 b. Linux程序,特征为ELF文件 c. Android程序,特征为Apk安装包 d. MacOS程序 e. 工程代码源文件,例如.c文件、.py文件、.class文件。 f. 可执行代码片段,包括已编译但是无法正确运行的代码片段、未编译或中途编译文件等 值得一提的是,Linux、Android、MacOS可执行文件都基于Linux内核,因而在分析时具有较为相似的特征和语法结构。 上面列出的“程序”并不一定可以执行,某些情况下因为系统差异、运行时库缺失、架构不符等原因,这些可执行程序并不一定能够执行。

语言要求 对于逆向工程,由于编译后的应用程序多由字节码写成,因此从字节码回编译到可读文本时不能完全恢复工程源代码文件,因此需要掌握多门技术语言。 a. 汇编语言 汇编语言(assembly language)是任何一种用于电子计算机、微处理器、微控制器,或其他可编程器件的低级语言。 在不同的设备中,汇编语言对应着不同的机器语言指令集。 一种汇编语言专用于某种计算机系统结构。 x86/amd64汇编指令的两大风格分别是Intel汇编与AT&T汇编,分别被Microsoft Windows/Visual C++与GNU/Gas采用(Gas也可使用Intel汇编风格) 关于两种汇编风格的区别,可以访问汇编语言的Wikipedia介绍 获取相关信息 image

并不需要完全学习所有汇编指令和所有汇编语言,从一种汇编语言风格可以很方便的类推另一种风格,只需要注意其区别 b. C语言 作为一种高效的一种高级语言,C语言是大多数底层API实现的基本语言。另外,在IDA中反汇编生成的pseudocode也是C语言风格,熟悉C语言可以对逆向生成的一些结果有很好的快速察觉。 c. Python Python是一种方便的、易于学习的高级语言,在解密、爆破中经常使用Python进行脚本编程。由于大部分问题的答案求解并不复杂,因此对代码执行的效率要求并不高,使用Python作为求解器是可能的 另一方面,Python丰富的包为大多数求解器的开发提供了大量的便利。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3