|
沙发
发表于 2010-1-7 17:47:43
|
只看该作者
内蒙古自治区呼和浩特市
这个是以前版本的QQ查找登陆号码的源码,你自己研究吧
.程序集 窗口程序集1
.程序集变量 关键字, 字节集, , , \MsgEx.db
.程序集变量 路径分隔符, 字节集, , , \
.程序集变量 QQ进程名, 文本型, , , QQ.EXE
.程序集变量 耗时, 整数型
.子程序 _开始搜索_被单击
.局部变量 进程句柄, 整数型
.局部变量 进程快照, 整数型
.局部变量 进程信息, PROCESSENTRY32
耗时 = 取启动时间 ()
QQ进程名 = “QQ.EXE”
路径分隔符 = 到字节集 (“\”)
关键字 = 到字节集 (“\MsgEx.db”)
进程快照 = CreateToolhelp32Snapshot (#TH32CS_SNAPALL, 0)
.如果真 (进程快照 = 0)
信息框 (“创建进程快照列表失败 .”, #信息图标, “提示”)
返回 ()
.如果真结束
进程信息.dwSize = 296 ' = len (uProcess)
进程句柄 = Process32First (进程快照, 进程信息)
列表框1.清空 ()
.判断循环首 (进程句柄 ≠ 0)
.如果真 (寻找文本 (到文本 (进程信息.szExeFile), QQ进程名, , 真) ≠ -1)
列表框1.加入项目 (“ID: ” + 到文本 (进程信息.th32ProcessID) + “ QQ号码: ” + 查找QQ号码 (进程信息.th32ProcessID), )
.如果真结束
进程句柄 = Process32Next (进程快照, 进程信息)
.判断循环尾 ()
CloseHandle (进程快照)
耗时 = 取启动时间 () - 耗时
标签1.标题 = “耗时: ” + 到文本 (耗时) + “ 毫秒”
.子程序 查找QQ号码, 文本型
.参数 进程ID, 整数型
.局部变量 操作句柄, 整数型
.局部变量 内存地址, 整数型
.局部变量 读取结果, 整数型
.局部变量 内存块长度, 整数型
.局部变量 开始地址, 整数型
.局部变量 结束地址, 整数型
.局部变量 数据缓冲区, 字节集
.局部变量 QQ号码, 文本型
.局部变量 内存块信息, MEMORY_BASIC_INFORMATION
.局部变量 地址偏移, 整数型
.局部变量 地址值, 字节型
操作句柄 = OpenProcess (#PROCESS_VM_READ + #PROCESS_QUERY_INFORMATION, 0, 进程ID)
.如果真 (操作句柄 = 0)
信息框 (“不能打开进程 .”, #信息图标, “提示”)
返回 (“”)
.如果真结束
内存块长度 = 28
.判断循环首 (真)
.如果真 (VirtualQueryEx (操作句柄, 内存地址, 内存块信息, 内存块长度) = 0)
CloseHandle (操作句柄)
返回 (“”)
.如果真结束
.如果真 (内存块信息.Type = #MEM_PRIVATE 且 内存块信息.Protect = #PAGE_READWRITE)
数据缓冲区 = 取空白字节集 (内存块信息.RegionSize)
读取结果 = ReadProcessMemory (操作句柄, 内存地址, 数据缓冲区, 内存块信息.RegionSize, 0)
.如果 (读取结果 ≠ 0)
结束地址 = 寻找字节集 (数据缓冲区, 关键字, )
.判断循环首 (结束地址 ≠ -1)
开始地址 = 倒找字节集 (数据缓冲区, 路径分隔符, 结束地址 - 1)
.如果真 (开始地址 ≠ -1 且 结束地址 - 开始地址 < 16 且 结束地址 - 开始地址 > 4)
.变量循环首 (开始地址 + 1, 结束地址 - 1, 1, 地址偏移) ' 判断是否为数字格式
地址值 = 取字节集数据 (取字节集中间 (数据缓冲区, 地址偏移, 1), #字节型)
.如果真 (地址值 < 48 或 地址值 > 57)
跳出循环 ()
.如果真结束
.变量循环尾 ()
.如果真 (地址偏移 = 结束地址)
QQ号码 = 取字节集数据 (取字节集中间 (数据缓冲区, 开始地址 + 1, 结束地址 - 开始地址 - 1), #文本型)
CloseHandle (操作句柄)
返回 (QQ号码)
.如果真结束
.如果真结束
结束地址 = 寻找字节集 (数据缓冲区, 关键字, 结束地址 + 1)
.判断循环尾 ()
.否则
' 输出调试文本 (“不能读取内存块: ” + 到文本 (内存地址))
.如果结束
.如果真结束
内存地址 = 内存地址 + 内存块信息.RegionSize
.判断循环尾 ()
CloseHandle (操作句柄)
返回 (“”) |
|