欢迎点击「算法与编程之美」关注我们!
本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。
前言
当今互联网发达很多青少年都喜欢打游戏,比如:英雄联盟、绝地求生、穿越火线等游戏十分火热,那么有游戏就肯定有游戏外挂。当然这都不是重点,今天我们不谈写外挂我们重点谈谈破解外挂所需要掌握的汇编语言。
什么是汇编语言
首先汇编语言是一种低级语言,它的发展是基于机器语言使程序员能够更清晰明了的看懂设计的程序,汇编语言的执行效率是最高的,但是它的实用性并不高,所以产生了高级语言如python,Java,c语言等。
为什么要学习汇编语言
在破解外挂的时候我们面对的并不是反编译出来的程序源码,而是汇编语言。所以想要破解外挂我们就必须要学习汇编语言。当然学习汇编语言也并非只为破解游戏外挂,除此之外我们还可以破解电脑上的其他收费应用程序。(在此声明,破解程序并非盈利手段而是兴趣爱好,所以破解的程序不传播,同时也尊重程序设计者)。
汇编语言的基础学习
汇编分为16位、32位和64位汇编语言,分别对应不同的操作系统,它们之间大多命令都是相通的。今天我们主要讲32位汇编语言。
运算
汇编语言中运算包括加法指令ADD/ADC、减法指令SUB/SBB、加一指令INC、减一指令DEC、乘法指令MUL/IMUL、除法指令DIV/IDIV、逻辑运算指令NOT/AND/OR/XOR等。其中逻辑运算指令运用如下:
NOT(非):将操作数二进制数的1变为,变为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
主 编 | 张祯悦
责 编 | 官学琦
领取专属 10元无门槛券
私享最新 技术干货