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

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

编辑:说三道四文库 发布时间:2017-04-27 05:39
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到,结贴了。
Delphi技巧点滴 Delphi使用经验五则 Delphi使用心得 Delphi拖放编程(1) Delphi拖放编程(2) Delphi系列的Y2K问题 Delphi下编程实现中文输入 Delphi用于读写的三种文件类型 Delphi之三十六计之输入处理篇 DELPHI中DFM文件与文本文件转换 Delphi中用于读写的文件类型 RichEdit的自动格式化-Delphi资料 RichEdit中实现查找功能-Delphi资料 表格上所有元件载入后的事件-Delphi资料 充分利用Windows API扩展Delphi函数 传递焦点的五种方法-Delphi资料 从 实 例 看 Delphi 4 中 的 动 态 得到Memo中当前的行列号-Delphi资料 改变RichEdit的游标位置-Delphi资料 回车代替Tab移动输入焦点-Delphi资料 获取Windows临时路径-Delphi资料 获取当前鼠标位置的类名和句柄-Delphi资料 检测存在打印机-Delphi资料 将BMP文件转换为JPG文件-Delphi资料 类似链接的效果-Delphi资料 利用COM技术实现外壳扩展的属性页-Delphi资料 留意DELPHI的命名规则 判断元件有哪一特定的属性-Delphi资料 全局热键-Delphi资料 让自己的程序防破解-Delphi资料 如何查找一个目录下的某些特定的文件-Delphi资料 求UltraEdit注册玛 谁有钱能的《C++程序设计》的电子书,多谢多谢,100分相送。E-MAIL:jzhwjkzx@sohu.com 这个是什么代码啊???畸形````````````````````` help 关于installshield的问题,请帮忙!! 有谁知道delphi中的BlockRead 函数 在C++Builder 中对应哪个函数吗 还有BCB中如何读取二进制文件? 怎样记录下用户访问网页的时间和IP地址呢? !!!大送分 请教JAVA中读一个文件的时候 怎么锁住它 不让别的程序来写 SQL查询问题 关于Listview的问题 为什么出现AV错误? ?关于〔水晶报表〕,请您指教 高分赠送:求solaris下的整个目录情况. Linux下进程或者线程间使用什么方法通信效率比较高?谢谢! 关于select语句问题 请高手帮忙,给出一个关于modem编成的源码 三层开发后的程序分发问题,请进! 請各位幫忙~~~~~~~~! NT4上的500错误怎么解决呀? 哪位认识它:readme.eml(图表是一个打开的信封,白色) 急!!UserControl_Resize()什么时候触发? 如何取得当前的数据集??急急! 如何从网页上下载图片到本机? 哪位认识它:readme.eml(图表是一个打开的信封,白色) 编译提示打不开rc文件.怎么办啊? bitmap和icon什么的还可以在Resoure里编辑. 有无可能向用户隐藏下载文件的地址? DataRowView的问题 我用delphi一年多了,下面是我做的一个小东东,欢迎大家提意见。 硬盘被关闭的问题 请问,做一个dcom程序,怎样注册server端client端, 丢附件的问题 一个加急问题!!!怎样取得这个数组的值??? 如何在TreeView的NodeClick事件里得知当前node的上一级node的text? 我用MFC做了一个报表程序,开始时吧菜单中的“打印预览”删除了,请问我怎样再加入打印预览菜单项而且可以实现原来的功能? 让我们做一对幸福的老鼠[zz] ******请问sybase sql anywhere 7是否就是adaptive server anywhere 7(asa) linux能使用ADSL吗??? 大家来讨论一下多播和组播吧! 请问在深圳要到哪里什么时候报考高级程序员啊? 一个加急问题!!!怎样取得这个数组的值???? 時間問題比較 怎么给wstring赋值? PB与sql server 连接的问题 大虾们,我的这个程序错在哪?就是不出现像要的结果bezier曲线??在线等候!!!! 请教各位大侠,关于SQL与应用程序进行封装的问题 二个简单Access问题 关于更新表中的记录用sql.add该怎末写? 如何修复已经损坏的excel文件?急 请问谁有操作WAB文件的资料,可以给我一份吗? pb 6.5 分布式问题 拉有免费软件的上传空间?????? 母藏羚羊为什么迁徒?急用,请说明原因和理由!急用,请说明原因和理由! 深秋,为避免树上的桔子再也见其文强将是被冻伤,果农通常在傍晚给桔子树喷水.虽 可不可以说基因突变和基因重组产生生物进化的原材料[注意加了个基因] 关于悲伤.凄凉.但觉得很优美的一些句子.比如:斜阳已成余晖,阁上人去,鸟去,空留一片寂寥. 为什么数学种群基因频率的改变导致生物进化,出现生殖隔离才出现新的物种,还有为什么说是先有进化后才有物种? 突变和基因重组为所有生物提供生物进化的原材料这句话对吗 红楼梦中悲伤凄凉的语句最好是成段的 《藏羚羊的跪拜》中作者两次强调藏羚羊的两行长泪,其作用是什么? 关于群落结构的叙述中,正确的是A 草原上的群落在垂直方向上没有分层现象B 森林群落在水平方向上生物种类往往相同C 动物在群落中的垂直分布依赖于植物D 农田中的群落具有水平结构,没有 唯美、凄凉、伤感、的句子.无关爱情、希望句子优美,简短也好、悲伤点、谢谢、高分哦 藏羚羊的跪拜中,藏羚羊两次流泪的作用是什么?结构上:内容上:沪教版语文书预初年级第一学期的17课 下列关于群落垂直结构的叙述,不正确的是A.分层现象是植物群落与环境条件相互联系的一种形式B.决定这种现象的环境因素除光照外,还有温度和湿度等C.种植玉米时,因植物群落分层现象 母山羊有角吗 求一些最伤感、无奈、凄凉的句子.段落最好的、 藏羚羊绒有什么用途,为什么那么贵重? 母绵羊有角吗? 最凄凉、悲伤的句子 文中两次描写藏羚羊的眼泪,从文章的内容和结构上分析,这样写的作用是什么kuaidian,xiexie, 雌瞪羚有角吗 一块体积为5立方分米的木块静止在海面上,它有五分之一的体积露出海面.问:(海水的密度为1.04×10三次千克/立方米,g取10牛/千克)(1)木块受到的浮力为多大?(2)木块的密度是多少?速求. 二战后,日本经济发展状况如何?日本发展的历程给我们带来什么启示? 急需1篇关于西南大旱灾的作文300字 用“星辰”怎么造句? 日本的地理位置,对日本的经济,文化,和社会有什么影响?日本的地理位置对日本的经济,文化,和社会有什么影响? 西南旱灾募捐仪式的作文(400)字 生物进化和基因频率与生殖隔离与形成新物种有什么关系 12v电源串四个红led怎么灯会烧掉啊?急要串几个才可以? 云南旱灾作文300字sdasda 生物进化基因频率一定改变吗?基因频率改变生物一定进化吗 4个氧原子可以构成几个氧分子? 要一些伤感的句子要狠狠地伤感,还有冷的句子,非常非常非常冷哦! 星星从什么到什么的造句 生物进化实质是种群基因频率的改变,其中影响中群基因频率的因素有很多,如自然选择,基因重组,遗传漂变,生生物进化实质是种群基因频率的改变,其中影响中群基因频率的因素有很多,如自然 求一些伤感点的短句子例如 千般万般熙攘过后 汝之素年 谁予锦时 永远有多远之类的 有有点伤感的 日本历史简介越详细越好,给我地址也行, 一个PCB上面并联6个LED灯,提供6V电压点灯,什么情况下LED灯会烧掉RT,LED灯市正常工作 还是 怎么的?老有灯布亮的啊 . 一些伤感的句子关于爱情的,不要太长,就象是分手以后那种感触., 怎么学日本国概况 一个氧分子由几个氧原子构成?一个氢分子由几个氢原子构成?生成一个水分子至少需要电解几个水分子?` 求一些伤感的句子,一定要足够伤感的! 1(历届).最近,意大利科学家使用普通氧分子和带正电荷的氧离子制造出了由4个氧原子构成的氧分子,并用质谱仪探测到了它存在的证据.若该氧分子具有空间对称结构,下列关于该氧分子的 超高音速飞机的速度真的快得过运载火箭吗?回答最加悬赏. 现有浓度为10%的烧碱溶液20kg,再加入多少浓度为30%的烧碱溶液,就可以得到浓度为22%的溶液? 深秋,为避免树上的橘子在夜间气温骤降时被冻伤,果农傍晚给桔子树喷水,虽然结了冰,但桔子没冻坏.冰是怎样保温的?说出其中的道理(至少说出两点) 在一架朝音速飞行的飞机里,驾驶员能听到飞机前面发动机的声音吗?现在的技术超音速十倍的飞机有美国研制成功---X-43A型超高速飞机. 向体积为0.5L的Alcl3溶液中逐滴加入某浓度的NaOH溶液,得到的沉淀随NaOH溶液体积的变化如右图所示.下列结V(NaOH)/L=3时,n[Al(OH)3]/mol=1,求正确的A反应过程中沉淀最多时的质量为7.8gB Alcl3溶液的浓 深秋,为避免树上的橘子在夜间气温骤降时被冻伤,果农傍晚给桔子树喷水,虽然结了冰,但桔子没冻坏?为什 请问火箭发动机和飞机发动机一样么?飞机发动机我见过,火箭没见过,那么火箭发动机是什么样子的阿? 向含有下列离子的溶液中分别加入烧碱固体(溶液体积变化可忽略),能引起离子浓度减小的是A HCO3 - B Cl- C OH- D CU2+到底选什么我很纠结啊 意大利科学家最近合成一种新型氧分子,它由4个氧原子构成,专家认为它液化后的能量和密度比普通氧分子高得多,关于该分子叙述正确的是 A.它的相对分子质量是64g B.每个分子中含有两个氧分 火箭快音速快?音速是多少 天上的一颗颗星星犹如 一样闪亮.造句加油吧 为避免树上的橘子在夜间气温骤降时被冻伤,果农经常在傍晚给橘子喷水.虽然水在夜晚结了冰,橘子却没冻伤?我自己写的答案是:结冰后,冰要融化吸热,让橘子内的温度与橘子表面温度温差不 飞机、火箭等在空气中移动的速度与音速的比叫什么? 一道小学的题,用闪耀造句.“天上的星星闪耀着光芒”为什么不对?哪里有错误? 天上的星星多得像();亮得像() “突变和基因重组产生生物进化的原材料”,下列哪种变异现象不属于此类突变的范畴?A黄色 ×黄色→黄色,绿色B红眼果蝇中出现了白眼果蝇C猫叫综合症D无籽西瓜答案是A,我知道A是基因重组, 仿照样造句 天上的星星很多,一闪一闪的 橘农们从天气预报中得知,晚上将有一场霜冻来临,于是他们傍晚就开始给橘子树喷水.随着温度的下降,水结成了冰,而橘子却没有被冻坏 请简要说明这是为什么 现代生物进化理论认为,突变和基因重组能产生生物进化的原材料,下列变异现象不属于A、人的猫叫综合征B、把纯合的高茎豌豆培养成四倍体C、人的色盲D、高茎豌豆的自交后代出现矮茎可我
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘