易语言,写的32位DLL能注入64位进程吗?位的进程或同为64位的进程可以假定彼此进程内的LoadLibrary函数的地址是相同的。
并且CreateRemoteThread的线程过程函数和LoadLibrary的参数个数相同,且参数都是指针,因此通常都是直接将LoadLibrary作为CreateRemoteThread的过程函数。然后使用VirtualAllocEx在目标进程中分配内存,使用WriteProcessMemory往这块内存中写入DLL文件路径,将这块内存的地址作为线程过程函数(LoadLibrary)的参数。在64位的Windows操作系统上32位进程中的LoadLibrary函数地址与64位进程的函数地址不同,因此如果想对64位进程注入DLL,简单的做法就是使用64位进程来执行注入工作。但是如果能让32位进程注入DLL到64位进程显然更好。
创新互联公司服务项目包括建德网站建设、
建德网站制作、建德网页制作以及建德网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,
建德网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到建德省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!为什么好多软件都区分32位和64位,到底有什么区别?
在回答这个问题前,有必要对中央处理器CPU的相关知识普及一下,很多人嘴上常讲16位,32位,64位速度如何如何,但概念上很模糊。在此厘清一下。
1,常说的计算机是多少位的,到底指的什么?
一般讲计算机是8/16/32/64位,是指的数据位,而不是地址位。大多数人理解为地址位,如32位,马上就会说寻址空间为4GB。这是不严肃的。照此理论,16位机只有2^16=64K寻址空间吗?事实上,即使最早的16位机,也有20根地址线,寻址1MB。
2,处理器CPU与数据位有什么关系?
一般处理器多少位是指通用寄存器的长度,与数据线位数相同。
再次强调,地址线则不需要与之相等。
好比intel64位处理器则是40位地址总线,大支持1TB的内存寻址。
32位宏汇编,32位CPU有4个32位的通用寄存器EAX、EBX、ECX和EDX。所以,32和64表示CPU一次性可以读/写的大位数,在主频率等外部条件一样的情况下,理论上64位的执行速度是32位的两倍。
3,寻址能力决定可支持的大内存。32位的CPU只能寻址大4GB的内存,这是因为其地址线也正好是32位。有的厂家做成40位地址线,可支持1TB内存。
4,操作系统向下兼容。即64的CPU可安装32位的操作系统win10for32。当然,对CPU来说,是一种浪费,有一半的性能未发挥出来。
5,在win10for64系统上开发的app,都是64位的吗?非也。它还与集成开发及编绎环境IDE有直接关系。现在大部分app都是32位的,64位app很少。原因是软件开发滞后。
网站标题:易语言hook自身保护易语言,写的32位DLL能注入64位进程吗?-创新互联
文章URL:
http://cdxtjz.cn/article/ceeggi.html