您的位置:程序门 -> vb ->



关于跟踪读写内存问题(汇编)续帖no1


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


关于跟踪读写内存问题(汇编)续帖no1[已结贴,结贴人:zcsor]
发表于: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
========================================================================
发表于:2007-06-30 15:14:211楼 得分:0
.。。。。。。。空间竟然够大。。。。。。。。。郁闷重新帖dr6-7
===============================================================================

        '               ¦   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   ¦   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   ¦
        '   dr6       ¦                                                                   ¦   b   b   b                                       b   b   b   b   ¦
        '               ¦                                                                   ¦   t   s   d                                       3   2   1   0   ¦
        '               ¦   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   ¦   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   ¦
        '   dr7       ¦   rwe ¦len ¦rwe ¦len ¦rwe ¦len ¦rwe ¦len   ¦   g   l   g   l   g   l   g   l   g   l   g   l   g   l   g   l   ¦
        '               ¦     3       3       2       2       1       1       0       0     ¦   t   t   d   d   s   s   e   e   3   3   2   2   1   1   0   0   ¦
        '               ¦   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   ¦   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   ¦
        '                   31                                                         16                                                                 0
        '========================================
发表于:2007-06-30 17:09:182楼 得分:0
厉害
发表于:2007-06-30 18:20:533楼 得分:0
没人在帮忙吗。。。晕
发表于:2007-07-06 16:56:584楼 得分:200
呵呵   这个东西比较少,你还是去其他地方找找吧
发表于:2007-07-07 14:00:035楼 得分:0
小顶。。
发表于:2007-07-21 15:03:586楼 得分:0
准备结贴,,,,,,,,,
发表于:2007-07-21 17:09:357楼 得分:0
lz做游戏修改器这么强。。。

vb版估计无解了。。

也许google搜索英文资料可以找到
发表于:2007-07-21 22:31:248楼 得分:0
不是无解,已经写的差不多了,正在调试。。。。有些结构和api声明在vb.net里面用的时候经常出问题,所以需要大量的修改,没办法,所以进度比较慢。。
发表于:2007-07-22 11:31:589楼 得分:0
问问版主们吧

毕竟是mvp,经验及技术方面都远在我们之上
发表于:2007-07-22 21:11:4610楼 得分:0
呵呵。这个问题做过的肯定是不多的,有一个问题就是如果用vb6去做,调试循环是不太好解决的,.net下我用的是多线程。由于上面这个原因,估计版主们如果用vb6也会觉得麻烦。不过这个vb6使用多线程的解决方案是很多的,但是编码都比较麻烦,最好的解决方案个人认为是写2个程序,一个用于调试一个用于主程序,避免多线程,启动时传递commadn,而后用进程通讯来传递其他参数及结果。

实际上这个问题,我已经做完了。不知道什么原因,我写用drx寄存器的代码总是不能成功返回,后来又采用了一个更加高效并且易于处理的方式来解决,具有更多的跟踪功能,可跟踪读、写、读写,较完整的实现的内存断点。


帖子过几天我把代码修正一下测试完成再结
发表于:2007-07-23 12:54:4211楼 得分:0
代码测试通过了。

还有几个问题,解决以后我这个工程基本就收尾了。

有懂的朋友跟一下帖,另开帖提出其中能解决的问题。
1、如何在其他程序运行全屏dx模式下显示出自己的窗体gdi(gdi+)
2、如何将内存数据与汇编代码互相转换,就是机器码和汇编代码的互化


快速检索

最新资讯
热门点击