【Android 逆向】x86 汇编 ( align | db | dw | dd | nop | 伪指令 )

简介: 【Android 逆向】x86 汇编 ( align | db | dw | dd | nop | 伪指令 )

文章目录

一、align 字节对齐指令

二、db / dw / dd 指令

三、nop 指令

总结





一、align 字节对齐指令


align 字节对齐 ; 默认情况下是 16 1616 字节对齐 ; 该指令是伪指令 , 没有机器码与之对应 ;


align 16h


内存中是分页的 , 如果要记录每一块内存的使用状况 , 需要占用很大的内存空间 , 为了方便系统中内存的使用与记录 , 首先将操作系统分页 , 只需要记录每个分页的使用情况即可 , 每个分页只有 使用 / 没有使用 两种状态 ;

如果有 8 88 个分页 , 只需要有 8 88 位 , 1 11 字节 , 就可以记录 8 88 个分页中 , 哪块内存使用了 , 哪块内存没有使用 ;


实际中 , 每个分页有 4 44 K , 以分页为单位 , 将内存分配给各个进程 ;


分页内部的数据 , 如果是乱的 , 如 第 0 00 字节有数据 , 然后空了 2 22 字节 , 第 3 33 字节才有下一个数据 , 这样内存的使用效率很低 , 这里就需要引入对齐操作 ;

将分页中的数据按照 4 44 字节对齐 , CPU 如果读取内存中的数据 , 可以直接读取数据 , 加载内存数据到高速缓存中 ; 如果没有对齐 , 还要进行地址操作 , 从间隔的内存中获取数据 ;


如果设置了 16 1616 字节对齐 , 数据只有 15 1515 字节 , 那么在数据后会空出一个字节 ;






二、db / dw / dd 指令


db 指令 , 用于声明 字符 / 字符串 常量 ;


# 声明字符
db 'a'
# 声明字符串
db 'a', 'b', 'c'


dw 指令 , 用于声明 2 22 字节短整型 ;


dw 0x1234


dd 指令 , 用于声明 4 44 字节长整型 ;


dd 0x12345678


上述 db , dw , dd 指令 , 都是伪指令 , 没有机器码与之对应 ;






三、nop 指令


nop 指令 是 空指令 , 没有参数 ; 该指令的作用是不做任何操作 ;


x86 汇编中 , nop 指令有对应的机器码 0x90 与之对应 ;






总结


align 字节对齐 , db 声明字符 / 字符串 , nop 空指令

cmp 比较 , test

call 调用 , jmp 跳转 (a , b , c , g , l , o , p , s , z , e , n)

lea , lds , les , lfs , lgs , lss , mov 移动

push , pop , pushf , popf , pushd , popd , pushad , popad , pusha , popa

ret , retn , set

add , sub , mul , div

xor , not , shl , shr , sal , sar , rol , ror , rcl , rcr


目录
相关文章
|
10月前
|
存储 Unix 编译器
汇编语言----X86汇编指令
汇编语言----X86汇编指令
406 2
|
10月前
|
编译器 API C语言
在x86架构汇编语言中函数参数传递的三种约定
在x86架构汇编语言中函数参数传递的三种约定
279 2
|
XML 存储 数据库
Android 逆向笔记 —— ARSC 文件格式解析
Android 逆向笔记 —— ARSC 文件格式解析
Android 逆向笔记 —— ARSC 文件格式解析
|
存储 JavaScript
x86汇编基础指令
x86汇编基础指令
x86汇编基础指令
|
存储 Android开发 索引
Android逆向:resource.arsc文件解析(Config List)
resource.arsc是APK打包过程中生成一个重要的文件,主要存储了整个应用哦中的资源索引。但是这个文件是一个二进制文件,并不可读,所以本文就通过解析它的二进制内容来读懂这个文件。
778 0
|
存储 Java 编译器
Android逆向之--------常见Davlik字节码解释
Android逆向之--------常见Davlik字节码解释
171 0
Android逆向之--------常见Davlik字节码解释
|
安全 Android开发
Android逆向之--------常用软件安装
Android逆向之--------常用软件安装
190 0
Android逆向之--------常用软件安装
|
XML Android开发 数据格式
Android逆向:二进制xml文件解析(Start Tag Chunk)
在Android中,xml文件经过编译后都是不可读的二进制文件。今天我们来解析一下这个二进制文件的内容,看看如何与我们的源码进行对应。
657 0
|
存储 缓存 Oracle
Android 逆向笔记 —— 说说 Dalvik 及其指令集
Android 逆向笔记 —— 说说 Dalvik 及其指令集
Android 逆向笔记 —— 说说 Dalvik 及其指令集
|
Java Android开发 Python
Android 逆向笔记 —— 一个简单 CrackMe 的逆向总结
Android 逆向笔记 —— 一个简单 CrackMe 的逆向总结
Android 逆向笔记 —— 一个简单 CrackMe 的逆向总结

热门文章

最新文章

  • 1
    Android历史版本与APK文件结构
  • 2
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
  • 3
    【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 4
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
  • 5
    【03】微信支付商户申请下户到配置完整流程-微信开放平台创建APP应用-填写上传基础资料-生成安卓证书-获取Apk签名-申请+配置完整流程-优雅草卓伊凡
  • 6
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 7
    Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件
  • 8
    escrcpy:【技术党必看】Android开发,Escrcpy 让你无线投屏新体验!图形界面掌控 Android,30-120fps 超流畅!🔥
  • 9
    Android实战经验之Kotlin中快速实现MVI架构
  • 10
    即时通讯安全篇(一):正确地理解和使用Android端加密算法