T_MAC仔 发表于 2016-4-20 20:04

int 3 断点原理 以及实现

和大家分享一下自己的想法,错误之处请指出,话不多说:    学习目的:调试过程中你能够灵活的利用断点,几乎可以事半功倍,断点包括(硬件断点 内存断点,int3断点...)      从原理+实践出发,更好.更深入的了解int3 断点原理(int3 机器码为CC)        环境配置              先讲笔者现在的电脑环境吧还是:windows7 旗舰版              安装教程:http://www.cnblogs.com/TK4Moma/p/5392123.html(有疑问的请随时联系笔者)              实验环境:windows xp 虚拟机 (笔者用vmware 12虚拟机软件)                  :工具http:// www.52pojie.cn/forum.php点击吾爱破解工具包下载即可                     http://images2015.cnblogs.com/blog/920371/201604/920371-20160420190337195-1614249036.png   
                    :vc++6.0                此时工具已经完备,下面讲正题:        准备工作:          1.vc++6.0 建工程写c程序:
                  #include<stdio.h>
                    int main(void)
                      {
                        while(1)
                        {
                          printf("Hello World");

                        }                          getchar();
                          return 0;
                      }
          2.在工程目录下找到 可执行文件(即..exe 文件,常说的黑窗口)
          3.打开 下载好的工具包 http://images2015.cnblogs.com/blog/920371/201604/920371-20160420191402913-359924932.png          4. 单击OllyDbg吾爱专版 后将 刚才编译的 exe 拖进 ollydbg 就可以啦          5. 此时只需要点击右键-》 查找 -》所有参考文本字符串 ;http://images2015.cnblogs.com/blog/920371/201604/920371-20160420192225804-1388132722.png
            6.接下来 单击右键查找文本-》输入Hello 即可 http://images2015.cnblogs.com/blog/920371/201604/920371-20160420192355945-803653346.png   单击Hello World 即可来到


http://common.cnblogs.com/images/copycode.gif
1 0040102D|.85C0          |test eax,eax 2 0040102F|.74 0F         |je short t.00401040 3 00401031|.68 1C204200   |push t.0042201C                         ;ASCII "Hello World"   点击后 程序停留在此处 4 00401036|.E8 35000000   |call t.00401070 5 0040103B|.83C4 04       |add esp,0x4 6 0040103E|.^ EB E8         \jmp short t.00401028                  循环跳转 7 00401040|>33C0          xor eax,eax                               此处下 int3 断点即可   (F2 即可) 8 00401042|.5F            pop edi                                  ;kernel32.7C817077 9 00401043|.5E            pop esi                                  ;kernel32.7C81707710 00401044|.5B            pop ebx                                  ;kernel32.7C81707711 00401045|.83C4 40       add esp,0x4012 00401048|.3BEC          cmp ebp,esp13 0040104A|.E8 A1000000   call t.004010F014 0040104F|.8BE5          mov esp,ebp15 00401051|.5D            pop ebp                                  ;kernel32.7C81707716 00401052\.C3            retn

              7.接下来就是用 LoadPEdump (操作方法,打开无碍破解工具包,单击 PE 工具 找到 吾爱破解专版打开即可) http://common.cnblogs.com/images/copycode.gif



             http://images2015.cnblogs.com/blog/920371/201604/920371-20160420193020991-1748203164.png
              8. 找到 相应的进程 (即 ...exe 的进程)然后单击右键完整转存即可
              9.将完整转存后的 可执行文件(exe)拖进 olldbg重复4 56步骤即可,,,找到 ASCII helloworld                  此时下断点的地方 可以看出已变成 CCint3 啦实验完成http://images2015.cnblogs.com/blog/920371/201604/920371-20160420193430601-701503331.png
          知识补充:
              1. loadpe  dump 原理原帖地址:http://blog.csdn.net/zhangmiaoping23/article/details/9405835            2.转载请标明出处            3.不足之处请大家知无不言,

520_ai_in@sina. 发表于 2016-4-20 20:19

不懂 简单的看了下你说的是 如何下断点 如何断下来   这叫用法吧

wangqiustc 发表于 2016-4-20 20:41

厉害厉害,顶楼主

T_MAC仔 发表于 2016-4-21 10:58

520_ai_in@sina. 发表于 2016-4-20 20:19
不懂 简单的看了下你说的是 如何下断点 如何断下来   这叫用法吧

1.谢谢你耐心看完,并且说出您的意见,
2.关于其原理请问您的理解是?

xiaobaixiaobai 发表于 2018-10-12 19:35

你这排版这是要人命

丿猎狐 发表于 2018-10-13 07:37

排版有点乱哦,6到7之间的那些没看明白

92013 发表于 2018-11-24 14:13

感谢有你,感谢分享

92013 发表于 2018-11-24 14:38

收藏一下。。。谢谢分享。。

ikea 发表于 2019-3-13 16:45

楼主先用ollydbg下断点,再用工具dump出来看下断点实现的原理,发现ollydbg断点的原理是插入int3指令来实现断点功能。
我想知道的是为什么int3 可以实现断点?
页: [1]
查看完整版本: int 3 断点原理 以及实现