能力值:
( LV12,RANK:210 )
|
-
-
2 楼
啥意思 没看明白呢
|
能力值:
( 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结构
异常是必然的
|
能力值:
( 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函数的指针参数地址呢?
|
能力值:
( LV4,RANK:45 )
|
-
-
5 楼
如果是指针型的话 你估计要考虑用多级地址 来查找了
静态调用的时候 内存存储的地址是固定的
动态调用一般都是通过 地址+偏移
你可以尝试下 用ce搜索 指针地址然后用读取内存 偏移来获取指针
|
|
|