爱笑的姑娘 pwn学习,Arm
本文首发于“合天智汇”公众号作者:s0xzOrln
声明:笔者初衷用于分享与普及网络知识 , 若读者因此作出任何危害网络安全行为后果自负 , 与合天智汇及原作者无关!
刚刚开始学习ARMpwn , 下面如有错误 , 希望各位大佬多多包han , 多多包涵 。
先介绍下Arm的一些常见指令
那就先来
Arm三操作数指令
LDRBR0,[R1,#-1]#把R1-1的地址的值给R0立即数前面加个`#`看看函数开始时
PUSH{R4,R5,R7,LR}STMFDSP!,{R4-R11,LR}这两条指令都常见在函数的开始都是压入栈中Arm指令中的-感觉蛮简洁的 , 可以省略很多步骤和指令 。
{R0-R4}就是指R0R1R2R3R4寄存器ArmLDR指令
ldr指令的格式:LDRR0,[R1]LDRR0,=NAMELDRR0,=0X123对于第一种没有等号的情况 , R1寄存器对应地址的数据被取出放入R0对于第二种有等号的情况 , R0寄存器的值将为NAME标号对应的地址 。 对于第三种有等号的情况 , R0寄存器的值将为立即数的值LDM和STM是多数据传送指令 , 用来装载和存储多个字的数据从/到内存 。 比如:
STMFDSP!,{R4-R11,LR}的伪代码如下SP=SP-9×4;address=SP;fori=4to11Memory[address]=Ri;address=address+4;Memory[address]=LR;总的来说就是把{R4-R11}压到栈中 , 然后再把LR压到栈中指令格式是:xxM{条件}{类型}Rn{!},{^}‘xx’是LD表示装载 , 或ST表示存储 。 再加4种‘类型’就变成了8个指令:栈其他LDMEDLDMIB预先增加装载LDMFDLDMIA过后增加装载LDMEALDMDB预先减少装载LDMFALDMDA过后减少装载STMFASTMIB预先增加存储STMEASTMIA过后增加存储STMFDSTMDB预先减少存储STMEDSTMDA过后减少存储寄存器命名:
推荐阅读
- 东方网综合|又一大牌扛不住了!关店3000家,裁员6000人!很多姑娘都爱买
- 深夜的微微|逗比姑娘不怕多,就怕他们凑一窝!,搞笑GIF趣图说实话
- 钱江晚报|小区保安突发疾病,刚上完夜班的白衣小姑娘跪地急救,累到虚脱
- 老王开说|灰姑娘的童话故事终究破灭,戴安娜王妃的深情只换来查尔斯的敷衍
- 钱江晚报·小时新闻|小区保安突发疾病,刚上完夜班的杭州白衣小姑娘跪地急救,累到虚脱
- 淡定的二哈狗|注意旁边的小伙子,是情侣也不能动手啊,姑娘别睡了
- 穿搭|到了三十的姑娘,更喜欢穿着高跟鞋去逛街,为了衬托气质
- 快讯神记|姑娘你良心不会痛吗?,经典爆笑图集|每天都吃免费大餐
- 爆笑社|来打球是认真的吗?,搞笑gif-姑娘穿着高跟鞋
- BiuFashion|唐嫣“扮嫩”技术好,穿粉色裙子甜美可爱,气质像没长大的小姑娘
