逆向
文章平均质量分 89
(Shangu)
即使是如此愚蠢的我,也能够成为神明吗?
展开
-
汇编补充(七)数据宽度与逻辑运算
文章目录前言符号位正负判断原理有符号位范围计算机如何区分有符号数和无符号数?逻辑运算计算机实现加减法一.加法二.减法逻辑运算用途指令补充1 、pushad / popad前言汇编实际上到 JCC 一共六篇就写完了。但是我在进行下一阶段学习的时候发现之前学习还有个漏洞没有补。那就是计算机有符号位和无符号位的根本,还有计算机逻辑运算。这些当时只是草草的写了一篇,没有再回头看过,直到入手学逆向才发现不对劲。这篇主要解决有符号位和逻辑运算。符号位老传统,小阳子提问环节:1.为什么可以通过有符号位二进原创 2021-05-08 10:18:57 · 219 阅读 · 1 评论 -
汇编(六)JCC指令
文章目录前言标志寄存器1、CF (bit 0)[Carry flag]2、PF(bit 2)[Parity flag]3、AF(bit 4)[Auxiliary Carry Flag]4、ZF(bit 6)[Zero flag]实例二:判断某个值是否为05、SF(bit 7)[Sign flag]6、OF(bit 11)[Overflow flag]JCC指令前言初学汇编的最后一篇。后顾一下之前提到的修改EIP的方法,分为JMP、CALL和RET。JCC指令也可以对EIP进行修改,在学习JCC指令之原创 2021-04-28 20:45:05 · 1653 阅读 · 0 评论 -
汇编(五)堆栈平衡和寻址方式-ESP EBP
文章目录前言环境函数构架模型编写代码:堆栈传参ESP寻址堆栈平衡EBP寻址前言本文汇总五个重点,为了学起来更加方便我将他们按照递进关系重新排列。分别是:函数、传参、ESP寻址、堆栈平衡、EBP寻址。看完本文就能感受到我这么安排的用意。环境为了更加深入理解,先假设你接到了一项任务:用汇编语言实现一个两数相加求结果的功能,并且要多次使用。函数因为要多次使用该功能,所以我们要选择函数来解决。和c语言差不多,汇编的函数也是在一个“模块”中调用另一个“模块”。这只是笼统的介绍,下面演示一下实际操作:原创 2021-04-28 20:40:03 · 1101 阅读 · 0 评论 -
汇编(四)初识堆栈
堆栈和汇编指令延伸简单初步理解堆栈:1、就是一块内存,操作系统在程序启动时候就分配好的,供程序执行使用。2、很重要就对了!对底层安全尤为重要,需要认真学。3、堆栈是程序执行所用,从下往上使用,如果堆栈用完,会“堆栈溢出”程序也会崩溃。4、栈指针寄存器(ESP):指向当前栈的地址,可以右键选择“flow”堆栈使用mov指令我们仍可以继续使用mov指令往堆栈中存入数据,具体操作如下:1、首先在ESP指针定位到目前栈的位置。2、使用mov指令存入数据。3、使用sub指令更改ESP指向地址。原创 2021-04-26 08:37:25 · 1827 阅读 · 0 评论 -
汇编(三)存储模式和指令拓展
存储模式和汇编指令文章目录存储模式和汇编指令前言存储模式利用DTdebug判断程序存储模式movs指令与stos指令MOVS指令STOS指令REP指令自评前言本文涉及计算机存储模式,DTdebug对存储方式的实验。以及MOVS、STOS、REP指令的介绍和演示;存储模式分为:大端模式和小端模式;大端模式:数据低位在高位,数据高位在低位;详细解释就是,数据的高位字节存放在内存的低地址端,数据的高位字节存放在内存的高地址端;内存地址的低位到高位位就是从小到大;比如下面四个地址就是从低位到高位:原创 2021-04-22 22:21:31 · 354 阅读 · 0 评论 -
汇编(二)环境及软件
文章目录前言环境基本操作寄存器32位通用寄存器前言这篇是很久以前写好没发的,刚刚抛出来,改了改。涉及了DTdebug的使用和寄存器介绍,以及一些指令。以下是原文:海哥名言:“汇编是所有语言里面最简单的语言,因为他很好理解,很好实验。”所以学习汇编最重要的是上手实验。了解了汇编基础以后,我开始进入汇编的正式学习,本篇使用工具和参考文章,都会放在文末。这一部分强烈建议读一下《有趣的二进制》,目前我个人感觉这本书对汇编入门很有帮助,由浅入深通俗易懂。当然 也要记得动手试验一下书上的实例。原创 2021-04-22 22:06:03 · 129 阅读 · 0 评论