zoukankan      html  css  js  c++  java
  • 学习:CC断点

    断点介绍:

    shark恒老师说有四种说法,但是其实都是相同的

    第一个读法:普通断点
    第二个读法:F2断点
    第三个读法:INT3断点( int3其实就是汇编指令 )
    第四个读法:CC断点 (CC其实就是断点时候的十六进制的数据)


    断点的实现:

    1、载入OD找到以下地址进行断点,然后进行运行,发现运行到了该地址
    0040101A |. /74 01 je short CRACKME.0040101D

    那么断点是如何实现的呢?自己根据shark恒老师讲的复述一遍

    其实十六进制会发生改变的,我们自己把这个断点的地址的中的HEX数据放在eax寄存器中进行观察

    首先观察到0040101A地址中的数据为74 01

    然后我们在下面随机挑选一个地址 进行反汇编指令为mov eax,dword ptr ds:[0x40101A],然后单步步过,发现EAX中的数据为A1C301CC,如下

    重点观察后面01CC,发现JE跳转的HEX 74 变成了 CC ,然后就会出现异常,接着OD就会进行异常的捕获最后完成了断点的实现


    CC和INT3的关系

    其实都是一样 一张图就可以明白了


    bp MessageBoxA 和 bpx MessageBoxA之间的区别

    都是OD中的快捷键进行断点,但是是有区别的

    bp MessageBoxA的断点设置是断在user32.dll动态链接库模块领空中的首地址

    bpx MessageBoxA的断点设置是断在当前程序领空中的所有调用MessageBoxA windows api函数的CALL

    然后我们进行反汇编跟随看看,可以看到都是在当前程序下CALL地方处下的断点

  • 相关阅读:
    proto 在c++ 和c# 的使用。
    socket 2.草稿。
    unix 基本操作。
    tcp ip 草稿。
    并发,互斥,锁。草稿
    二叉顺序树。
    单链表。
    s数据结构,算法,算法时间复杂度
    c++11 function bind 测试。
    [汇编语言]-第三章寄存器(内存访问)
  • 原文地址:https://www.cnblogs.com/zpchcbd/p/12056921.html
Copyright © 2011-2022 走看看