寒假第一周逆向学习笔记

进制:

十进制的定义:又是个符号组成,分别为0 1 2 3 4 5 6 7 8 9.

十六进制的定义:有十六个符号组成,分别为0 1 2 3 4 5 6 7 8 9 A B C D E F.

所以

X进制的定义:有x个符号组成。

0~16二进制与十六进制的映射:

0000~0

0001~1

0010~2

0011~3

0100~4

0101~5

0110~6

0111~7

1000~8

1001~9

1010~A

1011~B

1100~C

1101~D

1110~E

1111~F

在进制运算中我们必须熟练的掌握不同进制的运算规律才能快速运算;

例:

八进制的加法表与乘法表:

1+1=2

1+2=3

2+2=4

1+3=4

2+3=5

3+3=6

1+4=5

2+4=6

3+4=7

4+4=10

1+5=6

2+5=7

3+5=10

4+5=11

5+5=12

1+6=7

2+6=10

3+6=11

4+6=12

5+6=13

6+6=14

1+7=10

2+7=11

3+7=12

4+7=13

5+7=14

6+7=15

7+7=16

1*1=1

1*2=2

2*2=4

1*3=3

2*3=6

3*3=11

1*4=4

2*4=10

3*4=14

4*4=20

1*5=5

2*5=12

3*5=17

4*5=24

5*5=31

1*6=6

2*6=14

3*6=22

4*6=30

5*6=36

6*6=44

1*7=7

2*7=16

3*7=25

4*7=34

5*7=43

6*7=52

7*7=61

熟悉每个进制的这两个表就能更好地进行运算。

X进制的x个字符是不确定的、是任意的;

x进制的本质:逢x进1;

数据宽度:

定义:数学上的数字,是没有大小限制的可以无限大,但在计算机中,由于硬件的约束,数据都是有长度的,因此我们将储存长度的大小成为数据宽度。

计算机中数据的两个本质:

  1. 计算机只认识0或1
  2. 将要储存的数据若超过数据宽度将被删除。

四位宽度表示,计算机只能识别四位二进制的数据,例:

 

同理八位宽度只能识别八位二进制的数据,十六位宽度只能识别十六位二进制的数据,

在计算机中所输入的数据有字符数或无字符数的情况由使用者来决定,

CPU的计算:

例:2+3=5

X:0010  Y:0011

注:将2储存到计算机一个储存单位X; 将3储存到计算机一个储存单位Y;储存是需要是二进制

将X与Y进行  异或

        0010

Xor   0011

-------------        

        0001

储存0001到M即: M:0001

然后计算机会进行验证是否计算正确

验证方法为:将X与Y进行 与 运算  运算结果进行“左移“看是否全为零,若全为零,则计算机运算结果正确。

      0010

And   0011         ➡     0010左移 0100    储存0100到N;即:N:0100

------------

      0010

不为零时将M与N重新进行CPU计算  直到运算结果为正确(左移值全为零)

最简单的加密运算:

例:异或加密

明文:24;  密文:12;   密钥:18;

00100100  —— 24(明文)

00011000  —— 12(密文)

---------

00111100  —— 18(密钥)

32位通用寄存器的指定用途如下:

寄存器

编号

储存数据的范围

EAX

0

0~0xFFFFFFFF

ECX

1

0~0xFFFFFFFF

EDX

2

0~0xFFFFFFFF

EBX

3

0~0xFFFFFFFF

ESP

4

0~0xFFFFFFFF

EBP

5

0~0xFFFFFFFF

ESI

6

0~0xFFFFFFFF

EDI

7

0~0xFFFFFFFF

寄存器

寄存器

寄存器

32位

16位

8位

EAX

AX

AL

000

0

ECX

CX

CL

001

1

EDX

DX

DL

010

2

EBX

BX

BL

011

3

ESP

SP

AH

100

4

EBP

BP

CH

101

5

ESI

SI

DH

110

6

EDI

DI

BH

111

7

关于32位、16位与8位寄存器之间的关系:

根据上面这种情况  就可以出现将低位寄存器储存到高位寄存器中

MOV指令可以表示为

SUB指令:表示减法指令

ADD指令:表示加法指令

寄存器与内存的区别:

  1. 寄存器位于CPU内部,执行速度快,但比较贵。
  2. 内存速度相对较慢,但成本比较低,所以可以做得很大。
  3. 寄存器和内存没有本质区别,都是用于储存数据的容器,都是顶宽的。
  4. 计算机中的几个常量计量单位:byte、word、dword。
  5. 寄存器中常用的有8个:EXA、ECX、EDX、EBX、ESP、EBP、ESI、EDI。

Byte  字节  =8(bit)

Word 字    =16(bit)

Dword双字  =32(bit)

内存中数量特别庞大,无法每个内存单元都起一个名字,所以用编号来代替。

既 00000000   、  00000001直到FFFFFFFF。

32位计算机可以识别4g内存。

内存:

    从指定内存中写入/读取数据

     Mov dword ptr ds:[0x12356898],ox12345678

         dword表示数据宽度

         ptr表示后面为储存地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值