能力值:
( LV6,RANK:87 )
|
-
-
2 楼
估计要用到GetThreadContext了
|
能力值:
( LV3,RANK:30 )
|
-
-
3 楼
回溯,往上级函数找
|
能力值:
( LV5,RANK:60 )
|
-
-
4 楼
跟esi的来源或者hook都可以的
|
能力值:
( LV3,RANK:20 )
|
-
-
5 楼
恩 谢谢 我试试找基址
|
能力值:
( LV3,RANK:20 )
|
-
-
6 楼
Lixinist
估计要用到GetThreadContext了
GetThreadContext(线程句柄,线程环境) 获取到线程环境后,如何定位到6F60E738这个地址获取寄存器数值呢?
|
能力值:
( LV3,RANK:20 )
|
-
-
7 楼
AperOdry
跟esi的来源或者hook都可以的
我只知道hook进程的某个API(是注入DLL吧),但是如何hook进程获取6F60E738对应的edi的数值?抱歉,hook用的不是很多!
|
能力值:
( LV9,RANK:280 )
|
-
-
8 楼
esi是this指针吧?ida看下原形,直接函数头部下钩子开搞就是了
|
能力值:
( LV7,RANK:140 )
|
-
-
9 楼
4楼说得对。 往上翻一翻,看看esi是哪里来的,不过有时候也许会很麻烦。 hook比较简单。在6F60E738这里,写入汇编代码,大概流程是这样的: 6F60E738 : jmp xxxx 【此处jmp指令会破坏5字节,xxxx地址由你自己申请】
地址xxxx:mov dword ptr [yyyy],esi 【此处将esi保存到地址yyyy处,yyyy地址由你自己申请】 :mov dowrd ptr [esi+4],edi 【恢复被破坏的指令】 :pop edi【恢复被破坏的指令】 :pop esi【恢复被破坏的指令】 :jmp 6F60E73D【跳转回正常流程】 这样你就把地址储存在yyyy这里了,随便什么方式都可以读到
|
能力值:
( LV3,RANK:20 )
|
-
-
10 楼
yeyeshun
4楼说得对。
往上翻一翻,看看esi是哪里来的,不过有时候也许会很麻烦。
hook比较简单。在6F60E738这里,写入汇编代码,大概流程是这样的:
6F60E738 : jmp xxxx 【 ...
谢谢yeyeshun的回复,原来这样的处理也叫hook,之前也百度找到了思路,但是没有你的详细,谢谢你!
|
|
|