什么工具能够监视dll文件中的函数调用及传递参数

什么工具能够监视dll文件中的函数调用及传递参数,第1张

微软有一个工具叫做dependency walker或者Visual Studio附带的一个工具dumpbin可以查看dll的导出函数名称,函数参数和调用方式(比如__cdecl或__stdcall)在工具里无法显示,需要使用IDA或者OllyDbg等反汇编器将DLL反汇编,通过定位导出函数结尾的retn指令判断参数个数和调用方式。由被调用者平栈通常为__stdcall,由调用者平栈则是__cdecl,平栈的字节数除以平台字长(例如retn 0C中樱桐的0C在x86下是除以4,在x64下除以8)即可得到参数个数(这也是通常,具体问题可能需要具迹腔体分析),至于参数意义,那就完全需要头文件支持,或者分析反汇编代码的意义了。在IDA里,还可以使用F5快捷键将反汇编代码转换为C代码,能稍稍方便一点。最后一个问题,至于思路的话,你可以查看DLL的导出函数,然后使用Detours类库将原来的函数HOOK一下,做个旁路,在HOOK函数中打印调用内容,这样你在日志文件或调试输出中就能看见调用规律了。纯属个人建议。对了,还有一个工具叫做API Monitor,能够检测API调用,但是不知脊州坦道能不能检测导出函数调用,你可以尝试下,我没怎么用过。

*** 作系统中的dll文件被程序调用无法直接删除,只能通过特殊方式进行删除,步骤如下:

1、孝汪镇在运行里输入cmd进入命令提示符。

2、输入命令tasklist /m >陵碰 123.txt

查看dll文件是哪个程序在调用,结束该程序或进程,然后删除dll文件。

3、如果查出来的占用dll文件的进程是svhost.exe进程,这个进程一般系统有7、8个之巧粗多,则可以根据PID进程号来结束进程,然后删除dll文件。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12561420.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存