软件逆向入门理论

news/2026/1/20 15:22:47/文章来源:https://www.cnblogs.com/mysticbinary/p/19062199

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


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

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

下面粗浅的进行软件逆向入门,将选择经典的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.rhkb.cn/news/161200.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙应用开发从入门到实战(七):ArkTS组件声明语法

《鸿蒙应用开发从入门到项目实战》系列文章持续更新中,陆续更新AI+编程、企业级项目实战等原创内容、欢迎关注!​本文从界面制作从组件声明开始,通过一个相对简单的案例来系统的学习 ArkTS 声明组件的语法。大家好,我是潘Sir,持续分享IT技术,帮你少走弯路。《鸿蒙应用开发…

P1115 最大子段和

P1115 最大子段和 妙#include <bits/stdc++.h> using namespace std; #define int long long const int maxn = 2e5 + 10;int n,a[maxn],dp[maxn]; int ans = -100010;signed main(){// freopen("in","r",stdin);ios::sync_with_stdio(0);cin >&g…

麒麟系统关闭防火墙

有时远端连接数据库时出现 连接超时 ,则有可能是 麒麟系统的防火墙 开启了,最简单的方法是关闭防火墙#查看防火墙状态 sudo systemctl status firewalld #检查 firewalld 是否运行 #或 sudo systemctl status ufw #检查 ufw 是否运行 (部分系统适用)#临时停止防火…

Windows Server 2019开启远程桌面无法远程处理

故障现象 Windows Server 2019开启了远程桌面但是无法远程 Telnet对应端口3389也不通 故障原因 远程服务Down了 修复 到服务管理重启远程服务Remote Desktop Service如果提示病毒则关闭本机自带杀毒

英语_阅读_This makes me crazy_待读

My parents know little about high-tech products. 我的父母对高科技产品几乎一无所知。 Computers, mobile phones, iPads ... They cant use any of them! 电脑、手机、平板……他们一个都不会用! Every time Im home for a holiday, my parents ask me how to take a phot…

一位华裔数学家40年目睹之怪现状:美国学生的数学为什么那么差?

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087最近在《知识分子》上读到一篇特写《数学战争警示录:我们需要什么样的数学教育?》,颇有感触。在这俄乌战争已持续三年有余、…

这些年轻科学家不再满足于“追赶美国”

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087 添加图片注释,不超过 140 字(可选)在很长一段时间里,硅谷是全球AI人才的终点站。而中国曾是最大的人才输出地,把一代又一…

英语_阅读_

My parents know little about high-tech products. 我的父母对高科技产品几乎一无所知。 Computers, mobile phones, iPads ... They cant use any of them! 电脑、手机、平板……他们一个都不会用! Every time Im home for a holiday, my parents ask me how to take a phot…

英语_阅读_BMI_待读

56. What is Chinas recent success in BMI? 中国在脑机接口方面最近的成功是什么? A paralyzed patient was able to drink water by controlling a glove with his brain. 一位瘫痪患者能够通过用大脑控制手套来喝水。57. What is the external device in the recent exper…

0130_中介者模式(Mediator)

中介者模式(Mediator) 意图 用一个中介对象来封装一系列的对象交互。中介者使各个对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 UML 图优点降低耦合度:将对象间的一对多关联转变为一对一的关联,减少对象间的依赖 集中控制:将交互逻辑集…

2025介绍1个简单好用免费的版权符号复制生成网站

最近安装了claude code,这编程真是很爽啊,直接把需求告诉他就行了,很快,已经彻底放弃cursor啦!顺便做了个复制版权符号的网站https://copyrightsymbol.app 一句话介绍网站: 复制版权符号,和版权符号相关的一切小功能,免费无登录 网站地址: https://copyrightsymbol.ap…

【GitHub每日速递 250917】69k 星标!这个 MCP 服务器大集合,竟能解锁 AI 无限可能?

原文:【GitHub每日速递 250917】69k 星标!这个 MCP 服务器大集合,竟能解锁 AI 无限可能?爆火!garak——大语言模型漏洞扫描神器全揭秘 garak 是一个用于检测大语言模型漏洞的扫描工具。简单讲,它能自动发现AI模型中的安全弱点和潜在风险。适用人群:AI安全研究人员、模型…

WPF 通过 WriteableBitmap 实现 TAGC 低光增强效果算法

我在寻找将一些拍摄出来的比较暗的图片进行光亮增强的算法,用于处理我出门拍的一些照片。我从博客园找到了 Imageshop 大佬记录的伊拉克团队的TAGC(低光增强效果)算法实现,通过阅读大佬的博客和对应的论文,基于 WPF 的 WriteableBitmap 实现 TAGC 低光增强效果算法开始之前…

css-3

css的基础选择器css的关系选择器css的文本样式css的继承性css的分组选择器伪类选择器css的属性选择器

Linux服务器部署FRP及配置Token

Linux服务器部署0.64.0版本frp并配置systemctl,Windows安装frpmgr管理多服务器多连接。相关软件 fatedier/frp: A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet. Release v0.64.0 fatedier/frp koho/frpmgr: A user-frie…

Player Mini MP3 模块播放音乐

资料下载链接:https://sourl.cn/qyLfwP 1、概述该模块是一款小巧且价格低廉的 MP3 模块,可以直接接驳扬声器。模块配合供电电池、扬声器、按键可以单独使用,也可以通过串口控制,作为 Arduino UNO 或者是任何有串口的单片机的一个模块。模块本身完美的集成了 MP3、WAV、WMA …

RSA 共模攻击

模运算: 两个数相除的余数。共模攻击常见题目说明:共模攻击就是:同一个 RSA 模数 n 下,不同公钥指数加密同一明文时,可以通过求贝祖系数直接算出明文。我们来深入讲解 RSA 共模攻击(Common Modulus Attack)。从原理、条件、数学推导到实际利用,逐步推进。 1️⃣ 背景概…

linux系统编程05-标准IO1

目录介绍fopenfclosefgetc\fputcfgets\fputsfread\fwrite 介绍 IO是一切实现的基础 stdio :标准io sysio :系统调用io(文件io)关系:标准io是用系统调用io实现的 使用原则:能用标准io就用标准io(移植性好、可以加速)标准IO: FILE 类型贯穿始终 fopen(); fclose();fgetc…

linux系统编程07-文件IO\系统调用IO

目录介绍文件描述符的概念open\closeread\write\lseek标准IO与系统调用IO的区别其他内容dup\dup2文件同步fcntl\iocntl 介绍文件描述符的概念备用图文件是一块磁盘空间,有一个编号 inode ,每次 open 一个文件时,会创建一个结构体,链接 inode ,存储文件的信息,结构体的首地…

linux系统编程06-标准IO2

目录printf\scanf函数族fseek\ftell\rewindgetline临时文件 printf\scanf函数族 printf一族: man 3 printf int printf(const char *format, ...); int fprintf(FILE *stream, const char *format, ...); int dprintf(int fd, const char *format, ...); int sprintf(char *st…