引用反匯編學(xué)習(xí)一_第1頁
引用反匯編學(xué)習(xí)一_第2頁
引用反匯編學(xué)習(xí)一_第3頁
引用反匯編學(xué)習(xí)一_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、引用 反匯編學(xué)習(xí) 一 引用null 的 反匯編學(xué)習(xí)(一) 軟件反匯編的口訣和指令 cmp?a,b/?比較a與b ?mov?a,b/?把b值送給a值,使a=b ?ret?/?返回主程序 ?nop?/?無作用,英文(no operation)簡寫,意思“do nothing”(機器碼90) ? (ultraedit打開編輯exe文件看到90相當匯編語句的nop) ?call /?調(diào)用子程序,子程序以ret結(jié)尾 ?je或jz/?相等則跳(機器碼是74或84) ?jne或jnz/?不相等則跳(機器碼是75或85) ?jmp/?無條件跳(機器碼是eb) ?jb /?若小于則跳 ?ja /?若大

2、于則跳 ?jg /?若大于則跳 ?jge/?若大于等于則跳 ?jl /?若小于則跳 ?pop xxx/?xxx出棧 ?push xxx/?xxx壓棧  爆破無敵口訣  一條(跳)就死,九筒(90)就胡 (對應(yīng)上面的2-修改為nop) 一條(跳)就胡,一餅(eb)伺候 (對應(yīng)上面的1-修改為jmp) (74) 變(75) (84) 變 (85)  我補充下: ja /?若大于則跳 jg /?若大于則跳 這個的區(qū)別主要是對其反匯編的程序用什么語言開發(fā)而定的,有的則是ja,有的則是jg了,一般破解的時候直接狂搜這2個其余的指令沒什么說的了 一、數(shù)據(jù)傳輸指令 它們在存貯器

3、和寄存器、寄存器和輸入輸出端口之間傳送數(shù)據(jù). 1. 通用數(shù)據(jù)傳送指令. mov 傳送字或字節(jié). movsx 先符號擴展,再傳送. movzx 先零擴展,再傳送. push 把字壓入堆棧. pop 把字彈出堆棧. pusha 把ax,cx,dx,bx,sp,bp,si,di依次壓入堆棧. popa 把di,si,bp,sp,bx,dx,cx,ax依次彈出堆棧. pushad 把eax,ecx,edx,ebx,esp,ebp,esi,edi依次壓入堆棧. popad 把edi,esi,ebp,esp,ebx,edx,ecx,eax依次彈出堆棧. bswap 交換32位寄存器里字節(jié)的順序 xchg

4、交換字或字節(jié).( 至少有一個操作數(shù)為寄存器,段寄存器不可作為操作數(shù)) cmpxchg 比較并交換操作數(shù).( 第二個操作數(shù)必須為累加器al/ax/eax ) xadd 先交換再累加.( 結(jié)果在第一個操作數(shù)里 ) xlat 字節(jié)查表轉(zhuǎn)換. bx 指向一張 256 字節(jié)的表的起點, al 為表的索引值 (0-255,即 0-ffh); 返回 al 為查表結(jié)果. ( bx+al->al ) 2. 輸入輸出端口傳送指令. in i/o端口輸入. ( 語法: in 累加器, 端口號dx ) out i/o端口輸出. ( 語法: out 端口號dx,累加器 ) 輸入輸出端口由立即方式指定時, 其范圍是

5、 0-255; 由寄存器 dx 指定時, 其范圍是 0-65535. 3. 目的地址傳送指令. lea 裝入有效地址. 例: lea dx,string ;把偏移地址存到dx. lds 傳送目標指針,把指針內(nèi)容裝入ds. 例: lds si,string ;把段地址:偏移地址存到ds:si. les 傳送目標指針,把指針內(nèi)容裝入es. 例: les di,string ;把段地址:偏移地址存到es:di. lfs 傳送目標指針,把指針內(nèi)容裝入fs. 例: lfs di,string ;把段地址:偏移地址存到fs:di. lgs 傳送目標指針,把指針內(nèi)容裝入gs. 例: lgs di,strin

6、g ;把段地址:偏移地址存到gs:di. lss 傳送目標指針,把指針內(nèi)容裝入ss. 例: lss di,string ;把段地址:偏移地址存到ss:di. 4. 標志傳送指令. lahf 標志寄存器傳送,把標志裝入ah. sahf 標志寄存器傳送,把ah內(nèi)容裝入標志寄存器. pushf 標志入棧. popf 標志出棧. pushd 32位標志入棧. popd 32位標志出棧. 二、算術(shù)運算指令 add 加法. adc 帶進位加法. inc 加 1. aaa 加法的ascii碼調(diào)整. daa 加法的十進制調(diào)整. sub 減法. sbb 帶借位減法. dec 減 1. nec 求反(以 0 減之

7、). cmp 比較.(兩操作數(shù)作減法,僅修改標志位,不回送結(jié)果). aas 減法的ascii碼調(diào)整. das 減法的十進制調(diào)整. mul 無符號乘法. imul 整數(shù)乘法. 以上兩條,結(jié)果回送ah和al(字節(jié)運算),或dx和ax(字運算), aam 乘法的ascii碼調(diào)整. div 無符號除法. idiv 整數(shù)除法. 以上兩條,結(jié)果回送: 商回送al,余數(shù)回送ah, (字節(jié)運算); 或 商回送ax,余數(shù)回送dx, (字運算). aad 除法的ascii碼調(diào)整. cbw 字節(jié)轉(zhuǎn)換為字. (把al中字節(jié)的符號擴展到ah中去) cwd 字轉(zhuǎn)換為雙字. (把ax中的字的符號擴展到dx中去) cwde 字轉(zhuǎn)換為雙字. (把ax中的字符號擴展到eax中去) cdq 雙字擴展. (把eax中的字的符號擴展到edx中去) 三、邏輯運算指令 and 與運算. or 或運算. xor 異或運算. not 取反. test 測試.(兩操作數(shù)作與運算,僅修改標志位,不回送結(jié)果). shl 邏輯左移. sal 算術(shù)左移.(=shl) shr 邏輯右移. sar 算術(shù)右移.(=shr) rol 循環(huán)左移. ror 循環(huán)右移. rcl 通過進位

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論