搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
喵喵爱编程
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
Python多元线性回归_简单的多元线性回归数据集
2
基于物理信息的神经网络(PINN)热门研究成果盘点_pinn综述
3
《安卓app应用开发》课程阶段总结_安卓应 开发课程总结
4
程序员30岁以后的发展迷途_程序员30后的发展
5
构建堆的时间复杂度_二叉堆建堆时间复杂度
6
Transformer实战-系列教程2:Transformer算法解读2_清华大学2024版transformer教程
7
【知识点】微信小程序Store/Computed/Watch的使用_微信小程序计算属性
8
推荐开源项目:深度卷积LSTM(DeepConvLSTM) - 智能穿戴设备活动识别利器
9
kubeedge 安装_execute keadm command failed: timed out waiting fo
10
css伪类和伪元素区别_css怎么判断是用的伪类还是伪元素
当前位置:
article
> 正文
逆向工程 1_逆向工程(一):汇编、逆向工程基础篇
作者:喵喵爱编程 | 2024-07-24 17:16:57
赞
踩
逆向工程(一):汇编、逆向工程基础篇
逆向工程(一):汇编、逆向工程基础篇
汇编是逆向工程的基础
1.位是电脑数据量的最小单位,字节是最基本单位。其他还有字(16位),双字(24位),千字(1024字节),兆(1048576字节),电脑数据单位进制为 1024.
2.寄存器是电脑的数据储存位置。特别注意ESP,EBP,EIP.
AX是这个32位寄存器的名字,EAX的低16位部分被称作AX,AX又分为高8位的AH和低8位的AL两个独立寄存器。
3.寄存器大小分为i.单字节寄存器:
AL and AH
BL and BH
CL and CH
DL and DH
ii.单字寄存器,包含两个单字节寄存器。包括:通用寄存器,索引寄存器(指针寄存器),段寄存器,指令指针寄存器
iii. 双字(32位)寄存器:
2字=4字节=32位,EAX、EBX、ECX、EDX、EDI……
如果16位寄存器前面加了‘E’,就代表它们是32位寄存器。例如,AX=16位,EAX=32位。
4.标志寄存器,代表某种状态,注重Z-Flag(零标志),The O-Flag(溢出标志),The C-Flag(进位标志)。
ZF是破解中用得最多的寄存器(通常情况下占了90%),它可以设成0或者1。若上一个运算结果为0,则其值为1,否则其值为0。OF寄存器在逆向工程中大概占了4%,当上一步操作改变了某寄存器的最高有效位时,OF寄存器会被设置成1。进位寄存器的使用大概占了1%,如果产生了溢出,就会被设置成1。
5.段偏移:一个段是一本书的某一页:偏移量是一页的某一行。
6.栈:栈是内存里可以存放稍后会用到的东西的地方,临时存放,最后存入数据最先输出。
指令ADD(加):加法指令将一个数值加在一个寄存器上或者一个内存地址上。
AND (逻辑与) ,AND运算对两个数进行逻辑与运算。同真为真(1),否则为假(0)
CALL (调用):CALL指令将当前的相对地址(IP)压入栈中,并且调用CALL 后的子程序
CDQ:CDQ指令第一次出现时通常不好理解。它通常出现在除法前面,作用是将EDX的所有位变成EAX最高位的值。
CMP (比较):CMP指令比较两个值并且标记CF、OF、ZF
DEC (自减):dec用来自减1,相当于c中的–
DIV (除):IV指令用来将EAX除以除数(无符号除法),被除数通常是EAX,结果也储存在EAX中,而被除数对除数取的模存在除数中。
IDIV (整除):IDIV执行方式同div一样,不过IDIV是有符号的除法,idiv指令可以标记CF、OC、ZF。
IMUL (整乘):MUL指令可以把让EAX乘上一个数(INUL 数值)或者让两个数值相乘并把乘积放在目标寄存器中(IMUL 目标寄存器, 数值,数值)或者将目标寄存器乘上某数值(IMUL 目标寄存器, 数值)
INC (自加):INC同DEC相反,它是将值加1,INC指令可以标记ZF、OF
INT:INT 的目标数必须是产生一个整数(例如:int 21h),类似于call调用函数,INT指令是调用程序对硬件控制,不同的值对应着不同的功能。
LEA (有效地址传送):LEA可以看成和MOV差不多的指令LEA ,它本身的功能并没有被太广泛的使用,反而广泛运用在快速乘法中
MOV (传送):MOV指令将源数赋值给目的数,并且源数值保持不变
MUL (乘法):同IMUL一样,不过MUL可以乘无符号数。
NOP (无操作):这个指令说明不做任何事,所以它在逆向中运用范围最广
OR (逻辑或):语法:OR 目的数,源数,OR指令对两个值进行逻辑或运算
POP:POP指令将栈顶第一个字传送到目的地址。 每次POP后,ESP(栈指针寄存器)都会增加以指向新栈顶
PUSH:PUSH是POP的相反操作,它将一个值压入栈并且减小栈顶指针值以指向新栈顶。
REP/REPE/REPZ/REPNE/REPNZ:重复上面的指令:直到CX=0。ins必须是一个操作符,比如CMPS、INS、LODS、MOVS、OUTS、SCAS 或 STOS
RET (返回):RET指令的功能是从一个代码区域中退出到调用CALL的指令处。RET digit在返回前会清理栈.
SUB (减):SUB与ADD相反,它将源数减去目的数,并将结果储存在目的数中SUB可以标记ZF、OF、CF
TEST:这个指令99%都是用于”TEST EAX, EAX”,它执行与AND相同的功能,但是并不储存数据。如果EAX=0就会标记ZF,如果EAX不是0,就会清空ZF
XOR:XOR指令对两个数进行异或操作这个指令清空OF、CF,但会标记ZF
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/喵喵爱编程/article/detail/875946
推荐阅读
article
大
数据
算法
_
大
数据
算法
解析
,
如何创建
用户
画像
实现千人千面?...
“一面科技
,
一面生活技术与社交电商的完美融合打开了全新的幸福视界”幸福蜜糖2020·11·5
大
数据
算法
无处不在"处在如今...
赞
踩
article
用户
画像
与
用户
分层
_
用户
画像
用户
分层
怎么写...
用户
画像
是重要的数据产品和运营抓手,指能够描述和刻画
用户
信息和的数据指标。通过
用户
画像
,业务经营团队可以充分、深入、准确...
赞
踩
article
java
八股
面试
文
(带答案
,
万字总结
,
精心打磨
,
建议收藏)堪称2024最强
_
java
面试
八股
文
...
多同学会问Java
面试
八股
文
有必要背吗?。你可以讨厌这种模式
,
但你一定要去背
,
因为不背你就进不了大厂。国内的互联网
面试
,
...
赞
踩
article
python
_
类
鸟群
:仿真
鸟群
_
python
boid
模拟
鸟群
飞行...
import sys, argparseimport mathfrom turtledemo.clock import ...
赞
踩
article
面向国内
开发者
免费!
字节
跳动发布“
豆包
MarsCode
”智能
开发工具
_
字节
跳动发布智能
开发工具
“
豆包
...
6 月 26 日,
字节
跳动在北京发布了基于
豆包
大模型打造的智能
开发工具
——
豆包
MarsCode
,面向国内
开发者
免费开放...
赞
踩
article
ROS2
+
TurtleBot3
+
Cartographer
+Nav2建图保存_
cartographer
...
最近在学习
Cartographer
框架,没有真实小车,想着就在模拟器里跑,我们在学习初期,可以运用官方提供的Turtle...
赞
踩
article
大
数据
:
用户
画像
_大
数据
用户
画像
...
大
数据
项目在实践过程中,经常遇到落地难的问题,笔者这里从分析开始讲述大
数据
实际使用场景,
用户
画像
是我们经常听到的一个词,...
赞
踩
article
Mac
M1
芯片
环境下
安装
HomeBrew
_m1
芯片
和
intel
芯片
可执行文件
存在哪里...
国内版自动
安装
脚本(约10分钟)复制后打开终端,根据提示进入
安装
,选择国内源,过程需要输入开机密码/bin/zsh -c...
赞
踩
article
一款
Linux
、
数据库
、
Redis
、
MongoDB
统一
管理
平台,这个开源平台非常好用!_开源数据...
一款
Linux
、
数据库
、
Redis
、
MongoDB
统一
管理
平台,这个开源平台非常好用!_开源
数据库
管理
平台开源
数据库
...
赞
踩
article
Python
调用
pyspark
报错整理...
文章讲述了如何在PyCharm中配置SSH服务器和Anaconda的
Python
解释器,以便远程执行SparkSQL。遇...
赞
踩
article
promise
的
原理
和几种使用
方法
_
promise
原理
...
promise
的
原理
和几种使用
方法
_
promise
原理
promise
原理
promise
...
赞
踩
article
重载
new
和
delete
运算符...
内存管理运算符
new
、
new
[]、
delete
和
delete
[] 也可以进行重载,其重载形式既可以是类的成员函数,...
赞
踩
article
多
模态
大
模型
:技术原理与实战 如何提高
多
轮对话能力_支持
多
轮对话
的
多
模态
大
模型
...
1. 背景介绍1.1 单
模态
模型
的
局限性近年来,人工智能领域取得了显著进展,特别是自然语言处理(NLP)方向,各种预训练...
赞
踩
article
基于
SpringBoot
和
HeatMap
的
全球
地震
热
力图
可视化
实践_前端地
热
力图
...
本文将结合中国
地震
台网数据集,使用
HeatMap
热
力图
插件做
可视化
,后端使用
SpringBoot
框架进行业务逻辑开发组件...
赞
踩
article
全量知识系统 程序详细设计
之
“
因果关系
模型”(Q&A百度搜索)_
因果关系
揭示
了
事件
之
间
的
相互作用
和...
人类类比推理、机器推论推理和逻辑演绎推演是三种不同
的
推理方式,而数据集是一组数据
的
集合,通常用于机器学习、数据分析等领域...
赞
踩
article
「
豆包
Marscode
体验
官」 |
云端
IDE
启动 &
Rust
体验
...
theme: cyanosis我正在参加「
豆包
MarsCode初
体验
」征文活动MarsCode 可以看作一个运行在服务端...
赞
踩
article
ntfs
是什么
硬盘
?
ntfs
硬盘
如何在
苹果电脑
使用
...
NTFS是现在非常受欢迎的一种
硬盘
格式,它具有高读写性能、高安全性和基本不受文件大小限制的优势,它的缺点就是无法在原生苹...
赞
踩
article
软件
服务
外包概论...
学习资料:
软件
服务
外包概论,赵艳红学习计划:24h内列几个重点知识,一定要看印度 中国的
服务
外包 案例第一章 绪论外包定...
赞
踩
article
使用
springboot
简单整合
springsecurity
和
mybatis
-
plus
_spring...
1、概述Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架。它是用于保护基于Spring的...
赞
踩
article
C++
——
内存
管理
(
new
和
delete
)详解...
来在堆上
管理
堆上的空间,但在c++中进行了更新。_
new
和
delete
new
和
delete
...
赞
踩
相关标签
大数据算法
用户运营
java
面试
开发语言
jvm
职场和发展
spring boot
人工智能
豆包大模型
AI编程
IDE
MarsCode
linux
用户画像
macos
数据库
mongodb
redis
python
javascript
前端
内存管理
c/c++