您的位置:程序门 -> vb -> 基础类



关于用vb读取内存数据的一些必然遇见的问题


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


关于用vb读取内存数据的一些必然遇见的问题[已结贴,结贴人:nhl_7]
发表于:2007-03-06 20:47:22 楼主
我用vb来读取一个游戏的内存,在模块里声明了findwindow,getwindowthreadprocessid,openprocess,writeprocessmemory,readprocessmemory,closehandle,formatmessage,getlasterror等api函数,都是抄教科书的,应该没任何问题。但是在form中,代码如下:
dim   hwnd   as   long
dim   pid   as   long
dim   phandle   as   long

hwnd   =   findwindow(vbnullstring,   "biohazard   4 ")
if   (hwnd   =   0)   then
    msgbox   "未找到窗口biohazard   4 ",   ,   "修改器 "
    exit   sub
    else
    getwindowthreadprocessid   hwnd,   pid
    phandle   =   openprocess(&h1f0fff,   false,   pid)
    if   (phandle   =   0)   then
        msgbox   "未找到句柄 ",   ,   "修改器 "
        exit   sub
end   if
这里遇到第一个问题,若phandle   =   openprocess(&h1f0fff,   false,   pid)改成phandle   =   openprocess(process_all_access,   false,   pid),弹出消息“未找到句柄”。究竟&h1f0fff这个地址有何特别,用它能找到游戏,而用process_all_access却找不到游戏?
第二个问题,用true和false对vb程序本身有何影响?
    dim   lpbuffer   as   long
    readprocessmemory   phandle,   &h7121636,   lpbuffer,   4,   0&
    print   lpbuffer
&h7121636是游戏中一个不为0的地址,因为lpbuffer被定为长整型,所以第四个参数我写了4,想读取&h7121636至&h7121639四个字节的数据。令我难过的是,打印结果总是0。
第三个问题,第五个参数就本问题,0&是什么意思(我其实不懂,是抄writeprocessmemory的做法)?如果有错,应改成什么好?
第四个问题,readprocessmemory用错在哪,如何改正?
第五个问题,作为long型数据,lpbuffer能否正确读取超过4个字节的数据?如何做?或者是如何用一次readprocessmemory读取四个字节数据?
第六个问题,假如lpbuffer正确读取了内存数据——十六进制数23,那么打印结果是16进制数23呢,还是10进制数35,或是字符串&h23,字符串23,或者别的?
第七个问题,请哪位有做游戏内外挂经验的老手就我本来的意图将这两段程序改正?有个经验参考最好了。
发表于:2007-03-06 22:29:511楼 得分:100
process_all_access   是常数

复制自apiviewer

private   const   process_all_access   as   long   =   (standard_rights_required   or   synchronize   or   &hfff)
private   const   standard_rights_required   as   long   =   &hf0000
private   const   synchronize   as   long   =   &h100000
发表于:2007-03-06 23:23:452楼 得分:0
kmlxk(xiaokkkk)   :
谢谢解答第一个问题的一半,我有点明白&h1f0fff和process_all_access之间的关系了,不过还不是很清楚另一半。
发表于:2007-03-07 01:08:073楼 得分:0
不清楚```
发表于:2007-03-07 08:24:334楼 得分:0
不清楚```
发表于:2007-03-07 08:34:525楼 得分:0
不清楚```
发表于:2007-03-07 19:08:126楼 得分:0
第一个问题已经解决了,第二到五个谁能帮一下忙?


快速检索

最新资讯
热门点击