版本更新: |
没有任何实质性内容更新,仅内部架构调整,更易于派生模块使用; 首发于精易的 易语言全功能 SQLite3 数据库接口模块必须更新到本次版本后方可正常使用!下载:https://125.confly.eu.org/forum.php?mod=viewthread&tid=14361253 |
模块原理: |
模块功能: |
模块部分命令简述: |
以下只是适用于 64 位的部分函数,模块中以相同命令形式实现的 32 位命令,这里就不列举了; |
辅Zhu函数 | |
fn_WOW64Enabled | 如果你在代码中需要使用 64 位汇编或者操作 64 位进程,则初始化时应确保本函数返回真。实际只要是 64 位操作系统,均应返回 真 |
fn_ProcessIsX64 | 检测指定进程是否为 64 位进程 |
fn_CalcModOrFuncHash | 使用过动态调用DLL的都清楚取模块基址和函数指针,微软默认使用字符串对比,本模块可使用哈希对比效率和易用上相对提升,本函数用于计算模块或函数哈希 |
易内部命令 | |
X64Call | 调用 64 位函数通用版本 |
X64CallArr | 调用 64 位函数通用版本,数组方式传参,支持无限个数参数;【v1.2新增】 |
X64MemCopy | 同类还有 X64MemCmp 函数;从 64 地址复制数据或 64 位地址与 32 位地址数据对比,但仅限进程内部 |
X64GetLong64 | 获取 64 位地址数值,同类函数还有:X64GetLong32、X64GetWord、X64GetByte |
X64GetTEB | 取当前易程序 64 位 TEB,通过 TEB 再取 PEB,则进程和线程信息以及模块等一览无余了 |
GetNtdll64 | ntdll.dll 在 64 位环境下的内存基址 |
GetModuleHandleEx64 | 通过模块哈希值获取其 64 位地址空间的内存基址(易进程而不是外部进程哦);同类还有 GetModuleHandle64 |
GetProcAddressEx64 | 通过函数哈希值或函数索引序号获取其 64 位调用地址;同类还有 GetProcAddress64 |
NtQuerySystemInformation64 | cha询系统信息,可获取很多类别信息。这个 API 微软已不推荐使用并给出部分替代 API,但其个别功能十分好用且没用可替代品。cha询系统进程也是最全面的 |
OpenProcess64 | 打开进程句柄,关闭进程句柄时使用 CloseHandle64;【v1.1新增】 |
HeapAlloc64 | 堆管理函数,同类还有 GetDefaultHeap64/HeapReAlloc64/HeapFree64/HeapSize64;【v1.1新增】 |
malloc64 | 简化版默认堆管理函数,同类还有 realloc64/free64 |
RtlUnicodeToAnsi64 | 内核实现的 Unicode、Ansi 结构(不是数据指针)管理函数,同类还有:RtlInitAnsiString64/RtlFreeAnsiString64、RtlInitUnicodeString64/RtlFreeUnicodeString64、RtlAnsiToUnicode64;【v1.1新增】 |
LoadLibraryEx64 | 可加载任意 64 位 DLL 到当前进程,获取基址及函数地址后进行调用即可;其释放函数为:FreeLibrary64 另,本函数 32 位版本 LoadLibraryEx86/FreeLibrary86 还支持加载 32 位的内存 DLL;【v1.1新增】 |
外部进程命令 | |
NtQueryProcessPEB64 | 获取外部 64 位进程PEB |
VirtualAllocEx64 | 在外部 64 位进程分配内存,释放函数为 VirtualFreeEx64 |
VirtualQueryEx64 | cha询外部 64 位进程指定内存区域的状态,一个地址是否能写入最好先测试一下,禁止写的话要更改内存属性才能开始写入 |
VirtualProtectEx64 | 更改外部 64 位进程指定内存区域的保护属性 |
ReadProcessMemory64 | 读取外部 64 位进程指定区域的内存数据 |
WriteProcessMemory64 | 向外部 64 位进程指定内存区域写入数据 |
NtQueryInformationProcess64 | cha询外部 64 位进程信息 |
GetThreadContext64 | 获取线程上下文,多用于 SEH,仅供高级用户使用;相应设置函数为 SetThreadContext64 |
编写 64 位汇编(供汇编爱好者使用): |
模块公开了几个 汇编代码 常量: #X64_Start - 进入 x64 环境 #X64_End - 退出 x64 环境 |
子程序名 | 返回值类型 | 公开 | 备 注 | ||
编写x64汇编框架 | 返回值不限制,同 x86 相同 |
其他: |
由于本模块并非提供给初级用户使用,因此没有写太详尽的 demo,只提供了一份编写测试时用于测试的 test,参考其代码可获得模块使用方法; |
开源协yi: |
本模块源代码核心来源于 rewolf-wow64ext,为尊重其劳动成果,沿用其 LGPL 3.0 开源许可证; 你可以将本模块源代码随意用于免费或商业软件;你也可以自由修改源代码,但公开发布应予以保留原作者署名; |
关于赞助: |
npzs 2019-02-22 于大连 |
更新日志: |
v1.21 - 2019.04.14 |
|
v1.2 - 2019.03.12 |
v1.1.1 - 2019.03.03 |
|
v1.1 - 2019.03.01 |
|
QQ截图20200301124955.png (27.29 KB, 下载次数: 0)
恶魔の佐翼 发表于 2020-3-1 12:51
已测试,WIN7,远程读取无效。。。。。
zspmhzx 发表于 2020-3-4 14:06
A应该要长整数把
欢迎光临 精易论坛 (https://125.confly.eu.org/) | Powered by Discuz! X3.4 |