:14.558KB : :1 :2019-11-25 15:58:59
.子程序 GetModuleHandleW64, 长整数型, 公开, 仅在64位系统中可用,会SetLastError
.参数 ModuleName, 字节集, , Unicode,需要包括扩展名,不区分大小写
x86应用程序可以直接调用x64下ntdll.dll中的Native API。
①在x64下的进程,不管是32位或者是64位,实际上都映射了两个地址空间,一个是32位,一个是64位。相当于一个进程的两种工作模式,而且这两种工作模式是可以进行切换的;
②Wow64进程中的r12寄存器指向64位的TEB结构(TEB64);
③每个32位进程都会加重ntdll32.dll和ntdll.dll模块。其中ntdll.dll是64位模块,我们可以将进程的32位模式改为64位模式,然后再去操作64位进程。
关于TEB的获得是通过r12-->TEB64--->PEB--->LDR匹配到ntdll.dll来找到ntdll.dll的加载基地址。
③解析PE结构找到目标函数在"x64模式"下的真实地址(GetProcAddr())。
④通过函数地址调用"x64模式"下的目标函数。这里要注意x64函数调用约定的改变,前4个参数通过rcx,rdx,r8,r9来传递,之后通过堆栈传递。X64Call()已经封装好了。
02-18易语言的自用CAD插件开源
02-17飓风填表模块例子,改自队长模块
02-17会员管理插件源码
02-17环形进度条,大恩环形模块
02-16易语言打造的最简单易用的http服务框架
02-1613位EAN码批量生成,无任何模块
02-16全网汇编代码整理模块
10-03Excel中加载数据分析模块
11-01excel2016天机使用数据分析模块
09-07C++的string的实现源码分析