吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4277|回复: 10
收起左侧

[其他原创] 多级指针读取

[复制链接]
以南 发表于 2018-4-14 09:05
本帖最后由 以南 于 2018-4-14 09:11 编辑

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

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


很简单直接上源码。
[C++] 纯文本查看 复制代码
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;
        }
}


调用。
[C++] 纯文本查看 复制代码
DWORD base = ReadAddress(hpros, addrse, 3, 12,6640, pc5);

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

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

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

付个效果图。

QQ图片20180414083423.png QQ图片20180414083440.png

免费评分

参与人数 3吾爱币 +5 热心值 +3 收起 理由
198738655 + 1 + 1 我很赞同!
不羁的生命 + 1 + 1 谢谢@Thanks!
苏紫方璇 + 3 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

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

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
以南 + 1 + 1 我很赞同!

查看全部评分

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

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

点评

是的,E的模块太多了,覆盖面很广,而C/C++基本上类库要去外面找资料,而且基础的也很少  详情 回复 发表于 2018-4-14 10:53
苏紫方璇 发表于 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
感谢发布原创作品,吾爱因你更精彩!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 14:34

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表