CTF入门指北——reserve

W1ndys Lv6

来自西安电子科技大学 Moectf

逆向工程(re)

来自维基

逆向工程(英语:Reverse Engineering),又称反向工程,是一种技术仿造过程。 即对一项目标产品进行逆向分析及研究,从而演绎并得出该产品的处理流程、组织结构、功能性能规 其主要目的是,在无法轻易获得必要的生产信息下,直接从成品的分析,推导产品的设计原理

那么,我们要做的是对于软件的逆向工程

一般,CTF 中的逆向工程题目形式为:程序接收用户的一个输入,并在程序中进行一系 列校验算法,如通过校验则提示成功,此时的输入即 flag。这些校验算法可以是已经成 熟的加解密方案,也可以是作者自创的某种算法。比如,一个小游戏将用户的输入作为 游戏的操作步骤进行判断等。这类题目要求参赛者具备一定的算法能力、思维能力,甚 至联想能力。

我们知道,我们可以阅读源代码,了解一个程序的功能 但是一个程序不一定需要源代码才能运行。 事实上,我们在运行可执行文件,那么他 们打开来实际上是一些二进制数据。

例如下面这一段程序源码

1
2
3
4
#include <stdio.h>
int main(){
printf("Hello world");
}

我们使用记事本打开就能看到逻辑。但是真正编译出来的,我们用来运行的程序,使用 记事本打开是这样的

这些二进制数据直接无法识读,但是包含了程序执行所需要的东西,而我们的工作就 是,识读他们,找到 flag!

如何开始逆向呢

ctf 中的逆向( reverse )涉及很多编程语言,最常见的是 C、C++ 、python、java、C#,或者一 常见的编程语言 golang、rust、lisp 等等。 除了 windows 与 linux 系统下可执行文件的逆向,还经常遇到安卓的( apk )逆向、系统驱动、固 件逆向等等。 但是作为一个 beginner ,你不需要在刚入门的时候就去掌握这么多的编程语言 从 C 语言以及 C 语言逆向开始,是一个比较好的选择 因为 C 语言十分接近高级语言,又有充分的系统底层的支持 同时入门的逆向题很多是用 C 语言写的 并且当你学会了 C 语言,尽管你无法使用 java、python 等语言进行编程,但是你会发现,看懂这些高 语言写的代码还是比较容易的。

常用工具

来自含树

常用工具介绍

1.IDA Pro

IDA(Interactive DisAssembler)Pro(以下简称 IDA)是一款强大的可执行文件分析工 具,可以对包括但不限于 x86/x64、ARM、MIPS 等架构,PE、ELF 等格式的可执行文件进行静态分析和动态调试。IDA 集成了 Hex-Rays Decompiler,提供了从汇编语言到 C 语言伪代码的反编译功能,可以极大地减少分析程序时的工作量

2.OllyDbg 和 x64dbg

OllyDbg 是 Windows 32 位环境下一款优秀的调试器,最强大的功能是可扩展性,许多开 发者为其开发了具备各种功能的插件,能够绕过许多软件保护措施。但 OllyDbg 在 64 位 环境下已经不能使用,许多人因此转而使用了 x64dbg。

这些怎么下载?

爱盘 - 最新的在线破解工具包 (52pojie.cn)

下好了怎么用呢

推荐查阅一些书籍,如 《从 0 到 1:CTFer 成长之路》 re 篇

或者直接 b 站搜 ctf re 入门

以及第一题的 bin 在压缩包里,试试 ida 吧,你会需要它的。

  • 标题: CTF入门指北——reserve
  • 作者: W1ndys
  • 创建于 : 2023-09-13 20:20:00
  • 更新于 : 2025-04-09 18:53:56
  • 链接: https://blog.w1ndys.top/posts/7237d71d.html
  • 版权声明: 版权所有 © W1ndys,禁止转载。
评论