我希望hook应用程序打开数据库的操作。
应该如何着手呢?
注:已经具备了注射进该应用程序的线程。

解决方案 »

  1.   

    使用的什么接口,直接hook该接口不行吗
      

  2.   

    使用的是DAO 2.6
    我不知道是否可以hook odbc的接口函数来获取一些信息。
      

  3.   

    使用com hook,可以拦截到,具体接口我不记得了,应该是
    Connection的Open???反正就是你关心的接口,将其hook就行
      

  4.   

    老大,你的意思是我可以queryinterface得到open函数的句柄,然后定向到我自己的代码来分析参数吗?
      

  5.   

    数据库的操作记不得了,更别说代码。这里如果那个open是queryinterface取得的,那你就可以hook queryinterface,判断IID,返回你的interface,就全在你控制之中了
      

  6.   

    楼上的HOOK方法是一种,如果要真实HOOK COM方法查查detour的资料,应该是可以直接HOOK的
      

  7.   

    关键是hook部分至于数据库应该没问题
      

  8.   

    "应该是可以直接HOOK的"可以直接hook,我这里只是举个例子而已,
      

  9.   

    我看了资料,DAO似乎并不用queryinterface,因为它有一个虚函数表,可是我并不清楚DAO的内部构造。
    呵呵。
    对了,如果我要hook queryinterface,我是否应该做如下工作:
    1、得到IDispatch实例;
    2、通过QueryInterface取得那个Open的base addr(如果真有这个函数的话);
    3、通过修改虚函数表中的相应地址来将Open定向到我的函数从而实现hook;
    我的问题是,如何实现第一步,以及如何知道DAO的虚函数表结构呢?