易语言枚举系统所有ApiHook源码
系统结构:枚举程序内所有ApiHook,枚举ApiHook,计算偏差,取模块完整路径,进程ID取模块,取进程ID,RtlMoveMemory_IMAGE_DOS_HEADER,RtlMoveMemory_IMAGE_NT_HEADERS32,RtlMoveMemory_IMAGE_IMPORT_DESCRIPTOR,RtlMoveMemory_IMAGE_EXPORT_DIRECTORY,RtlMoveMemory_IMAGE_TLS_DIRECTORY32,RtlMoveMemory_IMAGE_DEBUG_DIRECTORY,RtlMoveMemory_IMAGE_SECTION_HEADER,API_GetModuleHandle,CloseHandle,StrCmpNI_1,API_载入动态链接库,API_GetProcAddress,
======程序集1
| |
| |------ _启动子程序
| |
| |------ 枚举程序内所有ApiHook
| |
| |------ 枚举ApiHook
| |
| |------ 计算偏差
| |
| |------ 取模块完整路径
| |
| |------ 进程ID取模块
| |
| |------ 取进程ID
| |
| |
======调用的Dll
| |
| |---[dll]------ RtlMoveMemory_IMAGE_DOS_HEADER
| |
| |---[dll]------ RtlMoveMemory_IMAGE_NT_HEADERS32
| |
| |---[dll]------ RtlMoveMemory_IMAGE_IMPORT_DESCRIPTOR
| |
| |---[dll]------ RtlMoveMemory_IMAGE_EXPORT_DIRECTORY
| |
| |---[dll]------ RtlMoveMemory_IMAGE_TLS_DIRECTORY32
| |
| |---[dll]------ RtlMoveMemory_IMAGE_DEBUG_DIRECTORY
| |
| |---[dll]------ RtlMoveMemory_IMAGE_SECTION_HEADER
| |
| |---[dll]------ API_GetModuleHandle
| |
| |---[dll]------ CloseHandle
| |
| |---[dll]------ _创建快照
| |
| |---[dll]------ _下一个模块
| |
| |---[dll]------ _第一个模块
| |
| |---[dll]------ _取文本长度
| |
| |---[dll]------ StrCmpNI_1
| |
| |---[dll]------ _第一个
| |
| |---[dll]------ _下一个
| |
| |---[dll]------ API_载入动态链接库
| |
| |---[dll]------ API_GetProcAddress
调用的DLL命令:
.DLL命令 RtlMoveMemory_IMAGE_DOS_HEADER, , , "RtlMoveMemory"
.参数 Destination, IMAGE_DOS_HEADER
.参数 Source, 整数型
.参数 Length, 整数型
.DLL命令 RtlMoveMemory_IMAGE_NT_HEADERS32, , , "RtlMoveMemory"
.参数 Destination, IMAGE_NT_HEADERS32
.参数 Source, 整数型
.参数 Length, 整数型
.DLL命令 RtlMoveMemory_IMAGE_IMPORT_DESCRIPTOR, , , "RtlMoveMemory"
.参数 Destination, IMAGE_IMPORT_DESCRIPTOR
.参数 Source, 整数型
.参数 Length, 整数型
.DLL命令 RtlMoveMemory_IMAGE_EXPORT_DIRECTORY, , , "RtlMoveMemory"
.参数 Destination, IMAGE_EXPORT_DIRECTORY
.参数 Source, 整数型
.参数 Length, 整数型
.DLL命令 RtlMoveMemory_IMAGE_TLS_DIRECTORY32, , , "RtlMoveMemory"
.参数 Destination, IMAGE_TLS_DIRECTORY32
.参数 Source, 整数型
.参数 Length, 整数型
.DLL命令 RtlMoveMemory_IMAGE_DEBUG_DIRECTORY, , , "RtlMoveMemory"
.参数 Destination, IMAGE_DEBUG_DIRECTORY
.参数 Source, 整数型
.参数 Length, 整数型
.DLL命令 RtlMoveMemory_IMAGE_SECTION_HEADER, , , "RtlMoveMemory"
.参数 Destination, IMAGE_SECTION_HEADER, 数组
.参数 Source, 整数型
.参数 Length, 整数型
.DLL命令 API_GetModuleHandle, 整数型, "kernel32", "GetModuleHandleA", , 获取一个应用程序或动态链接库的模块句柄 如执行成功成功,则返回模块句柄。零表示失败。会设置GetLastError
.参数 lpModuleName, 文本型, , 指定模块名,这通常是与模块的文件名相同的一个名字。例如,NOTEPAD.EXE程序的模块文件名就叫作NOTEPAD;
.DLL命令 CloseHandle, 逻辑型, , "CloseHandle"
.参数 hObject, 整数型
.DLL命令 _创建快照, 整数型, , "CreateToolhelp32Snapshot"
.参数 falg, 整数型
.参数 id, 整数型
.DLL命令 _下一个模块, 整数型, "kernel32.dll", "Module32Next", , , 下一个模块
.参数 快照句柄, 整数型
.参数 模块信息, 模块信息_
.DLL命令 _第一个模块, 整数型, , "Module32First", , , 第一个模块,查找模块
.参数 快照句柄, 整数型
.参数 模块信息, 模块信息_
.DLL命令 _取文本长度, 整数型, , "lstrlenA", , kernel32.dll取文本内容长度_
.参数 文本, 文本型, , Ptr
.DLL命令 StrCmpNI_1, 整数型, "shell32.dll", "StrCmpNIA", , shell32.dll
.参数 lpStr1, 文本型
.参数 lpStr2, 字节型, 传址 数组
.参数 nChar, 整数型
.DLL命令 _第一个, 整数型, , "Process32First"
.参数 h, 整数型
.参数 p, 进程信息_
.DLL命令 _下一个, 整数型, , "Process32Next"
.参数 h, 整数型
.参数 p, 进程信息_
.DLL命令 API_载入动态链接库, 整数型, "kernel32", "LoadLibraryA", , 载入指定的动态链接库,并将它映射到当前进程使用的地址空间。一旦载入,即可访问库内保存的资源 成功则返回库模块的句柄,零表示失败。会设置GetLastError
.参数 动态链接库名称, 文本型, , 指定要载入的动态链接库的名称。采用与CreateProcess函数的lpCommandLine参数指定的同样的搜索顺序;
.DLL命令 API_GetProcAddress, 整数型, "kernel32", "GetProcAddress", , 返回函数地址
.参数 hModule, 整数型
.参数 lpProcName, 文本型
注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。
使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。