摘要:利用SEH技术实现反跟踪,这个方法比单纯用判断API函数第一个字节是否为断点更加有效,可以防止在API函数内部的多处地址设置断点 通过int 3指令故意产生一个异常,从而让系统转入自己的异常处理函数,修改CONTEXT结构的regFlag中的TF位设置为1,并且将ContextFlags修改为CON
阅读全文
随笔分类 - WIN逆向
摘要:此时Dr0为4271B5,表示4271B5地址处被设置了硬件断点。现在我们来看看CONTEXT结构。 这里我们可以看到context结构中Dr0~Dr3寄存器的内容。黄色标注的4271B5是我们设置了硬件断点的地址。其他三个粉红色标注的位零,因为我们只设置了一个硬件断点,所以它们是空的。 当异常处理
阅读全文
摘要:所谓“两次内存断点法寻找OEP”,按照《加密与解密*第三版》上的解释来说,就是这样的。一般的外壳会依次对.text、.rdata、.data、.rsrc区块进行解压(解密)处理,所以,可以先在.rdata、.data等区块下内存访问断点,中断后,此时代码已解压,接着再对代码段(.text)下内存访问
阅读全文
摘要:这些就是调试寄存器组,Dr0 ~ Dr7。Dr0,Dr1,Dr2,Dr3是用于设置硬件断点的,由于只有4个硬件断点寄存器,所以同时最多只能设置4个硬件断点。产生的异常是STATUS_SINGLE_STEP(单步异常)。Dr4,Dr5是系统保留的。Dr7是一些控制位,用于控制断点的方式,Dr6是用于显
阅读全文