前言
当今互联网发达很多青少年都喜欢打游戏,比如:英雄联盟、绝地求生、穿越火线等游戏十分火热,那么有游戏就肯定有游戏外挂。当然这都不是重点,今天我们不谈写外挂我们重点谈谈破解外挂所需要掌握的汇编语言。
什么是汇编语言
首先汇编语言是一种低级语言,它的发展是基于机器语言使程序员能够更清晰明了的看懂设计的程序,汇编语言的执行效率是最高的,但是它的实用性并不高,所以产生了高级语言如python,Java,c语言等。
为什么要学习汇编语言
在破解外挂的时候我们面对的并不是反编译出来的程序源码,而是汇编语言。所以想要破解外挂我们就必须要学习汇编语言。当然学习汇编语言也并非只为破解游戏外挂,除此之外我们还可以破解电脑上的其他收费应用程序。(在此声明,破解程序并非盈利手段而是兴趣爱好,所以破解的程序不传播,同时也尊重程序设计者)。
汇编语言的基础学习
汇编分为16位、32位和64位汇编语言,分别对应不同的操作系统,它们之间大多命令都是相通的。今天我们主要讲32位汇编语言。
运算
汇编语言中运算包括加法指令ADD/ADC、减法指令SUB/SBB、加一指令INC、减一指令DEC、乘法指令MUL/IMUL、除法指令DIV/IDIV、逻辑运算指令NOT/AND/OR/XOR等。其中逻辑运算指令运用如下:
NOT(非):将操作数二进制数的1变为0,0变为1。
AND(与):二进制操作如:1and1=1,1and0=0,0and0=0,
OR(或):二进制操作1or0=1,1or1=1,0or0=0,
XOR(异或):二进制操作1xor0=1,1xor1=0,0xor0=0
比较与跳转
比较运算有CMP和TEST比较操作。
跳转操作:
je 或jz 若相等则跳
jne或jnz 若不相等则跳
jmp 无条件跳
jb 若小于则跳
ja 若大于则跳
jg 若大于则跳
jge 若大于等于则跳
jl 若小于则跳
jle 若小于等于则跳
通常跳转操作和比较操作在一起便是判断(if),有些关键的跳转往往决定着程序是否被破解。
总结
今天的学习暂时告一段落,同时我要告诉大家汇编语言基础学习其实远远不止这些,如果仅通过这一篇博客来学会汇编语言是不可能的,学习汇编语言和我们学习c语言、java语言一样要经历一个过程。但是如果你看完这篇文章对破解方面的知识感兴趣,请千万不要将你的想法扼杀于摇篮,只要你真心想学刻苦努力我相信你一定会成功。
END