当前位置: 首页 > news >正文

软件逆向入门理论

目录
  • 大脉络
  • 软件的构成


软件逆向是一种技术手段,它能达成的目的:

  • 分析该软件的漏洞;
  • 分析这个软件,想作为跳板获取其他软件、系统的更高权限;
  • 分析该软件的安全性、可靠性等;
  • 分析该软件的构成;

下面粗浅的进行软件逆向入门,将选择经典的x86平台下的软件来进行分析。

主要梳理系统和软件的层次功能区别,最后以一个典型案例结尾。


大脉络

  • CPU
    • 寄存器,各寄存器的运行逻辑
  • 系统
    • 汇编指令,各指令的运行逻辑
    • 编程语言指令,各指令的运行逻辑

软件的构成

x86的windows系统下的软件,是以一个.exe文件去执行的,一个.exe 通常是一个PE格式的文件。

PE的定义:
PE是一个可移植的可执行文件(Executable File)的蓝本,系统在创建一个进程时,就会依照这个蓝本按部就班执行下去。

接着问 什么是可执行文件?
可执行文件是为进程创建所服务的,进程在运行之前,需要将该进程所需要运行的代码、该进程支持的相关数据等一个进程创建所必须的信息以某种格式存储在磁盘中,而这种格式就是可执行文件格式。

这个文件格式由操作系统直接加载执行,系统运行程序都是以创建进程的方式。

简单来说就是在进程创建之前会将该进程创建所需要的信息以可执行文件格式存储在磁盘中,同样也可以说进程创建所需要的信息会在可执行文件中详细记录。

有了该进程的详细记录,那么操作系统在创建进程的时候就可以根据该进程的详细记录来创建进程,也就是说可执行文件是进程创建的前身。

但可执行文件和进程不能完全划等号,因为进程是动态的,是会根据你的操作变化而变化;

而可执行文件是静态的,是没有执行权的。

PE结构可以大致分为如下5部分:

  • DOS部分
  • PE文件头
    包含文件的基本信息,如CPU类型、入口点地址、所需的子系统等。
  • 节表(块表)
    描述文件中各个“节”或“区段”的表。节是实际存放代码、数据、资源等内容的地方(如 .text, .data, .rsrc)
  • 节数据(块数据)
  • 调试信息

打开一个.exe,里面都是用二进制数据记录了各个部分的信息,5个部分如同5个部门各司其职,有专门的符号去分割开。
image

...逆向可真是量大管饱呀.....(ㅎ-ㅎ;)

http://www.rkmt.cn/news/6446.html

相关文章:

  • P1115 最大子段和
  • Windows Server 2019开启远程桌面无法远程处理
  • 一位华裔数学家40年目睹之怪现状:美国学生的数学为什么那么差?
  • 英语_阅读_
  • Flutter数据可视化:fl_chart图表库的高级应用
  • 2025 年 PHP 常见面试题整理以及对应答案和代码示例
  • 2025介绍1个简单好用免费的版权符号复制生成网站
  • U3D 动作游戏开发中数学知识的综合实践案例
  • 基于 RQ-VAE 的商品语义 ID 构建及应用案例
  • Player Mini MP3 模块播放音乐
  • 最大子列和问题
  • week1task
  • 计组博文
  • 《原子习惯》-读书笔记3
  • Java SE 25新增特性
  • linux系统编程09-进程间通信
  • linux系统编程07-文件IO\系统调用IO
  • 第03周 预习、实验与作业:面向对象入门2与类的识别
  • 第8篇、Kafka 监控与调优实战指南
  • linux系统编程02-进程基本知识
  • Say 题选记(9.14 - 9.20)
  • 数学基本结构框架
  • 在 Tailscale 中禁用 DNS
  • 【青少年低空飞行玩意】设计图以及项目概况
  • 20250916 之所思 - 人生如梦
  • 今日学习 dos命令和Java基础语法
  • 课前问题列表
  • office2024免费永久激活安装包下载安装教程包含(下载安装配置激活)
  • 该练习 DP 了!
  • 本周计划