零基础逆向学习系统教程,逆向学习笔记
本内容由系统网小编为大家分享,Windows系统安装教程、办公系统、软件怎么使用、软件使用教程、办公软件攻略等信息。
滴水逆向
一:
信息以冠状保存在计算机中。为简化演示文稿,计算机以十六进制数字显示二进制数字,八位数二进制数值作为一字节,这是系统操作的基本单位,系统通常使用两个十六进制数字作为字节。
PE 文件结构 : PE 文件结构是用于 Windows 操作的可执行文档的格式。 它指定程序起始位置、 数据存储地点 以及应用程序所在位置 。
十六进制 3c 的十进制转换为 60, 表示60 后的四字节是32位位数信息的起点, 但不是程序函数的起点 。
这是起步地
一个字节(8比特)的八个二进制和一个字(16比特)或两个字(字)(32比特)的十六个字(16比特)或两个字(字)(32比特)是通用计算机单元。
Windows 操作系统的数据存储状态位于顶部, 所有人都看到一个二进制数字序列, 例如 E800, 这在 Windows 中实际上是 00E8 。
PE结构图
二:
逻辑运算:在计算机中所有的运算都是采用逻辑位运算(与、或、异或、非、左移<<)
也可使用逻辑算法加密数据。
数据储存地点:登记册和内存
登记册是存储重现CPU数据的地方。然而,由于CPU主要用于计算,因此,登记册的内存有些有限。但是读取速度很快,因此,CPU将处理的数据或程序往往储存在登记册中。内存相比起寄存器,存储量更大,阅读速度将因此减慢。也没那么贵。
内存
内存单元宽度为8位数,可以存储8位数的二进制值或内存单元格字节。
1 kb 等于 1024 字节 1Mb=1024Kb 1Gb=1024Mb 内存的读写
堆栈:
堆叠的精髓就是记忆 Rears 用于持有临时变量,其中间结果由函数传输。顶级位置由ESP保存,底级位置由EBP保存。
将数据推到仓库( 回收): 推 0X 12345678, 帕地的流行数据: popp eax。 坑的底部保持不变, 但顶部变化( 垫上的数据结构特性) 。
EIP 注册: CPU 正在运行的地点 。
呼叫指令: 跳过 EIP 指针到目标位置, 并堆叠当前命令的下一行, 在返回当前命令之前协助执行跳跃 。
因为每个命令对应相应的字节的十六进制机器代码, 系统可以根据当前地址加上命令大小来计算下一个命令的位置, 而呼叫可以将其放置在堆叠上 。
三:
为了更好地了解数据变化的过程,油漆堆叠。
突飞猛进之后,首先做的是 推前的材料, 它被保存在现场, 类似于休息。
本地变量存储在堆叠中, 如果不回收, 则会留在堆叠中。 函数是一个本地变量 。
去除的函数创建了两个本地变量, 这两个变量都是通过从0时开始到10时结束的循环在堆叠中保存的, 这样缓冲区就能溢出, [ESP+4] 。
进制-0与1:
进化的精髓是任何符号代表数据,从一个角度看,数据被视为加密。
集中度在二进制和十六进制转换中。 输入的计算要重复检查: 例如, 八进制数字会打印为表格。 因此二加二等于二, 二等于二等于二加二。
数据宽度:
计算机中的数据因硬件限值而限制长度(称为数据宽度),任何宽度大于最大宽度的数据都被销毁。
逻辑运算:CPU进行运算的本质。或:or |;与: and &;异或: xor ^;非:not !;
概括:计算机存储中位数(二进制和十六进制),操作计算机的数量(逻辑)。
通用发件人:
寄存器 编号(二进制) 编号(十进制)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 |
了解记忆结构:
不同数字发送器可以储存不同大小的数据,提高使用效率,以八位数和八位数的低位结束。
必须完成的MOV行动的数量以及源码行动的数量必须满足。启动复制源代码操作到目标操作 。
一. 来源业务包括即时号码、通用发送器、分段发送器和存储器。
二. 行动的目标数目可以是共同登记册、部分登记册或记忆单位。
三. 操作的数量必须是相同的宽度。
四点,无论是源头还是目的地操作 都不能同时作为记忆单位
必须指出,在将数据写入地址时,必须说明书面数据的规模。
数据运算:
逻辑运算:
内存和内存之间的差异 :
登记册设在CPU内,运行迅速,但费用较高。 记忆相当缓慢,但可以以更低的成本做更多的工作。 内存和内存之间没有根本的区别,它们都是数据储存的容器,本该是大型的。 EAX、ECX、EDX、EBX、ESP、EBP、ESI和EDI是登记册中最常用的。 女 女 女 女 女 女 女 女 女 女 女 女 女 女 女 女 现有的记录和档案管理数量巨大。不能给每个记忆单位一个独有的名称 。所以用编号来代替,计算机处理器为32或64位元。根据许多文献,3z-bit计算机是以发射机的宽度(32比特)命名的。是不准确的,因为登记簿包含的条目远超过32个。要找到地址,处理数字取决于公共汽车的宽度。有32条电线一般而言,32位元处理器只能接受4GB地址号码,尽管可以用一段地址加一个抵消地址加以扩大。
内存地址—堆栈:
堆叠区域的地址号码是每四个字节一个,在堆叠中,8位数16位数是一个字节,虽然在记忆中,每个地址号码是一个字节。
mov r,m:这相当于将地址发送到登记册。
mov r,dword ptr ds:[r/m]:这是地址分配给登记册的价值。
lea r, dword ptr ds:[r/m]:提供登记簿
阅读和弹出的唯一区别是,顶尖手指是否已经改变。
EFLAG 注册(EFLAGS):
在签名登记簿上,代表另有一份声明,EFL 202(0010010)是一对要检查的。
1. CF(航行旗)输入号:如果计算的最高值产生条目或借项,值为1或0。
这是宽度+1 高度。
100 00 - 010 00 00 = 010 00 00 在这里,CF值为零。
这里是CF100 -1001=11
2. Pf (Paracy Flag):计算结果中使用奇号PE表示整数“ 1” 的奇号。
如果数字“ 1” 是偶数整数, PE 值为 1 或 0 。
3. 辅助承运旗旗
看看有没有四、八 或十六个步骤 一个一分AF 什么都没有
4. ZF(零旗):用零符号ZF表示计算结果是否为零。
如果结果为零,则值为一;否则,值为零。在确定计算结果是否再次为零时使用该标记。
5. 符号SF(标志旗):符号SF用来表示计算结果,这是计算结果中最高的。
6. 溢出表示(流出旗)表示符号数加减少计算的结果是否溢出。
如果计算结果超过可用当前位数表示的范围,则称为溢出,而OF值定为1。 否则,OF值被重置为0。
C-bit 溢出是无符号的溢出。 O-over 是一个溢出的象征性溢出 。
没有迹象,没有迹象,也没有溢出。 没有表示溢出,没有表示溢出。 未签名、未分配、象征性溢出 到处没有单一的符号ADC 指令:吸引更多人
不能同时使用ADC R/M、R/M/IMM作为内存。
两个给定整数的总和是ADD。除了给定的两个整数数量外,ADC是该项目的一个重要捐助者。C(职等)地位的价值也将包括在内。必须使用ADC命令。这是因为如果整数大于微处理器可以添加的位数,就要分开来加,高字节的结果取决于下方字节是否添加到上方字节。
例如,如果一个八位数的CPU一次只能处理一个字节,
如果我们同时乘以两个16位整数, 我们得到: 00110101 1101010 + 0010100 011
然后乘以1101010乘以01101 011,0011
目前,C国定为1国,其次是ADC+00110101和0010100以及C国(现为1国);
既然是0101010,就是0101010011
扣减扣减:SBB指令
内存格式: SBB R/M、R/M/IMM不能同时使用。
XCHG 指令:数据交换
R/M/IMM不能与XCHG R/M同时是记录和记录管理。
两者的通信数据宽度相同。
MOVS 命令用于在内存和内存之间移动数据 。
它很可能是正方向的一串字符串的重复。
DF(方向旗):一旦完成MOVS,确定ESI和EDI的开发方向。
DF+零减1。增减由变动量决定。
STOS 指令:将 AL/AX/EAX 值保存在[EDI]指定的内存单元中。
DF还确定实施后EDI值的旅行方向。同样的DF+0,减1。
REP 指令:在重复字符串请求时,使用计数保管人(ECX)指令中标明的次数。
JCC:
jmp 指令: 将 EIP 登记册中的指针移动到下一个命令( 移动 IP 指针以便 CPU 执行相应的指令) 。
如果跳跃位置从当前点位置小于128字节, 将会有一个 SHORT 。
JUM 仅修改 EIP 的值; 登记簿和书架均不修改 。
调用命令: 以与 jmp 函数相同的方式更改 EIP 指针 。
调用和 jmp 之间的区别在于调用将地址插入到堆栈中。
返回地址:呼叫命令计算向当前位置命令提供的字节,+当前命令的字节返回地址。
要返回地址,请与呼叫指挥部一起使用后方指挥中心。
退栈操作
将两个动作与 cmp 命令比较 。
cmp R/M,R/M/IMM是命令格式。实际上,它相当于小组委员会的命令,但减法结构不保留在最初行动数目中。
仅仅减法的结果就影响到零符号位置,当两个操作相同时,0符号位置为1;奇怪的标志同样是1。
除了比较存款人价值的大小外,您还可以比较内存和登记簿的大小。然而,这些数字是一样的。
对两个操作也进行了试验,但只有两个数值进行和运行,结果没有保存,只有适当的标记得到修改。
以下命令格式可供使用:测试R/M、R/M/IMM。通常用来测试登记簿是否等于0。
一些小指令:
JCC指令 中文含义 英文原意 检查符号位 典型C应用JZ/JE | 如果值为 0, 跳跃; 如果值相等, 跳跃 。 | jump if zero;jump if equal | ZF=1 | if (i == j);if (i == 0); |
JNZ/JNE | 如果不是零,跳,跳,跳,跳,跳,跳,跳,跳,跳,跳,跳,跳,跳,跳,跳,跳,跳,跳,跳,跳,跳,跳,跳,跳,跳,跳,跳,跳,跳,跳,跳,跳,跳,跳,跳,跳,跳,跳,跳,跳,跳,跳,跳 | jump if not zero;jump if not equal | ZF=0 | if (i != j);if (i != 0); |
JS | 若为负则跳转 | jump if sign | SF=1 | if (i < 0); |
JNS | 若为正则跳转 | jump if not sign | SF=0 | if (i > 0); |
JP/JPE | 如果一个发生的次数是偶数,跳跃。 | jump if Parity (Even) | PF=1 | (null) |
JNP/JPO | 如果一个人来的数字是奇数, 抓住机会。 | jump if not parity (odd) | PF=0 | (null) |
JO | 若溢出则跳转 | jump if overflow | OF=1 | (null) |
JNO | 若无溢出则跳转 | jump if not overflow | OF=0 | (null) |
JC/JB/JNAE | 如果位数插入, 跳; 如果在下面, 跳; 如果不高于等数, 跳 | jump if carry;jump if below;jump if not above equal | CF=1 | if (i < j); |
JNC/JNB/JAE | 如果没有进入,就跳;没有更低的,就跳;高于或等于,就跳; | jump if not carry;jump if not below;jump if above equal | CF=0 | if (i >= j); |
JBE/JNA | 如果低于等值,跳跃;如果不高,跳跃。 | jump if below equal;jump if not above | ZF=1或CF=1 | if (i <= j); |
JNBE/JA | 如果不低于等值,跳跃;如果更多,跳跃。 | jump if not below equal;jump if above | ZF=0或CF=0 | if (i > j); |
JL/JNGE | 如果它小于或等于,跳跃;如果它大于或等于,跳跃。 | jump if less;jump if not greater equal | SF != OF | if (si < sj); |
JNL/JGE | 如果不是少于,跳跃;如果大于或等于,跳跃; | jump if not less;jump if greater equal | SF = OF | if (si >= sj); |
JLE/JNG | 如果它小于或等于,跳跃;如果它不大于,跳跃。 | jump if less equal;jump if not greater | 或ZF=1 离开或ZF=1 | if (si <= sj); |
JNLE/JG | 如果它不小于或等于,跳跃;如果它更大,跳跃。 | jump if not less equal;jump if greater | ZF=0和SF=0F | if(si>sj) |
堆栈图:
堆栈图:
ctrl+g: 转到输入的目标地址 F2:当选择地址时,按 F2 键以建立断点。 F8: 跳过呼叫命令( 单步) 调试 F7:一步调试,而不是跳过调用命令(逐步)堆栈图分析步骤:
第1步:操作前堆叠地点通过观察登记册确定(ESP、EBP、EIP)。步骤2:一步一步地调试,观察屋顶和地板的变化,确定缩进或出口是否有价值。第三步是重复第一步和第二步。
函数:计算机的函数,这是计划的一部分或者,作为次级程序,它还为固定计算功能提供了一个出入境点。所谓的入口,是函数所具备的一组参数。我们可以从这扇门进去用子程序替换函数的参数值。供计算机处理,所谓出口,是函数计算的结果,也称为返回值在计算机求得之后,回到申请表上 窗口堆叠 :1. 先进和逆向; 2. 延伸至下地址堆叠平衡:窗口堆叠,是一块普通的内存,除其他外,它主要用于储存临时数据和参数。想象一下窗口中的堆叠是一个公开的书箱, 与一个人使用一个盒子的功能。函数在执行的时候,会用到这个书箱,里面有很多数据 里面有很多数据然而,当你的书用光了, 记住把它们带走。否则会乱的,也就是说,你放进去几本书,我们要带几本书一起走这个就是堆栈平衡.
XTw.com.Cn系统网专业应用软件下载教程,免费windows10系统,win11,办公软件,OA办公系统,OA软件,办公自动化软件,开源系统,移动办公软件等信息,解决一体化的办公方案。
免责声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。内容仅供参考使用,不准确地方联系删除处理!
联系邮箱:773537036@qq.com