我的处理函数是按如下过程进行处理的,写成vb6代码大体是以下形式,当下面函数返回值为t时,将把结果显示出来,并撤销调试器。 private function cc () as boolean dim rct as boolean false select case exceptioncode case exception_breakpoint 阻塞进程 读上下文 解除阻塞 rct = ture
case exception_single_step 非常奇怪的是,这里根本没进入,可是dr6里面命名设置的是步进断点嘛~ end select cc = ret
public structure context dim contextflags as integer '0x00000000 dim dr0 as integer '0x00000004 context debug registers dim dr1 as integer '0x00000008 context debug registers dim dr2 as integer '0x0000000c context debug registers dim dr3 as integer '0x00000010 context debug registers dim dr6 as integer '0x00000014 context debug registers dim dr7 as integer '0x00000018 context debug registers dim floatsave as floating_save_area 'context floating point dim seggs as integer '0x0000008c context segments dim segfs as integer '0x00000090 context segments dim seges as integer '0x00000094 context segments dim segds as integer '0x00000098 context segments dim edi as integer '0x0000009c context integer dim esi as integer '0x000000a0 context integer dim ebx as integer '0x000000a4 context integer dim edx as integer '0x000000a8 context integer dim ecx as integer '0x000000ac context integer dim eax as integer '0x000000b0 context integer dim ebp as integer '0x000000b4 context control dim eip as integer '0x000000b8 context control dim segcs as integer '0x000000bc context control dim eflags as integer '0x000000c0 context control dim esp as integer '0x000000c4 context control dim segss as integer '0x000000c8 context control shared extendedregisters() as byte '0x000000cc...0x000002cb context extended registers private sub initialize() redim extendedregisters(&h1ff) end sub end structure public structure floating_save_area dim controlword as integer '0x0000001c dim statusword as integer '0x00000020 dim tagword as integer '0x00000024 dim erroroffset as integer '0x00000028 dim errorselector as integer '0x0000002c dim dataoffset as integer '0x00000030 dim dataselector as integer '0x00000034 shared registerarea() as byte '0x00000038...0x00000087 dim cr0npxstate as integer '0x00000088 private sub initialize() redim registerarea(&h4f) end sub end structure
这个是.net形式的。。只是在private sub initialize()里面将对应的数组初始化成相应的长度。难道有问题。。。。。。。我翻看了很多资料,都这个形式,当然语言不同可能不一样,我标在后面的起地址都是一样的,对齐方便嘛~:)