huowu1990 发表于 2015-7-1 14:08:57

跪求 ollydbg实现 思路。

如题..

huowu1990 发表于 2021-10-22 10:50:28

本帖最后由 huowu1990 于 2021-10-22 11:05 编辑

{:10_245:} 突然想到了鱼C, 突然看到自己的一个坑.. 哈哈哈哈。后面自己实现一个控制台的. 源码有机会再贴了。简单描述一下, 算是填坑了。

1. 调试事件: 查API(如: WaitForDebugEvent, ContinueDebugEvent) 等待进程的调试事件。GetThreadContext 获取上下文可得到很多信息(各寄存器, 栈等), 反汇编引擎(配合intel手册自己写,也有开源的)
2. 断点: 断点简单的理解就是不管什么方法, 你能让程序在目标地址停下来, 处理完后能让程序继续运行。
        - 执行断点:可以填int 3(0xCC), 得在调试事件中好好处理这个异常
        - 硬件断点: 我记得是由CPU提供的, DR0~系列的寄存器. 填上就能停。
        - 内存断点: 设置内存保护, 正常访问时触发访问异常. 处理异常时即可得到上下文。

漩涡鸣人 发表于 2015-7-1 14:08:58

本帖最后由 漩涡鸣人 于 2015-7-2 17:53 编辑

huowu1990 发表于 2015-7-1 20:27
谢谢指教、

汇编肯定得先入门,对OD原理有兴趣的话,可以看下各种调试断点的原理。
其实断点的原理很简单,例如最简单的int 3替换实现内存断点,直接让对应程序执行到某个地址发生异常,然后调试器处理这个中断就好了。

资料推荐下看雪的kssd,这方面的文章不少,看下很快就能理解了。也可以自己写一个动态调试器练练手,难度不会太大。[反汇编原理和实现方面可以看看我那视频]
链接:
http://www.pediy.com/kssd/
(tips:逆向篇->动态分析技术,有你想要的资料)

huowu1990 发表于 2015-7-1 14:28:49

描叙一下、主要想知道、获取寄存器的值、动态调试、获取汇编指令、断点等功能是怎么实现的、

牡丹花下死做鬼 发表于 2015-7-1 16:26:57

你得先说
你懂多少
关于这方面的知识

huowu1990 发表于 2015-7-1 17:54:08

:sad、 少、 汇编/Windows程序设计、 这些比刚刚入门的好一点点。

huowu1990 发表于 2015-7-1 17:56:12

牡丹花下死做鬼 发表于 2015-7-1 16:26
你得先说
你懂多少
关于这方面的知识


、 少、 汇编/Windows程序设计、 这些比刚刚入门的好一点点。 最主要的是。想知道他的动态调试、反汇编怎么做的、 要是欠缺内功、可以只条明路也行。:sad

牡丹花下死做鬼 发表于 2015-7-1 20:05:04

huowu1990 发表于 2015-7-1 17:56
、 少、 汇编/Windows程序设计、 这些比刚刚入门的好一点点。 最主要的是。想知道他的动态调试、反汇编 ...

那我劝你好好学汇编 这事现在不用管

huowu1990 发表于 2015-7-1 20:16:55

牡丹花下死做鬼 发表于 2015-7-1 20:05
那我劝你好好学汇编 这事现在不用管

那有什么推荐的资料吗?

牡丹花下死做鬼 发表于 2015-7-1 20:24:09

huowu1990 发表于 2015-7-1 20:16
那有什么推荐的资料吗?

入门的话 王爽的 在深入我就不知道了我那书还没看完呢

huowu1990 发表于 2015-7-1 20:27:34

牡丹花下死做鬼 发表于 2015-7-1 20:24
入门的话 王爽的 在深入我就不知道了我那书还没看完呢

:handshake 谢谢指教、

huowu1990 发表于 2015-7-5 17:06:30

漩涡鸣人 发表于 2015-7-2 17:51
汇编肯定得先入门,对OD原理有兴趣的话,可以看下各种调试断点的原理。
其实断点的原理很简单,例如最 ...

{:9_227:}谢谢、非常感谢、 这东西对我帮助很大、
页: [1]
查看完整版本: 跪求 ollydbg实现 思路。