dll 在进程中怎么区分的
平时一直没想过这个问题,今天在测试输入法注入的时候才发现windows下dll在进程中是以名字区分的,即使是完全一模一样的DLL。
具体详情,容我慢禀 :
需求是这样的,只能含有一个a.DLL,这个a.DLL既是空壳输入法a.ime,又是注入器,还是被注入的a.DLL。
1,输入法
一个DLL只要实现微软定义的一些输入法接口,即可被注册为一个输入法,然后通过ImmInstallIME函数即可被安装到系统中。(注:需要改名为a.ime放置到system32目录下)
2,注入器
a.ime 可以在用户按键或者收到WM_INPUTLANGCHANGEREQUEST消息时自动被系统加载到目标进程,此时a.ime可以加载自身(a.dll),这里不知道是不是因为必须有输入框,系统才会加载输入法a.ime,所以这里再加个加载自身(a.dll)。
3,被注入DLL
这部分完成主要功能。
我在实验中发现a.ime与a.dll的共享段不一致,由此猜想两者对系统来说应该是完全不同的DLL,而因为他们的二进制完全相同,就是名字不同,因此猜想dll在进程中靠名字区分。
dll 在进程中怎么区分的的更多相关文章
- 将dll文件注入到其他进程中的一种新方法
http://www.45it.com/windowszh/201212/33946.htm http://www.hx95.cn/Article/OS/201212/65095.html 我们知道将 ...
- 【旧文章搬运】再谈隐藏进程中的DLL模块
原文发表于百度空间,2009-09-17========================================================================== 相当老的话 ...
- 隐藏进程中的模块绕过IceSword的检测
标 题: [原创] 隐藏进程中的模块绕过IceSword的检测 作 者: xPLK 时 间: 2008-06-19,17:59:11 链 接: http://bbs.pediy.com/showthr ...
- INNO setup安装卸载钱判断进程中是否在运行总结
1.安装前判断进程中是否有程序在运行. [files] ; 安装前判断进程,dll文件放在inno的安装目录中Source: compiler:psvince.dll; Flags: dontcopy ...
- DLL入门浅析(5)——使用DLL在进程间共享数据
转载自:http://www.cppblog.com/suiaiguo/archive/2009/07/21/90734.html 在Win16环境中,DLL的全局数据对每个载入它的进程来说都是相同的 ...
- VC中遍历目标进程中的模块
VC中遍历目标进程中的模块 MFC代码win32 也可以用 在下面代码进行修改转换就可以了CString strModule; 可以换成 char* 但是MODULEENTRY32结构中的szModu ...
- 使用DLL在进程间共享数据
0x01 DLL在进程间共享数据理论 1.可以在Dll中使用#pragma data_seg建立共享类型的数据段将需要共享的数据分离出来,放置在一个独立的数据段里,并把该段的属性设置为共享,从而实现不 ...
- 【Linux 线程】同一个进程中的线程共享哪些资源
进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线 ...
- 【VC版】如何获取其他进程中ListView控件中的内容
如果需要C#版的,可以看下我之前写的:C#如何获取其他程序ListView控件中的内容 获取其他进程的数据需要使用到以下几个函数: VirtualAllocEx() VirtualFreeEx() W ...
随机推荐
- Activemq消息确认机制 --转载
转自:http://blog.csdn.net/czp11210/article/details/47022639 ActiveMQ消息传送机制以及ACK机制详解 AcitveMQ是作为一种消息存 ...
- Win7如何查看自己得Win7版本号
如何查看Windows 7详细系统版本号? --Windows 7系统知识100问之七十一 责任编辑:姜惠田作者:IT168 老姜 2009-08-05 前言:微软新一代操作系统Windows 7 ...
- 初识FASTBuild 一个大幅提升C/C++项目编译速度的分布式编译工具
FASTBuild 是一款高性能.开源的构建系统,支持高度可扩展的编译,缓存和网络分发. 以上是FASTBuild官网对其产品的一句话介绍. FASTBuild 的开源地址:https://githu ...
- dubbo笔记
使用Maven打包依赖项,启动时从本地jar中读取dubbo.xsd 最近项目用到dubbo,打包启动时报错 Failed to read schema document from http://co ...
- 基于Spring+Spring MVC+Mybatis的B2C购物网站
代码地址如下:http://www.demodashi.com/demo/12935.html 准备工作 当前项目运行的系统环境是MacOS,已经测试可以正常运行,并且之前开发的时候也在Windows ...
- 6、udev机制
udev 机制,主要实现的是当设备连接系统的时候,在 /dev 目录下,自动创建设备节点. 1.1.工作方式 当设备连接或者移除的时候,内核会发出热拔插事件(hotplug eve ...
- xml文件的增删改读
最近学习了利用XmlDocument对象对xml进行增删改读操作,就写了一个小的例子记录下来,加深印象,以后忘了也可以找出来看看. xml文件: <?xml version="1.0& ...
- udpsocket 通信C#例子
服务端代码: using System; using System.Collections.Generic; using System.Linq; using System.Net; using Sy ...
- HTML里面的文本标签
以下就是重要的标签: <html></html> 创建一个HTML文档,是网页源码的開始符和结束符,每一个网页的源码必然是以这两个标签開始和结束. <head>&l ...
- 版本控制器-VSS和SVN区别
SVN 默认的工作方式和VSS不同, VSS是[锁定-修改-解锁],VSS是一个人在改的时候必须以独占的方式签出文件,导致其他人不能够修改.用VSS经常要问同事:"改完没,签入一下" ...