一文带你熟练掌握android的arm32汇编指令。

1.ARM32的常见指令解析

ADC 带进位加法指令,ADD 加法指令, AND 逻辑与指令,B 分支指令, BIC 位清零指令,BL 带返回的分支指令,BLX 带返回和状态却换的分支指令,BX 带状态却换的分支指令。CDP 协处理器数据操作指令, CMN 比较反值指令, CMP 比较指令,EOR 异或指令,LDC 存储器到协处理器的数据传输指令LDM 加载多个寄存器指令,LDR 存储器到寄存器的数据加载指令,MCR 从ARM寄存器到协处理器寄存器的数据传输指令,MOV 数据传送指令,MRC 从协处理器寄存器到ARM寄存器的数据传输指令MUL 32位乘法指令MLA 32位乘加指令。MRS 传输CPSR或SPSR的内容到通用寄存器指令,MSR 传送通用寄存器到CPSR或SPSR的指令, MVN 数据取反传送指令, ORR 逻辑或指令, RSB 逆向减法指令,RSC 带错位的逆向减法指令, SBC 带错位减法指令,STC 协处理器寄存器写入存储器指令,STM 批量内存字写入指令, STR 寄存器到存储器的数据存储指令,SUB 减法指令,SWI 软件中断指令。

一条指令可以完成多个寄存器值的传送(最多可传送16个通用寄存器),连续的寄存器用“-”,否则用“,”

2.关键汇编指令的使用

STMFD和LDMFD 跟x86的汇编push和pop是一样的效果。

LDR R4,START 将存储地址为START的字数据读入R4 STR R5,DATA1 将R5存入存储为DATA1中。 LDR R0,[R1] 将存储器地址为R1的字数据写入存储器R0 LDR R0,[R1,R2]将存储器地址为R1+R2的字数据读入存储器R0 STR,R0,[R1, #8]! :将R0字数据存入存储器地址R1+8的存储单元,并将新地址R2+8写入R0 STR,R0,[R1,R2]! 将R0字数据存入存储器R1+R2的存储单元中,并将新地址R2+R2写入R2

push{r0,r4-r7}将r0,r4-r7寄存器内容压人堆栈 pop{r0,r4-r7}}将r0,r4-r7寄存器内容从堆栈中弹出

出栈使用LDM指令,进栈使用STM指令。

3.跳转指令简介

B 无条件跳转BL 带连接的无条件跳转BX 带状态却换的无条件跳转BLX 带连接和状态的无条件跳转

4.存储寄存指令详解

LDR:从存储器中加载数据到寄存器--LoadLDR R8,[R9, #04]: R8为待加载数据的寄存器,加载值为R9+0x4所指向的存储单元

STR:将寄存器的数据存储到存储器中--storeSTR R8, [R9,#04]: 将R8寄存器的数据存储到R9+0x4所指向的存储单元

LDM:将存储器的数据加载到寄存器列表→ LDM R0,{R1-R3}将R0指向的存储单元的数据依次加载到R1,R2,R3寄存器

STM:将一个寄存器列表的数据存储到指定的存储器中PUSH:将寄存器值推入堆栈POP:将堆栈值推出到寄存器SWP:将寄存器与存储器之间的数据进行交换SWP R1, R1 [R0] 将R1寄存器与R0指向的存储单元的内容进行交换

5.寄存器详解

ARM32汇编器对ARM寄存器进行了预定义,所有寄存器和协处理器名都是大小写敏感, Ro-R15和r0-r15。

a1-a4(参数,结果或者临时寄存器,与r0-r3一样的)

v1-v8(变量寄存器,与r4-r11一样)

sb和SB(静态基址寄存器,与r9一样)

sl和SL(堆栈限制寄存器,与r10一样)

fp和FP(帧指针,与r11统一)

ip和IP(过程调用中间临时寄存器,与r12统一)

sp和SP(堆栈指针,与r13统一)

lr和LR(连接寄存器,与r14统一)

pc和PC(程序计数器,与r15统一)

cpsr和CPSR(程序状态寄存器)

spsr和SPSR(程序状态寄存器)

f0-f7和F0-F7(FPA寄存器)

s0-s31和S0-S31(VFP单精度寄存器)

d0-d15和D0-D15(VFP双精度寄存器)

p0-p15(协处理器0-15)

c0-c15(协处理器寄存器0-15)

6.汇编在函数中使用需关注点:

1.当函数参数少于4个时,子程序间通过寄存器R0-R3 来进行传递参数;当参数个数多于4个时, 将多余的参数通过数据栈进行传递,入栈顺序与参数顺序正好相反,子程序返回前无需恢复R0~R3的值。

2.在子程序中,使用R4~R11保存局部变量,若使用需要入栈保存,子程序返回前需要恢复这些寄存器;R12是临时寄存器,使用不需要保存。3.R13用作数据帧指针,记作SP;R14用作链接寄存器,记作LR,用于保存子程序返回时的地址;R15是程序计数器,记作PC。4.ATPCS规定堆栈是满递减堆栈FD;5.子程序返回32位的整数,使用R0返回;返回64位整数时,使用R0返回低位,R1返回高位。

网络安全入门学习路线

其实入门网络安全要学的东西不算多,也就是网络基础+操作系统+中间件+数据库,四个流程下来就差不多了。

1.网络安全法和了解电脑基础

其中包括操作系统Windows基础和Linux基础,标记语言HTML基础和代码JS基础,以及网络基础、数据库基础和虚拟机使用等...

别被这些看上去很多的东西给吓到了,其实都是很简单的基础知识,同学们看完基本上都能掌握。计算机专业的同学都应该接触了解过,这部分可以直接略过。没学过的同学也不要慌,可以去B站搜索相关视频,你搜关键词网络安全工程师会出现很多相关的视频教程,我粗略的看了一下,排名第一的视频就讲的很详细。 当然你也可以看下面这个视频教程仅展示部分截图 学到http和https抓包后能读懂它在说什么就行。

2.网络基础和编程语言

3.入手Web安全

web是对外开放的,自然成了的重点关照对象,有事没事就来入侵一波,你说不管能行吗! 想学好Web安全,咱首先得先弄清web是怎么搭建的,知道它的构造才能精准打击。所以web前端和web后端的知识多少要了解点,然后再学点python,起码得看懂部分代码吧。

最后网站开发知识多少也要了解点,不过别紧张,只是学习基础知识。

等你用几周的时间学完这些,基本上算是具备了入门合格渗透工程师的资格,记得上述的重点要重点关注哦! 再就是,要正式进入web安全领域,得学会web渗透,OWASP TOP 10等常见Web漏洞原理与利用方式需要掌握,像SQL注入/XSS跨站脚本攻击/Webshell木马编写/命令执行等。

这个过程并不枯燥,一边打怪刷级一边成长岂不美哉,每个攻击手段都能让你玩得不亦乐乎,而且总有更猥琐的方法等着你去实践。

学完web渗透还不算完,还得掌握相关系统层面漏洞,像ms17-010永恒之蓝等各种微软ms漏洞,所以要学习后渗透。可能到这里大家已经不知所云了,不过不要紧,等你学会了web渗透再来看会发现很简单。

其实学会了这几步,你就正式从新手小白晋升为入门学员了,真的不算难,你上你也行。

4.安全体系

不过我们这个水平也就算个渗透测试工程师,也就只能做个基础的安全服务,而这个领域还有很多业务,像攻防演练、等保测评、风险评估等,我们的能力根本不够看。

所以想要成为一名合格的网络工程师,想要拿到安全公司的offer,还得再掌握更多的网络安全知识,能力再更上一层楼才行。即便以后进入企业,也需要学习很多新知识,不充实自己的技能就会被淘汰。

从时代发展的角度看,网络安全的知识是学不完的,而且以后要学的会更多,同学们要摆正心态,既然选择入门网络安全,就不能仅仅只是入门程度而已,能力越强机会才越多。

尾言

因为入门学习阶段知识点比较杂,所以我讲得比较笼统,最后联合CSDN整理了一套【282G】网络安全从入门到精通资料包,需要的小伙伴可以点击链接领取哦!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
操作系统是计算机系统的核心组成部分,负责管理和协调计算机硬件和软件资源,提供程序运行环境。在CSDN上有很多关于操作系统的专题文章,以下将从操作系统的基本概念、功能和常见类型等方面简要介绍一下。 首先是操作系统的基本概念。操作系统是一种系统软件,它是计算机硬件和应用软件之间的桥梁,提供给应用程序一系列的服务和资源,同时负责调度和管理系统资源。它为用户屏蔽了底层的硬件差异,提供了一个统一的、易于使用的界面。 操作系统主要有四个基本功能。首先是处理器管理,负责将处理器分配给系统的各个进程,并进行进程切换,实现多道程序并发执行。其次是内存管理,管理计算机的内存资源,包括分配、回收和保护等操作。再次是文件管理,负责管理文件的存储、命名和保护等操作,提供了文件操作的接口。最后是设备管理,负责管理计算机的各种设备,包括输入输出设备和存储设备等。 常见的操作系统有多种类型。最主流的是Windows、Linux和Mac OS等桌面操作系统。此外还有服务器操作系统,如Windows Server和Linux等,用于管理和部署服务器。还有嵌入式操作系统,如Android和iOS等,用于移动设备和物联网设备。操作系统也有实时操作系统,用于需要实时控制和响应的系统,如工控系统和航空航天系统等。 总之,操作系统是计算机系统不可或缺的重要组成部分,通过CSDN上的相关文章,我们可以更深入了解操作系统的基本概念、功能和不同类型。这些知识对于理解计算机系统的工作原理和提升编程能力都有着重要意义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值