首页
社区
课程
招聘
[求助]hook一进程,怎么访问该进程另外dll的内存地址呢。
发表于: 2010-12-26 19:28 5817

[求助]hook一进程,怎么访问该进程另外dll的内存地址呢。

2010-12-26 19:28
5817
hook一进程,怎么访问该进程另外一个dll的内存地址呢。
a.dll调用b.dll的xxx.参数为指针型.hook进程修改b.dll中xxx的地址。如果参数不为指针就正常,如果是指针。a.dll就会提示非法访问。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 170
活跃值: (90)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
2
啥意思 没看明白呢
2010-12-26 23:15
0
雪    币: 6082
活跃值: (859)
能力值: ( LV4,RANK:45 )
在线值:
发帖
回帖
粉丝
3
hook一进程,怎么访问该进程另外一个dll的内存地址呢。 -----hook的是函数 进程是函数的某个参数  访问进程的dll要枚举进程中的线程 然后找到 基地址 +dll的偏移地址。这样就可以访问dll的内存地址了 访问方式api调用

a.dll调用b.dll的xxx.参数为指针型.----------不知道你写什么 如果参数是指针的话 用内存读取
hook进程修改b.dll中xxx的地址。--------是内存patch?那就调用 api写内存
如果参数不为指针就正常,如果是指针。a.dll就会提示非法访问。---------用try except结构
异常是必然的
2010-12-26 23:42
0
雪    币: 264
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
具体是这样的
test.exe
-----a.dll
         -----b.dll

test中调用了a.dll中的ccc函数,而这个ccc函数是静态调用B.dll中的mmm函数。
我现在注入test hook b.dll中的mmm函数。
a.dll 和b.dll是我自己写的,
第一次没有用到指针变量。 test运行正常。
第二次,我把a.dll中ccc及b.dll中mmm函数的参数改为指针型。test出错,提示 a.dll 非法访问 xxxxx内存地址。因为hook时间我修改了返回值。第一次返回值是复制方式传给a.dll。第二次,参数改为了指针,所以hook.dll要访问a.dll传给b.dll的内存地址,所以出错了。我想着是这样,不知道对不对?

君君寒 你的意思是不是 在hook回调函数中 把a.dll传过来的内存地址改为 a.dll的基地址+a.dll中ccc函数的指针参数地址呢?
2010-12-27 19:18
0
雪    币: 6082
活跃值: (859)
能力值: ( LV4,RANK:45 )
在线值:
发帖
回帖
粉丝
5
如果是指针型的话 你估计要考虑用多级地址 来查找了
静态调用的时候 内存存储的地址是固定的
动态调用一般都是通过 地址+偏移
你可以尝试下 用ce搜索 指针地址然后用读取内存 偏移来获取指针
2010-12-31 14:11
0
游客
登录 | 注册 方可回帖
返回