大神论坛

找回密码
快速注册
查看: 1177 | 回复: 0

[语言编程类] 大神论坛 逆向脱壳分析基础学习笔记一 进制篇

主题

帖子

5

积分

初入江湖

UID
20
积分
5
精华
威望
10 点
违规
大神币
68 枚
注册时间
2021-03-14 10:40
发表于 2021-03-14 15:19
本帖最后由 kay2kay 于 2021-03-14 15:19 编辑

本文为本人的滴水逆向破解脱壳学习笔记之一,为本人对以往所学的回顾和总结,可能会有谬误之处,欢迎大家指出。
陆续将不断有笔记放出,希望能对想要入门的萌新有所帮助,一起进步


所有笔记链接:

大神论坛 逆向脱壳分析基础学习笔记一 进制篇
大神论坛 逆向脱壳分析基础学习笔记二 数据宽度和逻辑运算
大神论坛 逆向脱壳分析基础学习笔记三 通用寄存器和内存读写
大神论坛 逆向脱壳分析基础学习笔记四 堆栈篇
大神论坛 逆向脱壳分析基础学习笔记五 标志寄存器 
大神论坛 逆向脱壳分析基础学习笔记六 汇编跳转和比较指令
大神论坛 逆向脱壳分析基础学习笔记七 堆栈图(重点)(需登录才能访问)
大神论坛 逆向脱壳分析基础学习笔记八 反汇编分析C语言
大神论坛 逆向脱壳分析基础学习笔记九 C语言内联汇编和调用协定
大神论坛 逆向脱壳分析基础学习笔记十 汇编寻找C程序入口(需登录才能访问)
大神论坛 逆向脱壳分析基础学习笔记十一 汇编C语言基本类型
大神论坛 逆向脱壳分析基础学习笔记十二 汇编 全局和局部 变量(需登录才能访问)
大神论坛 逆向脱壳分析基础学习笔记十三 汇编C语言类型转换(需登录才能访问)
大神论坛 逆向脱壳分析基础学习笔记十四 汇编嵌套if else(需登录才能访问)
大神论坛 逆向脱壳分析基础学习笔记十五 汇编比较三种循环(需登录才能访问)
大神论坛 逆向脱壳分析基础学习笔记十六 汇编一维数组(需登录才能访问)
大神论坛 逆向脱壳分析基础学习笔记十七 汇编二维数组 位移 乘法(需登录才能访问)
大神论坛 逆向脱壳分析基础学习笔记十八 汇编 结构体和内存对齐(需登录才能访问)
大神论坛 逆向脱壳分析基础学习笔记十九 汇编switch比较if else(需登录才能访问)
大神论坛 逆向脱壳分析基础学习笔记二十 汇编 指针(一)(需登录才能访问)
大神论坛 逆向脱壳分析基础学习笔记二十一 汇编 指针(二)(需登录才能访问)
大神论坛 逆向脱壳分析基础学习笔记二十二 汇编 指针(三)(需登录才能访问)
大神论坛 逆向脱壳分析基础学习笔记二十三 汇编 指针(四)(需登录才能访问)
大神论坛 逆向脱壳分析基础学习笔记二十四 汇编 指针(五) 系列完结(需登录才能访问)

进制

进制的定义

  • 十进制的定义:由十个符号组成,分别是0 1 2 3 4 5 6 7 8 9 逢十进一
  • 九进制的定义:由九个符号组成,分别是0 1 2 3 4 5 6 7 8 逢九进一
  • 十六进制的定义:由十六个符号组成,分别是0 1 2 3 4 5 6 7 8 9 A B C D E F
  • N进制的定义:由N个符号组成 逢N进一

进制的本质

N进制的定义实则为由N个符号组成,逢N进位

这里的符号不一定要是 0 1 2 3 4 ....

也可以自定义

R T Y U I O 等其它符号

符号RTUIO
含义01234

自定义进制的符号可以作为一种加密的手段,给解密者带来麻烦

计算机中数字的形式

计算机中的任何信息,如图片、视频、音乐等等,都是以二进制的形式进行存储的

二进制比较冗长,于是在用进制查看工具如UltraEdit中,是以十六进制来显示数据的

十六进制数与二进制数的对应关系为:一个十六进制数由4位二进制数表示

二进制与十六进制的映射关系(最好记下)

0123456789ABCDEF
0000000100100011010001010110011110001001101010111100110111101111

进制的运算

进制运算的本质实际就是根据进制表查表所得

我们平时的十进制是如何运算的?九九乘法表大家肯定都熟稔于心了吧

所谓的九九乘法表其实就是十进制的乘法表,与之相关的还有加法表

十进制加法表

1+1 =2
1+2 =32+2 =4
1+3 =42+3 =53+3 =6
1+4 =52+4 =63+4 =74+4 =8
1+5 =62+5 =73+5 =84+5 =95+5 =10
1+6 =72+6 =83+6 =94+6 =105+6 =116+6 =12
1+7 =82+7 =93+7 =104+7 =115+7 =126+7 =137+7 = 14
1+8 =92+8 =103+8 =114+8 =125+8 =136+8 =147+8 = 158+8 = 16
1+9 =102+9 =113+9 =124+9=135+9 =146+9 =157+9 = 168+9 = 179+9 = 18

十进制乘法表

1*1 =1
1*2 =22*2 =4
1*3 =32*3 =63*3 =9
1*4 =42*4 =83*4 =124*4 =16
1*5 =52*5 =103*5 =154*5 =205*5 =25
1*6 =62*6 =123*6 =184*6 =245*6 =306*6 =36
1*7 =72*7 =143*7 =214*7 =285*7 =356*7 =427*7 = 49
1*8 =82*8 =163*8 =244*8 =325*8 =406*8 =487*8 = 568*8 = 64
1*9 =92*9 =183*9 =274*9=365*9 =456*9 =547*9 = 638*9 = 729*9 = 81

八进制进制表

以下为八进制的0~71,注意最后一行

01234567
1011121314151617
2021222324252627
3031323334353637
4041424344454647
5051525354555657
6061626364656667
7071727374757677
100101102103104105106107

八进制加法表

1+1 =2
1+2 =32+2 =4
1+3 =42+3 =53+3 =6
1+4 =52+4 =63+4 =74+4 =10
1+5 =62+5 =73+5 =104+5 =115+5 =12
1+6 =72+6 =103+6 =114+6 =125+6 =136+6 =14
1+7 =102+7 =113+7 =124+7 =135+7 =146+7 =157+7 = 16

八进制乘法表

1*1 =1
1*2 =22*2 =4
1*3 =32*3 =63*3 =11
1*4 =42*4 =103*4 =144*4 =20
1*5 =52*5 =123*5 =174*5 =245*5 =31
1*6 =62*6 =143*6 =224*6 =305*6 =366*6 =44
1*7 =72*7 =163*7 =254*7 =345*7 =436*7 =527*7 = 61

对比总结

  • 进制表是根据逢N进位的特点得来的
  • 加法表是由进制表得来的
  • 乘法表则是由加法表得来的(乘法可以转化为加法  例:3*4=3+3+3+3=4+4+4)

例子

计算八进制的3*3=?

首先将乘法转化为加法:3*3=3+3+3(乘法表的由来)

接下来查八进制加法表得到3+3=6

再查八进制加法表得到6+3=11

其中6+3也可以到八进制进制表中找到6,然后往后数3个位置得到11(加法表的由来)

自定义进制符号

让2+3=1成立

自定义十进制符号为:0 2 3 1 8 7 6 9

此时映射关系为

符号0231876954
含义0123456789

此时'2'+'3'=1+2=3='1'(‘ ’内为符号,没''的为符号代表的数值)


返回顶部