环境:
- windows xp
- 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;
}
解决
-
./
代表解压之后的文件夹,长这样
-
先备份一个
./
文件夹再继续下面操作 -
将
./原版/英文原版/
下面所有的文件全部拷贝到./
-
运行路径修复工具
-
选择
options/just in time xxxx
-
选择
make ollydbg just xxx
,然后确认。
-
关闭
ollydbg
,直接运行待调试程序,然后跟着这位老兄的步骤走,就可以打开调试界面。
吾爱破解——请教:Ollydbg附加程序出错 -
进入调试之后,将断点
int 3
改为NOP
并编译(NOP
为跳板指令,什么都不做,执行下一条语句)
9. 就可以开始正常调试
转载请注明出处:https://blog.csdn.net/weixin_43745072/article/details/109501889