前言 當(dāng)今互聯(lián)網(wǎng)發(fā)達(dá)很多青少年都喜歡打游戲,,比如:英雄聯(lián)盟、絕地求生,、穿越火線等游戲十分火熱,,那么有游戲就肯定有游戲外掛。當(dāng)然這都不是重點(diǎn),,今天我們不談寫外掛我們重點(diǎn)談?wù)勂平馔鈷焖枰莆盏膮R編語言,。 什么是匯編語言 首先匯編語言是一種低級(jí)語言,,它的發(fā)展是基于機(jī)器語言使程序員能夠更清晰明了的看懂設(shè)計(jì)的程序,匯編語言的執(zhí)行效率是最高的,,但是它的實(shí)用性并不高,,所以產(chǎn)生了高級(jí)語言如python,Java,,c語言等,。 為什么要學(xué)習(xí)匯編語言 在破解外掛的時(shí)候我們面對(duì)的并不是反編譯出來的程序源碼,而是匯編語言,。所以想要破解外掛我們就必須要學(xué)習(xí)匯編語言,。當(dāng)然學(xué)習(xí)匯編語言也并非只為破解游戲外掛,除此之外我們還可以破解電腦上的其他收費(fèi)應(yīng)用程序,。(在此聲明,,破解程序并非盈利手段而是興趣愛好,所以破解的程序不傳播,,同時(shí)也尊重程序設(shè)計(jì)者),。 匯編語言的基礎(chǔ)學(xué)習(xí) 匯編分為16位、32位和64位匯編語言,,分別對(duì)應(yīng)不同的操作系統(tǒng),,它們之間大多命令都是相通的。今天我們主要講32位匯編語言,。 運(yùn)算 匯編語言中運(yùn)算包括加法指令ADD/ADC,、減法指令SUB/SBB、加一指令INC,、減一指令DEC,、乘法指令MUL/IMUL、除法指令DIV/IDIV,、邏輯運(yùn)算指令NOT/AND/OR/XOR等,。其中邏輯運(yùn)算指令運(yùn)用如下: NOT(非):將操作數(shù)二進(jìn)制數(shù)的1變?yōu)?/span>0,0變?yōu)?/span>1,。 AND(與):二進(jìn)制操作如:1and1=1,,1and0=0,0and0=0,, OR(或):二進(jìn)制操作1or0=1,1or1=1,,0or0=0,, XOR(異或):二進(jìn)制操作1xor0=1,1xor1=0,,0xor0=0 比較與跳轉(zhuǎn) 比較運(yùn)算有CMP和TEST比較操作,。 跳轉(zhuǎn)操作: je 或jz 若相等則跳 jne或jnz 若不相等則跳 jmp 無條件跳 jb 若小于則跳 ja 若大于則跳 jg 若大于則跳 jge 若大于等于則跳 jl 若小于則跳 jle 若小于等于則跳 通常跳轉(zhuǎn)操作和比較操作在一起便是判斷(if),,有些關(guān)鍵的跳轉(zhuǎn)往往決定著程序是否被破解。 總結(jié) 今天的學(xué)習(xí)暫時(shí)告一段落,,同時(shí)我要告訴大家匯編語言基礎(chǔ)學(xué)習(xí)其實(shí)遠(yuǎn)遠(yuǎn)不止這些,,如果僅通過這一篇博客來學(xué)會(huì)匯編語言是不可能的,學(xué)習(xí)匯編語言和我們學(xué)習(xí)c語言,、java語言一樣要經(jīng)歷一個(gè)過程,。但是如果你看完這篇文章對(duì)破解方面的知識(shí)感興趣,請(qǐng)千萬不要將你的想法扼殺于搖籃,,只要你真心想學(xué)刻苦努力我相信你一定會(huì)成功,。 主 編 | 張禎悅 責(zé) 編 | 官學(xué)琦 where2go 團(tuán)隊(duì) |
|