段权限检查(数据段)
访问违例问题在介绍内容前,先看两个程序
两个程序的差异仅仅在于段选择子的不同,结果则是一个访问成功另一个访问违例了。分别对两个段选择子进行拆分:
Code10023 = 0000 0000 00100 0 11 RPL:3 Index : 4
Code1002B = 0000 ...
一次简单的Hook(上)
这一次hook小实验的目标是hook出某社交软件中的实时聊天内容,主要目的是了解hook的原理以及在hook之前对程序的分析流程及其他准备工作,从而对于hook有个完整的认识。
准备工具
OllyDbg调试器:用于单步跟踪,动态调试等。
IDA pro调试器:用于静态分析函数代码结构等。
Mir ...
段描述符属性
之前介绍了,段描述符是用来填充段寄存器余下位置的,然而段寄存器余下位置有80位,而段描述符仅有64位,那到底是如何填充的呢?这篇就从这个问题开始,逐步探究段描述符的属性。首先,回顾一下段描述符的结构:
P位P位,位于段描述符高4字节的第15位,是判断描述符是否有效的位置。
P = 1:该描 ...
段描述符与段选择子
在探究段寄存器属性时,注意到,段寄存器在读的时候,只读了16位,但是写的时候会写入96位。那么,段寄存器是如何做到写入96位的呢?今天就要研究两个新的概念:段描述符与段选择子
基础知识Windbg指令Windbg是在调试Windows系统内核时常用的一个调试器,之后也会多次用到;通过Windbg可以 ...
浅谈对称加密传输
看到crownless一篇关于Tor原理解析的文章,涉及到了加密传输的部分,以前没仔细理解,现在用通俗的语言记录下来。
基础概要对称加密所谓对称加密,就是通信双方,在发送和接收数据时,使用同一个密钥key对数据进行加密与解密。发送方和接收方必须在数据传送前商定好秘钥。
优点:加密速度快、效率高。 ...
探究段寄存器
被忽视的dsCode1mov dword ptr ds:[0x003f048], eax
在进行ring3逆向时,海哥让我们不去管ds寄存器的作用,只需要理解,这条语句的作用是将eax的值,写入0x003f048这个地址处即可;但是到了保护模式,这种说法就不再准确了,接下来一步步探寻ds的本质
段 ...
初见保护模式
保护模式从80386开始,CPU有三种工作方式:实模式,保护模式和虚拟8086模式。在计算机刚启动时CPU处于实模式,然后通过切换机制再进入保护模式,所以现在的操作系统,都是运行在保护模式上。
为何要引入保护模式?在80286以前,CPU只有实模式,在这个模式下,所有的段都是可读,可写,可执行的;此 ...