【发布时间】:2012-08-29 12:59:05
【问题描述】:
给定一个函数地址,如何确定其签名?
DWORD funcAddr = 0x63001023; // 任意地址 char[MAX] 签名 = ? // 可以设计什么算法?原因如下:
有一个exe说Calc.exe,一旦进程在PC“A”上启动 我的 exe 拦截进程的创建并将信号发送到 pc“B” 相同的 calc.exe 开始的地方。 然后用户每次点击、移动、 假设加法的内部过程从 pc“A”传递到 pc“B”,其中 它正在虚拟化。所以操作函数参数的所有资源 出现在电脑“B”上,我只需要一个完美的签名...... 因此,即使是从根本上挂钩未知 dll 的危险活动也变得“有点”安全......请不要推荐任何第三方库。
【问题讨论】:
-
C 和 C++ 都不支持反射。您可以从调试信息中挖掘此信息,需要 .pdb 和 DbgHelp api。
-
@Hans:如何使用DbgHelp api?请您存一个示例代码....
-
@Hans:不幸的是,没有调试信息或.pdb
-
@rohank 想搞点什么? :)
-
您必须联系编写软件的人,以便他们告诉您函数签名是什么。信息不会记录在任何地方。
标签: c++ c windows visual-c++