|
发表于 2024-5-14 19:30:05
|
显示全部楼层
福建省福州市
|
GetCurrentProcessId | 整数型 | | |
kernel32.dll | |
GetCurrentProcessId | |
|
CreateToolhelp32Snapshot | 整数型 | | |
kernel32.dll | |
CreateToolhelp32Snapshot | |
dwFlags | 整数型 | | | th32ProcessID | 整数型 | | |
|
Module32First_i | 逻辑型 | | |
kernel32.dll | |
Module32First | |
hSnapshot | 整数型 | | | lpme | 整数型 | | |
|
Module32Next_i | 逻辑型 | | |
kernel32.dll | |
Module32Next | |
hSnapshot | 整数型 | | | lpme | 整数型 | | |
|
CloseHandle | 逻辑型 | | |
kernel32.dll | |
CloseHandle | |
hObject | 整数型 | | |
|
GetModuleHandleA | 整数型 | | |
kernel32.dll | |
GetModuleHandleA | |
lpModuleName | 文本型 | | | 调试输出 (取内存地址模块 (GetModuleHandleA (“ntdll.dll”)) )置入代码 ({ 139, 69, 8, 3, 69, 12, 139, 0, 93, 194, 8, 0 })返回 (0 )置入代码 ({ 139, 69, 8, 3, 69, 12, 139, 85, 16, 137, 16, 201, 194, 12, 0 })变量名 | 类 型 | 静态 | 数组 | 备 注 | 快照句柄 | 整数型 | | | LPMODULEENTRY32 | 整数型 | | | 模块jz | 整数型 | | | 模块末址 | 整数型 | | | 找到 | 逻辑型 | | | 模块名 | 文本型 | | |
快照句柄 = CreateToolhelp32Snapshot (8, GetCurrentProcessId ()) 如果真 (快照句柄 ≠ 0 ) LPMODULEENTRY32 = 申请内存 (548, 真)如果真 (LPMODULEENTRY32 ≠ 0 )写内存整数_ASM (LPMODULEENTRY32, 0, 548 )如果真 (Module32First_i (快照句柄, LPMODULEENTRY32 )) 循环判断首 ()模块jz = 指针到整数_ASM (LPMODULEENTRY32, 20 )模块末址 = 模块jz + 指针到整数_ASM (LPMODULEENTRY32, 24 )如果真 (内存地址 ≥ 模块jz 且 内存地址 ≤ 模块末址 )模块名 = 指针到文本 (LPMODULEENTRY32 + 32 ) 跳出循环 ()循环判断尾 (Module32Next_i (快照句柄, LPMODULEENTRY32 )) 释放内存 (LPMODULEENTRY32 )CloseHandle (快照句柄 )返回 (模块名 )
补充内容 (2024-5-14 19:42):
如果真 (内存地址 ≥ 模块jz 且 内存地址 < 模块末址) 这一句要改下,不然会多判断了一个字节 |
|