[ctf逆向001]:逆向工程体系化入门
逆向工程体系化入门
文章目录
- 逆向工程体系化入门
- 一、课前测试
- 二、逆向工程基础体系
- 三、数据的存储及表示
- 四、C语言编译过程
- 五、汇编语言
- 六、内存管理
- 七、PE文件
- 八、相关资源
一、课前测试
1、X86寄存器中,EAX寄存器主要用于()
A 计数器 B 累加器 C 函数返回值 D 程序指针
2、C语言中,printf函数属于哪个标准库?()
A time.h B string.h C stdio.h D ctype.h
3、函数调用时,用于保存参数的数据结构是?()
A 链表 B 栈 C 堆 D队列
4、32位CPU的内存寻址空间为?()
A 1G B 2G C 4G D 8G
5、在下列编程语言中,开发效率最高的是?()
A 机器语言 B 汇编语言 C C语言 D C++语言
6、ASCII码使用几个bit进行编码?()
A 7 0x00-0x7f B 8 C 16 D 24
7、下面的动态链接库中,哪个是图形设备接口?()
A kernel32.dll B User32.dll C GDI32.dll D advapi32.dll lib
8、数据在内存中有两种存储方式,分别是大端存储和小端存储,Windows操作系统采用的是哪一种存储方式?()
A 大端 B 小端
二、逆向工程基础体系
逆向工程是计算机领域或网络安全领域难度较大的学习内容,需要的前置知识点较多,包括数据的存储及表示、C语言、C++、汇编语言、操作系统、Windows操作系统、Linux操作系统、ELF文件、PE文件、算法、计算机组成原理、数据结构等。标红部分为本节课主要讲解的内容。
三、数据的存储及表示
数据的存储及表示包括进制及转换、数据的宽度及表示范围、文本字符等内容。
四、C语言编译过程
1、从源代码到可执行文件
- 在命令行中执行gcc hello.c可生成a.out。
- 如果要指定目标文件的名称,命令为:gcc hello.c -o hello
- 整个编译过程分为4个步骤:预处理(Preprocessing)、编译(Compilaiton)、汇编(Assembly)和链接(Linking)。
2、预编译
- gcc -E hello.c -o hello.i
- 预编译过程主要处理源代码中以“#”开始的预编译指令
3、编译
- 编译的命令为: gcc -S hello.c -o hello.s
4、汇编
- 命令为gcc -c hello.s -o hello.o或者gcc -c hello.c -o hello.o
- 可通过objdump查看目标文件:objdump -sd hello.o
5、链接
- 命令为gcc hello.o -o hello
- 通过objdump可查看可执行文件的内容:objdump -d -j .txt hello
- 目标文件需要链接一大堆文件才能得到最终的可执行文件。链接过程包括地址和空间分配(Address and Storage
Allocation)、符号决议(Symbol Resolution)和重定向(Relocation)等。
五、汇编语言
图中对汇编语言寄存器和指令进行梳理,并包含了大量的实验。
六、内存管理
内存管理主要包含内存的基本概念、栈与调用约定、堆与内存管理。内存布局和堆栈是核心。
七、PE文件
PE文件是portable File Format(可移植文件)的简写,我们比较熟悉的DLL和exe文件都是PE文件。了解PE文件格式有助于加深对操作系统的理解,掌握可执行文件的数据结构机器运行机制,对于逆向破解,加壳等安全方面方面的同学极其重要。
八、相关资源
思维导图高清及原格式图
1、逆向工程基础
2、数据的存储及表示
3、汇编语言
4、内存管理
5、Windows操作系统
6、PE文件
文本资源
1、C语言编译过程
2、测试题
工具
1、OD
2、c32asm
3、RadASM
其他
1、radasm+od查看实验数据
2、hello.c
百度网盘链接:https://pan.baidu.com/s/1Wxtf0avHZRN6BZ92cmUjpw
提取码:m05m
[ctf逆向001]:逆向工程体系化入门相关推荐
- 自己收集的一些逆向工程的入门概念——壳、注册机、算法求逆、反病毒、免杀
一.软件逆向工程 大多数时候都会被简称为逆向工程(Reverse engineering)或直接将其称为逆向(Reverse).软件逆向工程的基本思路是将二进制代码按照一定格式进行正确有效的反汇编,并 ...
- CTF逆向-[MRCTF2020]VirtualTree-恒成立的jz花指令去除及smc变换原执行流程在二叉树上的应用,通过逆向思维编写脚本以解决
CTF逆向-[MRCTF2020]VirtualTree-恒成立的jz花指令去除及smc变换原执行流程在二叉树上的应用,通过逆向思维编写脚本以解决 来源:https://buuoj.cn/ 内容: 附 ...
- 逆向工程恶意软件入门(基础篇)
本文讲的是逆向工程恶意软件入门(基础篇), 前言 在这个系列文章中,我会向大家介绍逆向工程恶意软件的各个方面的知识.逆向工程恶意软件是一个很深奥和复杂的主题,因此很少有人掌握它,这也是这个领域的薪酬很 ...
- CTF逆向-[b01lers2020]little_engine-cpp基本函数用法和byte类型要点
CTF逆向-[b01lers2020]little_engine-cpp基本函数用法和byte类型要点 来源:https://buuoj.cn/ 内容: 附件:https://pan.baidu.co ...
- 逆向爬虫14 Mongo入门
逆向爬虫14 Mongo入门 一.MongoDB和MySQL的区别 MongoDB 是一种 非关系型数据库,存放任意形式的 json 格式数据:而 MySQL 是一种 关系型数据库,只能存放事先定义好 ...
- 【2021.12.25】ctf逆向中常见加密算法和编码识别
[2021.12.25]ctf逆向中常见加密算法和编码识别(含exe及wp) 文章目录 [2021.12.25]ctf逆向中常见加密算法和编码识别(含exe及wp) 0.前言 1.基础加密手法 2.b ...
- CTF竞赛技术 - CRYPTO从入门到放弃
CTF竞赛技术 - CRYPTO从入门到放弃 CRYPTO是CTF中常见的一种题型,一般包括各种类型的密码学.编码.编程语言加密等知识点,有时候也会包含一些考验选手脑洞的题目. 不常见的密码学知识 文 ...
- CTF逆向-Upx脱壳攻防世界simple unpack
文章目录 前言 UPX 技术原理 应用范围 软件使用 CTF实战 程序查壳 UPX脱壳 总结 前言 加壳软件分两类: 压缩壳:压缩的目的是减少程序体积,如 ASPack.UPX.PECompact 等 ...
- WP-南邮CTF逆向第六题 WxyVM2
WP-南邮CTF逆向第六题 WxyVM2 用记事本打开WxyVM2,发现是elf文件 用ida pro载入这个文件,找到main函数 这个地方有个红色的部分 ,意思是块内容太大,无法显示, 这里我们先 ...
最新文章
- Android Training - 使用IntentService运行任务(Lesson 2 - 发送任务给IntentService)
- 使用PCA对特征数据进行降维
- Java 集合框架 : Collection、Map
- Linux面试题集锦,测测你的水平(答案)四
- spring集成jndi_Spring应用程序与JNDI连接池的集成测试
- 1.原生js封装的获取某一天是当年的第几周方法
- 利刃 MVVMLight 2:Model、View、ViewModel结构以及全局视图模型注入器的说明
- 玩抖音,你喜欢的,都是对自身没好处的
- HTML5 响应式网页设计之页面美化(一.响应式布局)
- 转错误	x	error LNK1104: 无法打开文件“E:\xxxx\Debug\xxxx.exe”
- linux 烧录树莓派镜像,Linux命令行烧录树莓派镜像至SD卡
- transformermo
- 测试“测试”的“测试”
- 数学分析 复合函数求导法则
- 倒F印刷天线设计与实战
- 计算机专业 一级结构工程师,2018年一级结构工程师《计算机应用基础》练习题(8).doc...
- JavaScript - 获取、修改 title 元素的内容
- 1044 : 不及格率
- 空间数据挖掘与空间大数据的探索与思考(五)
- 阿里云创建AccessKey