环境:

  1. windows xp
  2. ollydbg 7周年纪念版

在《0day》这本书的实验中,__asm int 3为硬件断点。
具体的问题描述,懒得截图,附上一位老兄的截图连接。
吾爱破解——请教:Ollydbg附加程序出错

#include <windows.h>
main()
{HLOCAL h1,h2,h3,h4,h5,h6;
HANDLE hp;
hp = HeapCreate(0,0x1000,0x10000);
__asm int 3
h1 = HeapAlloc(hp,HEAP_ZERO_MEMORY,3);
h2 = HeapAlloc(hp,HEAP_ZERO_MEMORY,5);
h3 = HeapAlloc(hp,HEAP_ZERO_MEMORY,6);
h4 = HeapAlloc(hp,HEAP_ZERO_MEMORY,8);
h5 = HeapAlloc(hp,HEAP_ZERO_MEMORY,19);
h6 = HeapAlloc(hp,HEAP_ZERO_MEMORY,24);
//free block and prevent coaleses
HeapFree(hp,0,h1); //free to freelist[2]
HeapFree(hp,0,h3); //free to freelist[2]
HeapFree(hp,0,h5); //free to freelist[4]
HeapFree(hp,0,h4); //coalese h3,h4,h5,link the large block to
//freelist[8]
return 0;
}

解决

  1. ./代表解压之后的文件夹,长这样

  2. 先备份一个./文件夹再继续下面操作

  3. ./原版/英文原版/下面所有的文件全部拷贝到./

  4. 运行路径修复工具

  5. 选择options/just in time xxxx

  6. 选择make ollydbg just xxx,然后确认。

  7. 关闭ollydbg,直接运行待调试程序,然后跟着这位老兄的步骤走,就可以打开调试界面。
    吾爱破解——请教:Ollydbg附加程序出错

  8. 进入调试之后,将断点int 3改为NOP并编译(NOP为跳板指令,什么都不做,执行下一条语句)


9. 就可以开始正常调试

转载请注明出处:https://blog.csdn.net/weixin_43745072/article/details/109501889

ollydbg(避坑-1) jiack 无法作为一个实时调试器附加到进程 解决方案相关推荐

  1. linux的静态编译elf无法调试,[翻译]自己动手编写一个Linux调试器系列之4 ELF文件格式与DWARF调试格式 by lantie@15PB...

    自己动手编写一个Linux调试器系列之4 ELF文件格式与DWARF调试格式 by lantie@15PB 在上一节中,你已经听说了DWARF调试格式,它是程序的调试信息,是一种可以更好理解源码的方式 ...

  2. 自制一个CAN调试器器,难不难?

    大家好我是小麦,最近在调CAN,然后在逛阿莫论坛的时候,发现一个很好的CAN调试器项目,给大家安利一下. 这里推荐一个国外的超级好用的开源工具CANable,有完全开源的软硬件及上位机支持,支持win ...

  3. linux 源码 调试,开发一个Linux调试器(六):源码级逐步执行

    我们计算编写这些函数异常简单的版本,但真正的调试器有 thread plan 的概念,它封装了所有的单步信息.例如,调试器可能有一些复杂的逻辑去决定断点的地位,然后有一些回调函数用于断定单步操作是否完 ...

  4. linux内存地址断点,开发一个 Linux 调试器(三):寄存器和内存

    上一篇博文中我们给调试器添加了一个简单的地址断点.这次,我们将添加读写寄存器和内存的功能,这将使我们能够使用我们的程序计数器.观察状态和改变程序的行为. 注册我们的寄存器 在我们真正读取任何寄存器之前 ...

  5. 一个ABAP调试器里查看类的静态属性的小技巧

    我们知道,像如图一这种类的静态属性,因为不属于类的实例所有,因此调试到这个类的方法内部时,只能通过图二演示的两种方式在调试器显示该属性的值.而一旦调试到该类方法的外部,通常就只能通过"类名= ...

  6. Linux包含一个名称是()的调试程序,开发一个 Linux 调试器(九):处理变量

    变量是偷偷摸摸的.有时,它们会很高兴地呆在寄存器中,但是一转头就会跑到堆栈中.为了优化,编译器可能会完全将它们从窗口中抛出.无论变量在内存中的如何移动,我们都需要一些方法在调试器中跟踪和操作它们.这篇 ...

  7. 开发一个Linux调试器(八):堆栈展开

    有时你需要知道的最重要的信息是什么,你当前的程序状态是如何到达那里的.有一个 backtrace 命令,它给你提供了程序当前的函数调用链.这篇文章将向你展示如何在 x86_64 上实现堆栈展开以生成这 ...

  8. 开发一个 Linux 调试器(四):Elves 和 dwarves

    https://linux.cn/article-8719-1.html 到目前为止,你已经偶尔听到了关于 dwarves.调试信息.一种无需解析就可以理解源码方式.今天我们会详细介绍源码级的调试信息 ...

  9. found dwarf version #039;4#039; linux,开发一个Linux调试器(四):Elves和dwarves

    到目前为止,你已经偶尔听到了关于 dwarves.调试信息.一种无需解析就可以理解源码方式.今天我们会详细介绍源码级的调试信息,作为本指南后面部分使用它的准备. 系列文章索引 随着后面文章的发布,这些 ...

  10. linux如何调试elf程序,开发一个Linux调试器就需要了解ELF和DWARF

    到目前为止,可能你已经听到了关于调试信息或者关于除了解析代码以外的理解源代码的方法的DWARF的只言片语.今天,我们将介绍源代码级的调试信息的细节,以备在该系列的余下部分使用它. ELF和DWARF简 ...

最新文章

  1. 字节Java面试必问:mysql索引类型属于
  2. python画三维立体图-python_matplotlib画三维图
  3. matlab保存图片如何保证dpi,[转载]matlab 保存高分辨率图像 dpi要在300以上
  4. JavaScript高级程序设计(第三版)学习笔记1~5章
  5. rust里mp5a4_Rust源码分析:channel内部mpsc队列
  6. Hadoop3.0的新特性
  7. [原]解决win2003 iis6 部署MVC 无法访问 403 的问题
  8. linux安装协议,在Linux中安装IPv6协议
  9. 方差(Variance)和标准差(Standard Deviation)
  10. 用JS做关灯游戏(初级)
  11. php通用编码,php字符串怎么转换编码
  12. 微信付款为什么无法连接服务器,前台微信付款报错:无法连接服务器,请检查网络连接?...
  13. Windows环境,agent在后台运行
  14. Java咖啡馆---第一杯咖啡
  15. Spring事务通知tx:advice标签
  16. thymeleaf内嵌变量
  17. 新品发布 | P600准行业无人机研发平台,室外视觉识别跟踪、激光雷达避障、多机组网!
  18. python初始化一个二维数组_二维数组初始化
  19. 微信小程序获取input输入框的值
  20. 数据分析——用户粘性指标 DAU/MAU

热门文章

  1. java 页眉页脚_Java 修改Word页眉页脚
  2. 土地资源管理就业怎么这么难_我所理解的土地资源管理专业
  3. 吃冬瓜对宝宝有什么好处?
  4. 高性能计算中的并行计算、分布式计算、网格计算和云计算之间的区别与联系
  5. 界面·财联社完成C轮5亿元融资;希尔顿花园酒店品牌首度落子北京 | 美通企业日报...
  6. excel文件运行报错(xx.xlsx)不是有效的win32应用程序
  7. Activiti6.0(十二)子流程
  8. OSC 第 130 期高手问答 — 究竟什么才是微服务?_黄勇【摘选】
  9. Ubuntu12.04 Thinkpad T410i 安装记录 持续更新...
  10. Notification 模拟收到短信,数据下载的状态栏提示