2021-11-16 Re 逆向工程略览 一 寄存器内存和栈【T.O.CTF】

在知乎的介绍中,软件逆向工程(Software Reverse Engineering),是指从可运行的程序系统出发,运用解密、反汇编、系统分析、程序理解等多种计算机技术,对软件的构、流程、算法、代码等进行逆向拆解和分析,推导出软件产品的源代码、设计原理、结构、算法、处理过程、运行方法及相关文档等。在CTF中的软件逆向工程就是对已经编译完成的可执行文件进行分析,从而找出或者计算出出题者予定的、想隐藏的flag。

作为已经学习逆向时长两个月零7天6个小时的菜鸡练习生,终于有机会开始逆向工程之旅。Travel to CTF。

CTF赛里,Re部分的核心,或者说研究对象就是可执行文件,学过C语言后,我们知道可执行文件的形成从源代码出发要经过编译和链接两部分。在实际的环境中,需要考虑可执行文件的大小,运行性能以及信息保护等等因素,每一步或多或少都有信息丢失:例如编译时会丢失注释信息、汇编时会丢失label(标签)名称,在链接时丢弃函数名、类型名等符号信息。这就是为啥大家在IDA里看不到函数的具体名称。

因为上世纪许多公司的竞争,可执行文件的文件格式会因为系统的不同而不同,Windows系统使用的是PE可执行文件,而Linux系统使用的是ELF(由COFF发展而来),而macOs是由Unix发展而来,可执行文件格式为Mach-O(?存疑,待证明),值得注意的是,网传的Linux完全继承自Unix是不准确的,林纳斯本人是依照Unix的模式写了个Linux,与Unix无继承关系,这就是为什么基于Unix的macOs不能运行针对Linux开发的应用。

PE文件由DOS头、PE文件头、节表以及各节数据组成,ELF文件由E

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值