| 发表于:2007-06-30 15:13:14 楼主 |
第一贴地址: http://community.csdn.net/expert/topic/5614/5614188.xml?temp=.6287348 问题解决方向: 使用调试器,获取调试事件,在调试事件中使用drx寄存器获取修改数据的汇编语句地址 解决程度: 使用调试器部分:主线程做窗体,另一个线程加载调试器,调试器可正常获取调试事件并处理,可随时终止调试。已经不会造成目标进程,本进程死锁,解决了内存冲突和回收问题。 剩余问题: drx寄存器的使用,若我想得到写入06f969a4地址数据的汇编代码地址,应如何做,要代码啊,呵呵,别来理论的,来实际的! ===================================================================== 以下的全部代码(包括声明)都是.net形式的 ===================================================================== context声明的前段: 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 ……………… end structure ======================================================================= 下面这段是dr6\dr7的格式,将各位置位时请使用2^x形式,例如将dr7的l0和g0置位,请写dr7 = 2^0 + 2^1空间所限,把22位到27位删去了,其他位一一对应 ' ¦ - - - - - - - - - - ¦ - - - - - - - - - - - - - - - - ¦ ' dr6 ¦ ¦ b b b b b b b ¦ ' ¦ ¦ t s d 3 2 1 0 ¦ ' ¦ - - - - - - - - - - ¦ - - - - - - - - - - - - - - - - ¦ ' dr7 ¦ rwe ¦len ¦rwe ¦rwe ¦len ¦ g l g l g l g l g l g l g l g l ¦ ' ¦ 3 3 1 0 0 ¦ t t d d s s e e 3 3 2 2 1 1 0 0 ¦ ' ¦ - - - - - - - - - - ¦ - - - - - - - - - - - - - - - - ¦ ' 31 2821 16 0 ======================================================================== |
|
|
|
|