说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

100分请教(嫌不够,可以在加)dll导出的类中的函数怎样hook到?

编辑:说三道四文库 发布时间:2017-02-27 12:52
HTML文档下载 WORD文档下载 PDF文档下载
比如说一个名为A的dll中导出了下面的类:
namespace B
{
_cdeclspec(dllexport) Class C
{
public:
function D();
function E();
}
}
如果我现在想HOOK第三方程序对函数D或者函数E的调用,该怎么写?
在detour库中使用DETOUR_TRAMPOLINE宏。
DETOUR_TRAMPOLINE有两个输入参数:trampoline的原型和目标函数的名字。
其中目标函数的名字该怎么写,我直接写D,好像不行,老说我函数D没有声明。
Detours不是有例子的吗? 看看Sample 中的 Member 例子!


////////////////////////////////////////////////////////////////
// Target Class. 也就是你DLL中的类:
class CMember
{
  public:
    void Target(void);
};

void CMember::Target(void)
{
    printf("  CMember::Target!   (this:%p)\n", this);
}

////////////////////////////////////////////////////////////////
// Detour Class. 也就是你自己编写来替代前面类的类:

class CDetour /* add ": public CMember" to enable access to member variables... */
{
  public:
    void Mine_Target(void);
    static void (CDetour::* Real_Target)(void);

    // Class shouldn't have any member variables or virtual functions.
};

void CDetour::Mine_Target(void)
{
    printf("  CDetour::Mine_Target! (this:%p)\n", this);
    (this->*Real_Target)();
}

void (CDetour::* CDetour::Real_Target)(void) = (void (CDetour::*)(void))&CMember::Target;

// 然后在函数中这样调用:
    DetourAttach(&(PVOID&)CDetour::Real_Target, *(PBYTE*)&pfMine);
你得把DLL中类的定义(或头文件)得到。
没用过detour库。不过直接写D肯定不行,试试写B::C::D。
谢谢,明天去试试。
如果导出的类位于dll中的一个命名空间namespace,该怎样hook,是否和上述方法一样?
访问名空间中的函数是要用这样的写法的,也可以在程序中using 名空间。
例子中的类不是dll中导出的,
而我需要hook的是dll中导出的类,
可以用例子中的方法吗?
没明白你的意思。你可以先试试调用要Hook的函数,只要调用没问题应该就可以Hook,Hook时函数的写法与调用时相同。
就是说被hook的函数D位于类C中,而类C是由动态链接库A导出的(可以看楼主的帖子)
你的项目可以隐式链接A.dll;或者查出要Hook的函数导出的名称,用GetProcAddress来获取地址。
引用 6 楼 wanghuok 的回复:
例子中的类不是dll中导出的, 
而我需要hook的是dll中导出的类, 
可以用例子中的方法吗?


有什么区别吗?按照通常的做法导入DLL A 必要的库就行了。
#include ".h"
#pragma comment(lib, ".lib")
可以,采用基本的修改jmp指令方式就可以
没hook过类的函数,mark
谢谢vcPlayer朋友的提示和各位朋友的支持,我看了下detour库里面的member例子,已经照着例子中的方法解决了hook类中函数的问题,而且发现即使多态,重载的成员函数也可以hook到,结贴了。
【开源推荐】Ejoy2D:“风魂”游戏引擎作者云风的又一力作 Web应用在IE11里的实际使用性能 回顾2013年十个值得关注的WordPress设计主题 为什么Google眼镜注定会失败? 2013移动开发工具盘点:最火原型设计工具 2013年12月份浏览器份额:IE 11暴涨3倍 【PPT集萃】十位一线专家分享Spark现状与未来(二) 2014年,怎么做产品才能获得成功? 年末新游盘点:2014年移动游戏四大趋势 IDC:全球有1850万程序猿 4成爱好者在写代码 PHP开发框架流行度排名:Laravel居首 2013年度最强AngularJS资源合集 研发周报:回顾2013、技术栈的选择、开源成趋势 TIOBE 2014年1月编程语言排行榜:Transact-SQL力挫Objective-C 夺得桂冠 IBM:这五个智能技术的发展,将会改变我们生活 一周消息树: 微软的2013,Surface的2014 Amazon CTO Werner Vogels:云和SaaS正在快速风靡全球 “人类先知”Isaac Asimov 50年前的科技预测大多应验了 2014年10大Web设计趋势 Google野心:App Indexing改写应用搜索格局 Cocos2d-x,老牌引擎的新进化 Kingdom Rush创始人专访:游戏与电影元素混搭 超实用的JavaScript技巧及最佳实践(下) 盖茨和鲍尔默或成挑选微软新CEO的最大阻碍 移动开发进阶:触发式邮件深入分析 King.com传奇再续!Farm Heroes Saga强势登陆iOS、Android 2013综述稿:Clojure这一年及大事件 亚马逊AWS vs.谷歌GCE,彪的是价格? 2014,混合云被广泛采用的一年 传微软拉拢厂商推双启动系统手机 用户可选Windows Phone或Android 为什么游戏领域总是“抄抄抄”! 初级问题之三,关于DataWindow Error 灌水乐园???? 100分答谢高手!-------谁有写代理服务器的经验呢? 帮一下我好么? 救命!!pb6.5是不是不支持oracle的blob类型???? 去掉引导信息??? 为什么我用MFC写的单文档程序在别人的没装VC++的机子上不能运行? 用户登录是密码存放在哪个文件夹里? (简单问题) 请问这个程序为什么抛出这样一个违例??? 问题一个,请教! 增值合订本出的我心不甘 我又来提问了~前天复习是发现一道很怪异的题目~ 用activemovie控件打开一个URL,用哪个函数? 如何去掉ACTIVE MOIVE控件下面显示的几个键和进度条 c源程序。 >>>>高分求解!!!我在一个对话框中插入一个active report run time design,但程序运行时却不显示,在vb中却可以,如何解决这个问题?????? 关于sql server的安装 哪里有下载cc编译器的? 关于导出数据窗口数据的问题,明白人请进! delphi可不可以用于自动控制方面的开发呢 如何使对话框程序执行就让整个屏幕背景变黑色?? 想了解有关程序考试的一些情况? 不同系统就不可以直接电缆直接吗? 怎样使用PQMAGIC对硬盘进行调整分区 memory fault--core dumped的问题 有谁知道怎么解win98的开机密码? 用 procedure 与 trigger 、database link 能完成吗? flowerofwind,rjcludy()请回答 COM中的一个怪问题:我将::CoUninitialize();去掉后程序不出错,添上出现非法操作,是啥问题??? 请问?????? 如何在程序中播放rm格式的文件??? edit怎么用啊? JB6盘中不含 Borland Enterprise Server AppServer5.0,各位快载一个上去吧! 如何改变显示的分辨率? 那里有c#编译器免费下载?谢谢 如何在vc中播放rm格式的文件??? 那位大侠知道怎么创建并使用一个变量,每次只让一个进程访问???给个例子吧,大大大 大 delphi中怎么编写中断,获取外部设备传来的信息?急救!! 数值模拟与计算仿真,高手请帮忙! 请问:dos下图形放大算法或思路?还有.........(高手请进) 求教!!!!SOS!! --请问如何将一个BMP图形文件转成JPG图形文件,高分请教师--- 高分给出,win98的怪问题! 打印统计问题 请教 : html的javascript 中报错:document.Form1.client_name.value不是对象 VC++里面如何从文本文件中一行一行读取文件? 请问,如何用mail函数批量发送邮件.多谢. 各位请教一下,Jsp 的服务resin在win2000下是怎样配置的 各位兄弟: 有谁知道 侯杰 的 <多线程程序设计> 什么时候才能买到??? 哪里有VFP3.0下载? system.ini和win.ini的作用 怎样生成安装包,多谢! 如何在两个不同的应用程序之间拖动文本字符 氟锑酸的ph值是多少 有HFO 次氟酸的存在吗? 二次函数a的大小与开口大小的关系是怎样的?如题 画出函数y=x^+(2绝对值)+3的图像 57. 在很长一个时期,人们一直认为氟的含氧酸不存在.1971年美国科学家通过细冰获得次氟酸(HFO),对次氟酸德研究引起充分重视.试回答下列问题:(1) 次氟酸的电子式为_______(2) HFO中各 二次函数a与开口大小有啥关系? 一支温度计的刻度均匀但不准确,将它放入冰水混合物中,示数为4摄氏度,放在1标准大气压下的沸水中示数为94摄氏度.现放在教室里,示数为25摄氏度,那么教室里的实际温度是多少摄氏度 在二次函数中 b的绝对值和c的绝对值怎么比错了错了 是a b的绝对值 通常情况下,温度达到100℃时,水才会沸腾,这说明水沸腾后,如果停止对他加热,则水不能继续沸腾,这说明 一支温度计的刻度均匀但不准确,将它放在冰水混合物中,示数是4℃,将它放在一标准大气压的沸水中,示数是96℃,如果用温度计去测得室温为18℃,那么该室内的实际温度为多少度? F2和H2O反应是不是氧化还原反应?哪个是氧化剂.哪个是还原剂?怎么看出来? 平面上有A.B.C.D四点,经过其中每两点画直线,最多可画出几条? 氟锑酸怎么装?我一直想,玻璃,石英什么的,忘了聚四氟乙烯了 HFO+H2O=? 在一平面内有四点,过其中的任意两点画直线,如果只能能画出四条直线,则这四点的位置是怎样的?画图, y=x+1的绝对值的函数图象 谁知道HFO的制法,为什么要这样?在说一下HFO中各原素得化合价! 反函数的导数 高数 ln|arctanx|求导 油酸甘油酯氢化方程式.牛人进 描述实验中水在沸腾前和沸腾时的情景水中气泡在沸腾前( ),沸腾时( ).水的声音在沸腾前( ),沸腾时( ).请问:水的声音在沸腾前和沸腾时发出怎样的声音? HFO中F是几价? 油酸甘油酯和氢气加成的化学反应方程式? 氦合氢离子和氟锑酸哪个酸性更强 HFO中各元素的化合价 油酸甘油酯的硬化方程式要准确的!、、 氟锑酸是固体吗 物态变化实验6个,与书上的不同 函数y=x的绝对值+1的图像y=x+1的绝对值的图像与y=x+1的图像的关系 画出函数f(X)=1-x2的绝对值/1+x的图像,并写出这个函数的单调区间 漂白粉生产方程式和漂白原理 硬脂酸甘油酯碱性水解方程式 氟锑磺酸和氟锑酸的区别好像都是HF和SbF5的混合物吧. 两个二次函数的a的绝对值相等,这两个二次函数的图像形状相同吗 硬脂酸甘油酯 碱性水解方程式 画那些自变量外有绝对值的图像,是先画绝对值还是先平移,为什么? 一元二次函数图像 硬脂酸甘油酯在酸、碱环境下水解方程式最好可以手写传图! 含绝对值的函数图像怎么变呢?比如,y=|x|-3 和 y=|x-3|的图像有什么不同呢?该如何变? 二次函数图像的形状相同可以说明什么y=ax^2+bx+c 与y=-x^2-7x+12的形状相同,对称轴为x=1,顶点到x轴的距离为根号3,写出函数解析式 函数y=x的绝对值分之2的图像大致是什么样的.为什么. F2+H2O=HF+OF2该反应用等号还是可逆号? 在二次函数中,为什么|a|越大,抛物线的开口越小? 画出函数图像:y=x²-2,x∈Z,且x的绝对值≤2 在(3)BrF3+(5)H2O=HBrO3+Br2+(9)HF+O2↑的反映中.当有3molBrF3参加反应时,其中被水还原的BrF3的物质的量是?A.1mol.B.4/3mol.C.2mol.D.3mol.为什么答案会是B呢? 二次函数,a的数值越大,抛物线的开口越小,为什么?考虑y=10x^2+3x+1 制取二氧化碳的方程式 为什么f2与naoh有两个反映:F2+4OH-==2F-+O2+2H2O 2F2+2NaOH=OF2+2NaF+H2O 为毛说二次函数中|a|越大,抛物线开口越小,|a|越小,抛物线开口越大. 制取CO2的方程式 在“观察在水的沸腾”的实验中 水的蒸发与气压有关系吗 画出函数图象:y=绝对值x+1加绝对值x+2 请问 “AgF+Cl2+H2O= AgCl+AgClO3+HF+O2” 怎么配平呢快啊 下列说法错误的是 A.水在任何温度下都能蒸发.B.在1标准气压下,将水加热到100℃,水就能沸腾.C.水在沸腾时,要吸收热量,但温度不升高.D.水在低于100℃时也可能沸腾. 已知关于X的函数y=(m+2)x^m的绝对值-1是正比例函数,(1)求m的值;(2)画出函数图象. 在HFO(次氟酸,HOF)中F显-1价,可以看作F的最高价态了,那么HFO和HClO4的酸性哪个更强?能按递变性解释 平面上有ABCD四个点,过其中每两点画直线,可以画几条?画图说明画图说明! 人碰到一点点氟锑酸会怎样?有什么可以来中和救人不? HFO(次氟酸)中的O真是0价么?据化学说上说只有单质为0价.如果O为0价,那么不就放出去了么?他们是怎么结合形成的,F在化合物中(有机或无机)会出现正价么 二次函数a与开口大小关系如题,分正负两种情况讨论,不要说绝对值越小
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn