以南 发表于 2018-4-14 09:05

多级指针读取

本帖最后由 以南 于 2018-4-14 09:11 编辑

额。先说一下,如果要认真说不能算原创。有借鉴的地方。
但是嘛,API用来用去还是这样的,就厚脸皮说下是原创了{:1_918:}

起因就是最近看了些E的源码,老是ReadProcessMemory里面套ReadProcessMemory,全是10进制。
所以,呵呵哒。


很简单直接上源码。
DWORD ReadAddress(HANDLE &hProcess,DWORD &dwBase, int Numb, ...)
{
      DWORD Address = dwBase;
      va_list dw_Ptr;
      va_start(dw_Ptr, Numb);

      __try
      {
                for (int nArg = 0; nArg <= Numb; nArg++)
                {
                        if (!nArg)
                              ReadProcessMemory(hProcess, (PBYTE*)(Address), &Address, sizeof(DWORD), 0);
                        DWORD Dr = va_arg(dw_Ptr, DWORD);
                        if (nArg!= Numb)
                              ReadProcessMemory(hProcess, (PBYTE*)(Address + Dr), &Address, sizeof(DWORD), 0);
                }

                va_end(dw_Ptr);
                return Address;
      }
      __except (EXCEPTION_EXECUTE_HANDLER)
      {
                return NULL;
      }
}

调用。
DWORD base = ReadAddress(hpros, addrse, 3, 12,6640, pc5);
说明一下,带入第一个函数就不用说了,第二个是基址。第三个是你要读取的指针数,比如我这里写的就是3级指针。
你第三个参数是多少个,后面就带多少个偏移。我这里前2个用的都是整型,最后一个是DWORD。

但是呢,ReadProcessMemory这个函数在读的时候,如果是个空指针它不会把空地址赋值给里面的Address,所以它依旧是之前的值。
比如我的6640是个偏移上读进去之后为空,它不会赋值。并保留原来的值。继续读下一个PC5。

然后就是,你如果要读一个数据,你依旧要自己单独写。多的就不解释了,经常用这个函数的比较明白。
对了,,也可以用0x11这样,16进制为参数多的自己试试吧,这几个应该够用了。

付个效果图。

苏紫方璇 发表于 2018-4-14 10:44

欢迎分享交流源码。我还是喜欢易语言某模块用的“[+xx]”这种模式读取。改天我去改到c语言试试

以南 发表于 2018-4-14 10:49

苏紫方璇 发表于 2018-4-14 10:44
欢迎分享交流源码。我还是喜欢易语言某模块用的“[+xx]”这种模式读取。改天我去改到c语言试试

哈哈,因为没学过E语言,所以看的时候有点难受。所以就写了这个。
总的来说,C/C++国内造轮子的还是太少啊。不像E,轮子不要太多。

苏紫方璇 发表于 2018-4-14 10:53

以南 发表于 2018-4-14 10:49
哈哈,因为没学过E语言,所以看的时候有点难受。所以就写了这个。
总的来说,C/C++国内造轮子的还是太少 ...

是的,E的模块太多了,覆盖面很广,而C/C++基本上类库要去外面找资料,而且基础的也很少

以南 发表于 2018-4-14 11:00

苏紫方璇 发表于 2018-4-14 10:53
是的,E的模块太多了,覆盖面很广,而C/C++基本上类库要去外面找资料,而且基础的也很少

哎,不知道为什么,明明E是个小众,却发展的最适合大众。
大众的东西没人分享,都是公司惹的祸。好东西都在他们手上。

jason1204 发表于 2018-4-14 11:01

不会编程看不懂.但感觉很牛的样子.哈哈

以南 发表于 2018-4-14 11:12

jason1204 发表于 2018-4-14 11:01
不会编程看不懂.但感觉很牛的样子.哈哈

那非常感谢你的回复支持。

pjchangew 发表于 2018-4-14 11:14

peterq521 发表于 2018-4-16 09:20

学习 借鉴一下

wushaominkk 发表于 2018-4-16 10:41

感谢发布原创作品,吾爱因你更精彩!
页: [1] 2
查看完整版本: 多级指针读取