专栏首页算法与编程之美计算机基础|你知道汇编语言吗?

计算机基础|你知道汇编语言吗?

前言

当今互联网发达很多青少年都喜欢打游戏,比如:英雄联盟、绝地求生、穿越火线等游戏十分火热,那么有游戏就肯定有游戏外挂。当然这都不是重点,今天我们不谈写外挂我们重点谈谈破解外挂所需要掌握的汇编语言。

什么是汇编语言

首先汇编语言是一种低级语言,它的发展是基于机器语言使程序员能够更清晰明了的看懂设计的程序,汇编语言的执行效率是最高的,但是它的实用性并不高,所以产生了高级语言如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

本文分享自微信公众号 - 算法与编程之美(algo_coding),作者:官学琦

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 数据库|Flask实现分页显示数据

    在做网页的时候,通常会展示很多数据,如果把全部数据放在一页显示的话,会让浏览器加载变得更慢,所以通常在展示很多数据的时候进行分页显示,让浏览器进行片段式加载。先...

    算法与编程之美
  • Python|list index out of range错误解析

    当我们在一个列表中取数时,我们经常会发生list index out of range的错误,例如我书写的一串代码:

    算法与编程之美
  • 前端|Bootstrap——导航组件

    Bootstrap是一个用于快速开发Web 应用程序和网站的前端框架,它提供了一个带有网格系统、链接样式、背景的基本结构。Bootstrap提供了许多的组件,其...

    算法与编程之美
  • IBM中国研究院院长沈晓卫:从编程时代迈向认知时代,没有一家企业能独担此任

    编者按: 11 月 23 日,科大讯飞年度发布会在京举行, IBM 中国研究院院长沈晓卫在会上作为合作伙伴发表了演讲,表示人类已经从传统的“编程时代”迈向“认知...

    AI科技评论
  • ionic3 在app首页跳转重定向报错

    用户1437675
  • 了解阿克曼转向原理的作用

    阿克曼转向几何(Ackermann steering geometry)是一种为了解决交通工具转弯时,内外转向轮路径指向的圆心不同的几何学。这个想法是由德国车辆...

    bisal
  • 如何利用认知和人性来做最棒的程序员?

    假期偶然间翻掘金的时候,刷到这篇文章,作者对于技术选型、查问题、技术面试、线上故障、代码复用、为什么开源等各个方面的说法非常经典,我也十分认可作者的观点,所以拿...

    周三不加班
  • [WPF自定义控件库]使用WindowChrome的问题

    上一篇文章介绍了使用WindowChrome自定义Window,实际使用下来总有各种各样的问题,这些问题大部分都不影响使用,可能正是因为不影响使用所以一直没得到...

    dino.c
  • 初探Java类型擦除

    本篇博客主要介绍了Java类型擦除的定义,详细的介绍了类型擦除在Java中所出现的场景。

    SH的全栈笔记
  • MongoDB查询文档踩坑记!

    我们如果需要查询同时满足两个以上条件,需要使用$and操作符将条件进行关联 (相当于SQL的and).

    JavaEdge

扫码关注云+社区

领取腾讯云代金券