This topic created in 1738 days ago, the information mentioned may be changed or developed.
假设有一个应用程序 x.exe 在运行时会调用 y.dll ;假设 y 是用 C 语言编写的,已经拿到了 y.dll 的头文件 (.h)
现在我想在 y.dll 中的部分函数被调用时,输出函数的调用参数以便观察 (可以输出到临时文件),请问比较简单的方法有哪些?
API 中总共有七八十个函数的样子,需要打印信息函数的有两三个
9 replies • 2021-09-04 06:42:39 +08:00
 |
|
1
ysc3839 Sep 3, 2021
只要改其中少数几个的话,可能用 hook 更简单,但是你得在 x.exe 调用 y.dll 之前就 hook 。
|
 |
|
2
codehz Sep 3, 2021
有头文件的话。。你直接把原 dll 改个名,然后你做个假的 dll 转发每个函数进去就好了。。。
|
 |
|
3
janxin Sep 3, 2021
听上去 AheadLib 之类的工具就能满足你的需求
|
 |
|
4
mingl0280 Sep 3, 2021
函数打桩(你可以自己搜一下)就行了,这个比较简单,原理就是替换掉函数入口地址上的指令,改成 jmp 到你自己的地址处理完了再接着调用原来的函数。
|
 |
|
5
typetraits Sep 3, 2021
2 楼的方法是最快的,自己写个签名相同的 wrapper 函数编译成 dll,在你自己的 dll 里调用 LoadLibrary GetProcAddress 加载 y.dll 的函数就可以了
|
 |
|
7
IsaacYoung Sep 3, 2021
微软有 detours 的库 专门 hook 用的
|
 |
|
8
thedrwu Sep 4, 2021 via Android
如果不想挂函数钩子也不想 wrap 整个 dll,那就再挂个自己的 dll 把原本的函数地主改了或者设个 jmp 再跳回去。
|
 |
|
9
jones2000 Sep 4, 2021
一定要小心。 否则要被请去喝茶。 《刑法》第二百八十五条 [非法侵入计算机信息系统罪;非法获取计算机信息系统数据、非法控制计算机信息系统罪;提供侵入、非法控制计算机信息系统程序、工具罪]
|