tinytracer

  • 实践
    • CTF
    • 项目实践
  • 技术
    • C++
    • 逆向与汇编
    • 区块链安全
  • 探索
    • OWASP汉化
    • SQL
    • Kali
断点
逆向与汇编

硬件断点探幽

硬件断点 调试寄存器 IA-32处理器定义了8个调试寄存器,分别是DR0\~DR7。在32位模式下,它们都是32位的;在64位模式下为64位。 在32位模式下,DR4与DR5是保留的,当调试扩展(DE)功能被启用,即CR4的DE位为1时,任何对DR4与DR5的引用都会导致一个非法指令异常;当DE被禁用时,DR4和DR5分别是DR6与DR7的别名寄存器,等价于访问后者。寄存器的内容图示如下: DR0\~DR3为调试地址寄存器,长度与CPU位数一致 DR6为调试状态寄存器,64位时高32位保留未用 DR7为32位的调试…

2019年1月31日 0条评论 7429点热度 0人点赞 Chernobyl 阅读全文
逆向与汇编

软件断点探幽

软件断点 x86系列的处理器支持一条专门用来调试指令INT 3,也即是通常所说的“软件断点”,这条指令的目的是使CPU中断到调试器,以供调试者对执行现场进行分析。调试程序时,可以在可能有问题的地方插入INT 3指令。 INT 3 无论是Visual C++亦或是GCC都支持内联汇编指令,VC++示例如下: #include<iostream> int main() { int a = 0; __asm INT 3; std::cout << a << std::endl; std…

2019年1月29日 0条评论 7327点热度 0人点赞 Chernobyl 阅读全文

COPYRIGHT © 2021 tinytracer.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang