亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 編程 > ASM > 正文

iOS程序破解——ARM匯編基礎(chǔ)

2019-11-14 17:58:02
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

  原文在此:http://www.49028c.com/mddblog/p/4951650.html

一、Thumb指令與ARM指令
  Thumb指令為16位,因此存儲(chǔ)代碼的密度高,節(jié)省存儲(chǔ)空間。但是功能不全,它只是ARM指令(32位)集的補(bǔ)充,是ARM指令集下的一個(gè)子集。在初級(jí)階段我們不需要了解這些知識(shí),只要有個(gè)概念知道有這么個(gè)東西就可以。

二、ARM的寄存器初步了解

  R0-R3:        用于函數(shù)參數(shù)及返回值的傳遞,超過(guò)4個(gè)參數(shù),其它參數(shù)存在棧中,在ARM中棧是向下生長(zhǎng)的,R0還可以作為返回值。
  R4-R6, R8, R10-R11: 沒(méi)有特殊規(guī)定,就是普通的通用寄存器
  R7:          棧幀指針,指向母函數(shù)與被調(diào)用子函數(shù)在棧中的交界。
  R9:          在iOS3.0被操作系統(tǒng)保留
  R12:          內(nèi)部過(guò)程調(diào)用寄存器,動(dòng)態(tài)鏈接時(shí)會(huì)用到,不必深究
  R13:          SP(stack pointer),是棧頂指針
  R14:          LR(link register),存放函數(shù)的返回地址。
  R15:          PC(PRogram counter),指向當(dāng)前指令地址。
  CPSR:         當(dāng)前程序狀態(tài)寄存器,在用戶狀態(tài)下存放像condition標(biāo)志中斷禁用等標(biāo)志的。
  另外還有VFP(向量浮點(diǎn)運(yùn)算)相關(guān)的寄存器,不在列舉。

三、常用匯編

  助記符  說(shuō)明
  ADC    帶進(jìn)位的加法
  ADD    加法
  AND    邏輯與
  B      分支跳轉(zhuǎn),很少單獨(dú)使用
  BL          分支跳轉(zhuǎn),跳轉(zhuǎn)后返回地址存入r14
  BX          分支跳轉(zhuǎn),并切換指令模式(Thumb/ARM)
  CMP        比較值,結(jié)果存在程序狀態(tài)寄存器,一般用于分支判斷
  BEQ        結(jié)果為0則跳轉(zhuǎn)
  BNE        結(jié)果不為0跳轉(zhuǎn)
  LDR        加載寄存器,從內(nèi)存加載到寄存器
  LDRB      裝載字節(jié)到寄存器
  LDRH      裝載半字到寄存器(一個(gè)字是32位)
  LSL         邏輯左移 這是一個(gè)選項(xiàng),不是指令
  LSR         邏輯右移 這是一個(gè)選項(xiàng),不是指令
  MOV        傳送值/寄存器到一個(gè)寄存器 
  STR         存儲(chǔ)一個(gè)寄存器,寄存器值存到內(nèi)存
  STRB       存儲(chǔ)一個(gè)字節(jié)
  STRH       存儲(chǔ)一個(gè)半字
  SUB         減法
  PUSH POP 堆棧操作

  更多指令請(qǐng)參考這里

四、函數(shù)調(diào)用

  函數(shù)的參數(shù)、局部變量、返回地址都在棧上存著,這部分棧上的內(nèi)存稱為棧幀。和R0~R15(不一定全部)、CPSR等一起構(gòu)成了函數(shù)的運(yùn)行環(huán)境。每一個(gè)函數(shù)系統(tǒng)都會(huì)分配一個(gè)棧幀,執(zhí)行完成后系統(tǒng)自動(dòng)收回。每個(gè)函數(shù)都以為R0~R15、CPSR等CPU相關(guān)寄存器為自己一人享有,所以要做一些必要操作。

  舉個(gè)例子:假設(shè)A調(diào)用B時(shí),那么A要保存自己的運(yùn)行環(huán)境(保存現(xiàn)場(chǎng)),B執(zhí)行完后,要恢復(fù)A的運(yùn)行環(huán)境(恢復(fù)現(xiàn)場(chǎng));另外A還可以通過(guò)R0—R4來(lái)傳遞參數(shù),參數(shù)超過(guò)4個(gè)可以通過(guò)棧,B返回時(shí)可以通過(guò)R0傳遞返回值。其中主要涉及的就是棧的操作和寄存器的操作。下圖為函數(shù)調(diào)用前后棧的布局,左邊為調(diào)用前,右邊為調(diào)用后,當(dāng)B返回時(shí)應(yīng)回到左邊狀態(tài)(A調(diào)用B之前的狀態(tài),就像沒(méi)有調(diào)用B一樣)。

  在上圖中,一個(gè)棧幀除了已經(jīng)提到的參數(shù)區(qū)域(parameter area)、鏈接區(qū)域(linkage area)、局部變量存儲(chǔ)區(qū)(local storage area)外還有棧幀指針存放區(qū)域(saved frame pointer)、寄存器存儲(chǔ)區(qū)(saved registers area),棧幀指針上面已介紹(R7);寄存器存儲(chǔ)區(qū):保存非易失寄存器(R4,R5,R6,R8,R10,R11),后面的匯編代碼例子會(huì)介紹。

  開(kāi)始調(diào)用(現(xiàn)場(chǎng)保護(hù)):

  1)LR入棧;

  2)R7入棧,包存要恢復(fù)的寄存器入棧;

  3)R7 = SP地址;

  4)將callee會(huì)修改且在返回caller時(shí)需要恢復(fù)的寄存器入棧;

  5)分配??臻g給子程序使用。

  下圖為匯編代碼(使用hopper disassemble反編譯的代碼),分析如下:

  第一行:將LR, R7, R4-R6入棧;

  第二行:r7=sp-0xc(指向old R7),之所以減去0xc因?yàn)镻USH后,r4,r5,r6占去12個(gè)字節(jié);

  第三行:保存要恢復(fù)的寄存器;

  第四行:給當(dāng)前函數(shù)開(kāi)辟棧空間。

  函數(shù)返回(恢復(fù)現(xiàn)場(chǎng)):

  1)釋放??臻g;

  2)恢復(fù)所保存的寄存器;

  3)恢復(fù)R7;

  4)將之前存放的LR從棧上彈出到PC,這樣函數(shù)就返回了。

  下圖為匯編代碼(使用hopper disassemble反編譯的代碼),分析如下:

  第一行:釋放??臻g;

  第二行:恢復(fù)保存的寄存器;

  第三行:恢復(fù)保存的寄存器,恢復(fù)R7,將之前存放的LR從棧上彈出到PC。

  更詳細(xì)函數(shù)調(diào)用請(qǐng)參考這里

  iOS內(nèi)存分區(qū)請(qǐng)參考這里

 

 

 


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

亚洲国产天堂网精品网站| 国产一区二区在线视频观看| 8x8ⅹ国产精品一区二区二区| 国产精品亚洲片在线播放| 青青草影院在线观看| 亚洲大胆在线| 国内偷拍精品视频| 国产精品成人v| 久久久久久福利| 色偷偷偷综合中文字幕;dd| 亚洲视频1区| 日韩中文字幕有码| 性欧美.com| 伊人久久亚洲热| 日韩高清av在线| 精品72久久久久中文字幕| 91丝袜美腿美女视频网站| 婷婷免费在线视频| 中文av一区二区三区| 精品久久久中文| 欧美日韩黑人| 一区二区在线免费视频| 亚洲蜜桃精久久久久久久久久久久| 91精品人妻一区二区三区四区| 亚洲精品一级二级| 久久人人爽人人爽人人av| 青青草.com| 欧美精品久久久久久久自慰| 亚洲精品乱码久久久久久蜜桃91| 欧美熟妇精品黑人巨大一二三区| 日韩精品每日更新| 亚洲麻豆国产自偷在线| 日韩美女啊v在线免费观看| 欧美激情亚洲激情| 国产三级在线看| 丰满人妻一区二区三区免费| 91精品视频网| 美女胸又www又黄的网站| 日韩视频第二页| 久久精品免费网站| 九一久久久久久| 秋霞在线观看av| 亚洲欧美春色| 亚洲二区在线| 最近中文字幕mv2018在线高清| 免费在线你懂的| 在线观看免费高清视频| 日本一本视频| 爱爱免费小视频| 欧美视频四区| 国产精品电影观看| 国产中文字幕日韩| 伦理片一区二区三区| 亚洲精品.com| www.中文字幕在线观看| 色婷婷av国产精品| 黑人巨大精品欧美一区| 欧美成人午夜剧场免费观看| 亚洲国产一成人久久精品| 色一情一乱一伦一区二区三区日本| 黄视频免费在线看| 亚洲第一精品福利| 久久精品国产免费观看| 色综合久久悠悠| 99精产国品一二三产品香蕉| 亚洲精品日韩一| 亚洲最大色综合成人av| 免费在线亚洲| 国产无套粉嫩白浆在线2022年| 国产主播中文字幕| 韩国专线一区二三区| 日韩理论电影院| 91污色多多| 在线免费看av网站| 精品香蕉一区二区三区| 免费一级a毛片夜夜看| 欧美夫妻性生活| 少妇被狂c下部羞羞漫画| 国产原创popny丨九色| 91视频-88av| 草草浮力影院| 日韩精品在线免费视频| 免费黄色网址网站| 精品夜夜澡人妻无码av| 亚洲成人综合网站| 亚洲一区中文日韩| 尤物视频在线| 久久国产精品影院| 俺去俺来也在线www色官网| 成人免费视频77777| 欧美一级一级性生活免费录像| 母乳一区在线观看| 日韩不卡免费视频| 久久久久久久久久久免费| 在线观看亚洲成人| 秋霞av一区二区三区| 久久精品亚洲国产| 亚洲天堂视频在线观看免费| 亚洲国产日韩成人综合天堂| 亚洲va天堂va国产va久| 亚洲精品一二三**| 精品在线播放午夜| 2017天天干夜夜操| 久久久国产精品入口麻豆| 国产精品久久久久久久久免费相片| 日韩成人av网站| 成人亚洲一区二区一| 性一交一乱一透一a级| 男生操女生视频在线观看| 国产精品久久久久无码av色戒| 91精品国产欧美日韩| 秋霞蜜臀av久久电影网免费| 99久久国产视频| 日本黄色成人| 97碰碰碰免费公开在线视频| 国产精品日韩一区二区三区| 91av在线免费视频| 亚洲理论中文字幕| 色呦呦一区二区三区| 人人玩人人添人人澡免费| sis001欧美| 无码少妇一区二区三区芒果| 国产日产欧美a一级在线| 91精品国产乱码久久久久久蜜臀| 国产欧美日韩精品在线| 一区二区精品国产| 免费观看成年在线视频网站| 亚洲一区在线观看免费观看电影高清| 无码免费一区二区三区免费播放| 亚欧精品一区二区三区| 91精品国产欧美一区二区18| 美腿丝袜在线亚洲一区| 最近2019年中文视频免费在线观看| 最新国产露脸在线观看| 欧美综合国产| 91国模大尺度私拍在线视频| 中文字幕在线播放网址| 呦视频在线一区二区三区| 精品国产av一区二区三区| 亚洲精品wwwww| www.久久热.com| 午夜久久久久久久久久久| 欧美aaa免费| 国产吞精囗交久久久| 国产探花在线精品| 久久在线免费观看视频| 青草视频在线播放| 日本亚洲欧洲色α| 性欧美疯狂xxxxbbbb| 日本熟妇毛耸耸xxxxxx| 日本在线一区二区三区| 精品高清美女精品国产区| 国产模特精品视频久久久久| 欧日韩一区二区三区| 欧美激情精品久久久久久免费印度| 欧美最猛性xxxxx(亚洲精品)| 国产精品外国| 日本不卡在线播放| 成人短视频在线观看免费| 欧美精品第三页| 影音成人av| 国产69精品久久久久按摩| heisi视频网在线观看| 亚洲综合伊人久久| 欧美成人亚洲成人日韩成人| 99久久久无码国产精品性| 91精品福利在线| 97青娱国产盛宴精品视频| 在线的色视频| 岛国在线免费| 国产亚洲精品成人a| 狂野欧美激情性xxxx欧美| 日韩男人天堂| 日韩欧美亚洲国产另类| 福利视频午夜| 亚洲jizzjizz妇女| 久久久久久欧美精品se一二三四| 欧美色图另类图片| 自拍偷拍亚洲天堂| 视频在线观看入口黄最新永久免费国产| 视频一区欧美精品| 亚洲精品在线观看免费| 黄色三级视频在线播放| jizzjizz亚洲| av免费播放网站| 中文字幕乱妇无码av在线| 三区视频在线观看| 一区二区视频在线观看| 成人黄视频免费| 久久久精品中文字幕| 亚洲无人区码一码二码三码| 黄色的视频在线观看| 欧美日韩爆操| 日日躁夜夜躁aaaabbbb| 日韩一区二区三区高清免费看看| 久久婷婷五月综合色丁香| 欧美日韩精品在线播放| 国产乱人伦精品一区二区在线观看| 97精品资源在线观看| 国产激情一区二区三区桃花岛亚洲| 精品国产免费第一区二区| 伊人久久一区二区三区| 日韩精品一区二区三区国语自制| 国产精品影院在线观看| 久久久久久久久久久成人| 日韩综合在线视频| 国产乱了高清露脸对白| 欧美黑人xxxx| 亚洲国产精品成人一区二区| 国产91亚洲精品一区二区三区| 玖玖玖精品中文字幕| 草裙成人精品一区二区三区| 久久久久久久久久久久久久| 日本黄色福利视频| 超碰在线人人| 色综合天天综合网天天看片| www.精品久久| 极品一区美女高清| 亚洲免费三区一区二区| 亚洲1区在线观看| 国产.精品.日韩.另类.中文.在线.播放| 六十路在线观看| 午夜在线一区| 欧洲在线免费视频| 成人免费网站在线| 久久久久天天天天| 久九九久频精品短视频| 性一交一乱一精一晶| 美女88av| 亚洲av综合色区无码另类小说| 久久久亚洲精品一区二区三区| 国产视色精品亚洲一区二区| 免费在线观看一级毛片| 国产精品久久久久av免费| 天堂va欧美ⅴa亚洲va一国产| 国产情侣高潮对白| 亚洲婷婷综合久久一本伊一区| 国模吧无码一区二区三区| 一本色道久久综合亚洲91| 男人插女人欧美| 国产精品视频网| 别急慢慢来1978如如2| 国产日韩一区二区三区在线播放| 特级西西人体4444xxxx| 免费国产在线精品一区二区三区| 免费电影日韩网站| 成人免费观看www在线| 欧美a级理论片| 精品一区二区三区免费站| 最近2019好看的中文字幕免费| 国产视频亚洲视频| 欧美亚洲国产一区在线观看网站| 国模叶桐国产精品一区| 四虎地址8848精品| 性视频一区二区三区| 国产尤物一区二区在线| 999精品色在线播放| 最新69国产成人精品视频免费| 亚洲伦理在线精品| 农村妇女一区二区| 亚洲视频在线免费看| 性疯狂做受xxxx高清视频| 欧美77777| 色琪琪原网站亚洲香蕉| 日韩欧美亚洲日产国| 日韩一区二区三区在线看| 久久久久久久久久久久久久av| 夜夜操天天干| 91精品国产综合久久久久| 成人直播在线观看| 亚洲天堂网在线视频| 久久久com| av中文在线播放| 国产做a爰片久久毛片| 岛国视频免费在线观看| 精品久久久久久国产91| 国产综合久久久久影院| 欧美精品一区二区不卡| 自己做鸭怎么接单寻找客源| 亚洲精品手机在线观看| 欧美一级爽aaaaa大片| 午夜探花在线观看| 欧美日韩在线不卡| 亚洲欧美一区二区三| 欧美精品制服第一页| 国产精品污视频| 国产日本精品视频| 澳门黄色一级片| 欧美爱爱视频| 亚洲精品中文字幕女同| 中国极品少妇videossexhd| 丰满少妇久久久| 国产精品入口麻豆免费| 欧美艳星brazzers| 日韩精品极品| 在线精品视频视频中文字幕| 99热这里都是精品| 中文字幕一区二区三区乱码不卡| 欧美精品亚洲二区| 精品国产91久久久久久| 国产xxxx在线观看| 欧美精品成人久久| 人妻av无码一区二区三区| 99精品视频一区二区| 欧美疯狂做受xxxx富婆| 精品国产一二三| 国产精品99久久99久久久二8| 亚洲国产精品久久久| 亚洲综合精品国产一区二区三区| 99re6在线视频精品免费| 亚洲视频一二区| 中文字幕日产av| 国产在线一区观看| 久草手机在线视频| 一级毛片在线视频| 91久久久久久白丝白浆欲热蜜臀| 亚洲男人天堂网址| 国产精品久久久久久亚洲调教| 老鸭窝一区二区久久精品| 一区二区三区四区中文字幕| 亚洲高清免费观看高清完整版在线观看| yy111111少妇嫩草影院| 一区二区三区四区久久| 亚洲乱码一区二区三区在线观看| 怡红院av亚洲一区二区三区h| 亚洲一级片网站| 91caopron| 日韩av高清不卡|