给一个应用程序插入dll的三种方式 .
2011-09-08 18:00
274 查看
1.使用注册表 这种方式依赖着User32.dll
当应用程序加载User32.dll,User32.dll会接收到一个DLL_PROCESS_ATTACH通知,当这个通知被处理时,User32.dll便检索注册表中保存的这个关键字的值,并且为字符串中指定的每个dll调用LoadLibrary函数。
这种方法优点是比较简单,缺点是几乎每个进程都会加载User32.dll,所以几乎每一个进程都会加载这些dll,这将影响进程的特性和健壮性。
2.使用钩子
创建一个系统范围WH_GETMESSAGE钩子
3.使用远程线程
其原理是利用CreateRemoteThread给另一个进程创建一个线程然后在CreateRemoteThread中设置回调函数为LoadLibrary,这个时候远程进程就会自动的回调LoadLibrary .
当应用程序加载User32.dll,User32.dll会接收到一个DLL_PROCESS_ATTACH通知,当这个通知被处理时,User32.dll便检索注册表中保存的这个关键字的值,并且为字符串中指定的每个dll调用LoadLibrary函数。
这种方法优点是比较简单,缺点是几乎每个进程都会加载User32.dll,所以几乎每一个进程都会加载这些dll,这将影响进程的特性和健壮性。
2.使用钩子
创建一个系统范围WH_GETMESSAGE钩子
3.使用远程线程
其原理是利用CreateRemoteThread给另一个进程创建一个线程然后在CreateRemoteThread中设置回调函数为LoadLibrary,这个时候远程进程就会自动的回调LoadLibrary .
相关文章推荐
- 给一个应用程序插入dll的三种方式
- 启动另外的一个应用程序的Activity(三种方式)
- 启动另外的一个应用程序的Activity(三种方式)
- 启动另外的一个应用程序的Activity(三种方式)
- 启动另外的一个应用程序的Activity(三种方式)
- 启动另外的一个应用程序的Activity(三种方式)
- 启动另外的一个应用程序的Activity(三种方式)(转载)
- 启动另外的一个应用程序的Activity(三种方式)
- 启动另外的一个应用程序的Activity(三种方式)
- 一个应用程序启动另外的一个应用程序的Activity的方法(三种方式)
- 启动另外的一个应用程序的Activity(三种方式)
- 启动另外的一个应用程序的Activity(三种方式)
- 启动另外的一个应用程序的Activity(三种方式)
- 启动另外的一个应用程序的Activity(三种方式)
- 启动另外的一个应用程序的Activity(三种方式)
- 启动另外的一个应用程序的Activity(三种方式)
- 启动另外的一个应用程序的Activity(三种方式)
- Oracle批量插入数据的三种方式【推荐】
- 一个简单的小程序演示Unity的三种依赖注入方式
- 一个向别的进程插入dll的代码收藏