易语言文件内存中通讯源码例程
系统结构:子程序1,打开文件,生成空文件,生成重复字节文件,移到文件首,移到文件尾,移动读写位置,取读写位置,关闭文件,取文件长度,写出字节集,是否在文件尾,取错误信息,读入字节集,读入2M字节集,清除文件缓冲区,读入文本,写出文本,写文本行,读入一行,插入字节集,取文件号,取映射对象名,打开文件,初始化_从文件创建,初始化_从内存创建,从文件号创建,初始化_从映射对象名创建,关闭,关闭对象,取首地址,取读写位置,移动读写位置,移到首位置,移到尾位置,读出字节集,读出文本,读出字节,读出短整数,读出整数,读出长整数,读出小数,读出双精度小数,读出逻辑值,读出日期时间型,写入字节集,写入文本,写入小数,写入双精度小数,写入字节,写入短整数,写入整数,写入长整数,写入日期时间,写入逻辑,取错误信息,插入字节集,插入文本,插入小数,插入双精度小数,插入字节,插入短整数,插入整数,插入长整数,插入日期时间,插入逻辑,取文件映射尺寸,寻找字节集,中止寻找字节集,取寻找字节集进度,删除数据,取文件映射对象名,WriteFile,CloseHandle,GetFileSize,GetLastError,FormatMessage,ReadFile,CreateFile,SetFilePointer,LockFile,UnlockFile,FlushFileBuffers,FlushViewOfFile,取文件路径目录_,CreateFileMapping1,CreateFileMapping2,MapViewOfFile,UnmapViewOfFile,GlobalLock,GlobalHandle,OpenFileMapping,GlobalSize,CopyMemory,CopyMemory_s,CopyMemory_x,CopyMemory_sj,CopyMemory_d,CopyMemory_z,CopyMemory_c,CopyMemory_r,MoveMemory,VirtualQuery,进程权限提升_,进程优先级_,进程伪句柄_,打开令牌,恢复权限,获取令牌特权,置进程优先级_,
======程序集1
| |
| |------ _启动子程序
| |
| |------ _临时子程序
| |
| |------ 子程序1
| |
| |
======文件读写
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 打开文件
| |
| |------ 生成空文件
| |
| |------ 生成重复字节文件
| |
| |------ 移到文件首
| |
| |------ 移到文件尾
| |
| |------ 移动读写位置
| |
| |------ 取读写位置
| |
| |------ 关闭文件
| |
| |------ 取文件长度
| |
| |------ 写出字节集
| |
| |------ 是否在文件尾
| |
| |------ 取错误信息
| |
| |------ 读入字节集
| |
| |------ 读入2M字节集
| |
| |------ 清除文件缓冲区
| |
| |------ 读入文本
| |
| |------ 写出文本
| |
| |------ 写文本行
| |
| |------ 读入一行
| |
| |------ 插入字节集
| |
| |------ 取文件号
| |
| |
======文件映射
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 取映射对象名
| |
| |------ 打开文件
| |
| |------ 初始化_从文件创建
| |
| |------ 初始化_从内存创建
| |
| |------ 从文件号创建
| |
| |------ 初始化_从映射对象名创建
| |
| |------ 关闭
| |
| |------ 关闭对象
| |
| |------ 取首地址
| |
| |------ 取读写位置
| |
| |------ 移动读写位置
| |
| |------ 移到首位置
| |
| |------ 移到尾位置
| |
| |------ 读出字节集
| |
| |------ 读出文本
| |
| |------ 读出字节
| |
| |------ 读出短整数
| |
| |------ 读出整数
| |
| |------ 读出长整数
| |
| |------ 读出小数
| |
| |------ 读出双精度小数
| |
| |------ 读出逻辑值
| |
| |------ 读出日期时间型
| |
| |------ 写入字节集
| |
| |------ 写入文本
| |
| |------ 写入小数
| |
| |------ 写入双精度小数
| |
| |------ 写入字节
| |
| |------ 写入短整数
| |
| |------ 写入整数
| |
| |------ 写入长整数
| |
| |------ 写入日期时间
| |
| |------ 写入逻辑
| |
| |------ 取错误信息
| |
| |------ 插入字节集
| |
| |------ 插入文本
| |
| |------ 插入小数
| |
| |------ 插入双精度小数
| |
| |------ 插入字节
| |
| |------ 插入短整数
| |
| |------ 插入整数
| |
| |------ 插入长整数
| |
| |------ 插入日期时间
| |
| |------ 插入逻辑
| |
| |------ 取文件映射尺寸
| |
| |------ 寻找字节集
| |
| |------ 中止寻找字节集
| |
| |------ 取寻找字节集进度
| |
| |------ 删除数据
| |
| |------ 取文件映射对象名
| |
| |
======调用的Dll
| |
| |---[dll]------ WriteFile
| |
| |---[dll]------ CloseHandle
| |
| |---[dll]------ GetFileSize
| |
| |---[dll]------ GetLastError
| |
| |---[dll]------ FormatMessage
| |
| |---[dll]------ ReadFile
| |
| |---[dll]------ CreateFile
| |
| |---[dll]------ SetFilePointer
| |
| |---[dll]------ LockFile
| |
| |---[dll]------ UnlockFile
| |
| |---[dll]------ FlushFileBuffers
| |
| |---[dll]------ FlushViewOfFile
| |
| |---[dll]------ 取文件路径目录_
| |
| |---[dll]------ CreateFileMapping1
| |
| |---[dll]------ CreateFileMapping2
| |
| |---[dll]------ MapViewOfFile
| |
| |---[dll]------ UnmapViewOfFile
| |
| |---[dll]------ GlobalLock
| |
| |---[dll]------ GlobalHandle
| |
| |---[dll]------ OpenFileMapping
| |
| |---[dll]------ GlobalSize
| |
| |---[dll]------ CopyMemory
| |
| |---[dll]------ CopyMemory_s
| |
| |---[dll]------ CopyMemory_x
| |
| |---[dll]------ CopyMemory_sj
| |
| |---[dll]------ CopyMemory_d
| |
| |---[dll]------ CopyMemory_z
| |
| |---[dll]------ CopyMemory_c
| |
| |---[dll]------ CopyMemory_r
| |
| |---[dll]------ MoveMemory
| |
| |---[dll]------ VirtualQuery
======窗口程序集1
| |
| |------ __启动窗口_创建完毕
| |
| |------ _按钮_从内存创建_被单击
| |
| |------ _按钮_读数据_被单击
| |
| |------ _按钮_关闭_被单击
| |
| |------ _按钮_从内存创建1_被单击
| |
| |------ _按钮_写数据_被单击
| |
| |------ _按钮_读数据1_被单击
| |
| |------ _按钮_关闭1_被单击
| |
| |
======窗口程序集2
| |
| |------ __启动窗口1_创建完毕
======窗口程序集1
| |
| |------ __启动窗口_创建完毕
| |
| |------ _按钮_从内存创建_被单击
| |
| |------ _按钮_写数据_被单击
| |
| |------ _按钮_读数据_被单击
| |
| |------ _按钮_关闭_被单击
| |
| |------ _按钮_从内存创建1_被单击
| |
| |------ _按钮_读数据1_被单击
| |
| |------ _按钮_关闭1_被单击
| |
| |
======窗口程序集2
| |
| |------ __启动窗口1_创建完毕
======窗口程序集1
| |
| |------ __启动窗口_创建完毕
| |
| |------ 进程权限提升_
| |
| |------ 进程优先级_
| |
| |------ _按钮_从内存创建_被单击
| |
| |------ _按钮_读数据_被单击
| |
| |------ _按钮_关闭_被单击
| |
| |------ _按钮_写数据1_被单击
| |
| |
======窗口程序集2
| |
| |------ __启动窗口1_创建完毕
| |
| |
======调用的Dll
| |
| |---[dll]------ 进程伪句柄_
| |
| |---[dll]------ 打开令牌
| |
| |---[dll]------ 恢复权限
| |
| |---[dll]------ 获取令牌特权
| |
| |---[dll]------ 置进程优先级_
======窗口程序集1
| |
| |------ __启动窗口_创建完毕
| |
| |------ _按钮_从内存创建_被单击
| |
| |------ _按钮_写数据_被单击
| |
| |------ _按钮_读数据_被单击
| |
| |------ _按钮_关闭_被单击
| |
| |
======窗口程序集2
| |
| |------ __启动窗口1_创建完毕
调用的DLL命令:
.DLL命令 WriteFile, 逻辑型, "kernel32.dll", "WriteFile", , (非零)表示成功,否则返回零。
.参数 文件句柄, 整数型, , hFile,一个文件的句柄
.参数 数据缓冲区, 字节集, 传址, lpBuffer,要写入的一个数据缓冲区
.参数 欲写入字节数量, 整数型, , nNumberOfBytesToWrite,要写入数据的字节数量。如写入零字节,表示什么都不写入,但会更新文件的“上一次修改时间”。针对位于远程系统的命名管道,限制在65535个字节以内
.参数 实际写入字节数量, 整数型, 传址, lpNumberOfBytesWritten,实际写入文件的字节数量
.参数 特殊结构, 整数型, , lpOverlapped,倘若在指定FILE_FLAG_OVERLAPPED的前提下打开文件,这个参数就必须引用一个特殊的结构。那个结构定义了一次异步写操作。否则,该参数应置为空(将声明变为ByVal As Long,并传递零值)
.DLL命令 CloseHandle, 整数型, "kernel32", "CloseHandle"
.参数 对象句柄, 整数型
.DLL命令 GetFileSize, 整数型, "kernel32.dll", "GetFileSize"
.参数 文件号, 整数型, , hFile
.参数 文件尺寸, 整数型, 传址, lpFileSize
.DLL命令 GetLastError, 整数型, "kernel32", "GetLastError"
.DLL命令 FormatMessage, 整数型, "kernel32.dll", "FormatMessageA"
.参数 dwFlags, 整数型
.参数 lpSource, 整数型, , Any
.参数 消息ID, 整数型
.参数 语言ID, 整数型, , 现在系统不支持了,置0
.参数 缓冲区, 文本型
.参数 缓冲区大小, 整数型
.参数 Arguments, 整数型
.DLL命令 ReadFile, 整数型, "kernel32", "ReadFile", , ""
.参数 hFile, 整数型, , 文件的句柄
.参数 lpBuffer, 字节集, 传址, 用于保存读入数据的一个缓冲区
.参数 nNumberOfBytesToRead, 整数型, , 要读入的字符数
.参数 lpNumberOfBytesRead, 整数型, 传址, 从文件中实际读入的字符数
.参数 lpOverlapped, 整数型, , 如文件打开时指定了FILE_FLAG_OVERLAPPED,那么必须用这个参数引用一个特殊的结构。那个结构定义了一次异步读取操作。否则,应将这个参数设为NULL(将函数声明成ByVal As Long,并传递零值)
.DLL命令 CreateFile, 整数型, "kernel32.dll", "CreateFileA", , ""
.参数 lpFileName, 文本型, , ""
.参数 dwDesiredAccess, 整数型, , ""
.参数 dwShareMode, 整数型, , ""
.参数 lpSecurityAttributes, 整数型, , ""
.参数 dwCreationDisposition, 整数型, , ""
.参数 dwFlagsAndAttributes, 整数型, , ""
.参数 hTemplateFile, 整数型, , ""
.DLL命令 SetFilePointer, 整数型, "kernel32.dll", "SetFilePointer", , ""
.参数 hFile, 整数型, , ""
.参数 lDistanceToMove, 整数型, , ""
.参数 lpDistanceToMoveHigh, 整数型, 传址, ""
.参数 dwMoveMethod, 整数型, , ""
.DLL命令 LockFile, 整数型, "kernel32", "LockFile", , ""
.参数 hFile, 整数型, , ""
.参数 dwFileOffsetLow, 整数型, , ""
.参数 dwFileOffsetHigh, 整数型, , ""
.参数 nNumberOfBytesToLockLow, 整数型, , ""
.参数 nNumberOfBytesToLockHigh, 整数型, , ""
.DLL命令 UnlockFile, 整数型, "kernel32", "UnlockFile", , ""
.参数 hFile, 整数型, , ""
.参数 dwFileOffsetLow, 整数型, , ""
.参数 dwFileOffsetHigh, 整数型, , ""
.参数 nNumberOfBytesToUnlockLow, 整数型, , ""
.参数 nNumberOfBytesToUnlockHigh, 整数型, , ""
.DLL命令 FlushFileBuffers, 逻辑型, "kernel32", "FlushFileBuffers"
.参数 hFile, 整数型, , ""
.DLL命令 FlushViewOfFile, 整数型, "kernel32", "FlushViewOfFile", , 将写入文件映射缓冲区的所有数据都刷新到磁盘
.参数 lpBaseAddress, , , 包含了刷新基本地址的一个Long值(参考注解)
.参数 dwNumberOfBytesToFlush, , , 欲刷新的字节数
.DLL命令 取文件路径目录_, 逻辑型, "shlwapi.dll", "PathRemoveFileSpecA", , 如:"c:\windows\boot.ini"返回"c:\windows"
.参数 路径文本, 文本型, , pszPath
.DLL命令 CreateFileMapping1, 整数型, "kernel32", "CreateFileMappingA", , 创建文件映射对象。成功就返回文件映射对象句柄
.参数 hFile, 整数型, , 欲在其中创建映射的一个已经打开的磁盘文件句柄
.参数 lpFileMappigAttributes, 整数型, , 通常用0表示使用默认security对象
.参数 flProtect, 整数型, , 打开映射的方式(用API常数表示的读/写或其它)
.参数 dwMaximumSizeHigh, 整数型, , 表示文件映射的最大长度的高32位。通常均设为0表示磁盘文件的实际长度
.参数 dwMaximumSizeLow, 整数型, , 表示文件映射的最大长度的低32位。通常均设为0表示磁盘文件的实际长度
.参数 lpName, 文本型, , 指定文件映射对象的名称
.DLL命令 CreateFileMapping2, 整数型, "kernel32", "CreateFileMappingA", , 创建文件映射对象。成功就返回文件映射对象句柄
.参数 hFile, 整数型, , 欲在其中创建映射的一个已经打开的磁盘文件句柄
.参数 lpFileMappigAttributes, 整数型, , 通常用0表示使用默认security对象
.参数 flProtect, 整数型, , 打开映射的方式(用API常数表示的读/写或其它)
.参数 dwMaximumSizeHigh, 整数型, , 表示文件映射的最大长度的高32位。通常均设为0表示磁盘文件的实际长度
.参数 dwMaximumSizeLow, 整数型, , 表示文件映射的最大长度的低32位。通常均设为0表示磁盘文件的实际长度
.参数 lpName, 整数型, , 指定文件映射对象的名称
.DLL命令 MapViewOfFile, 整数型, "kernel32.dll", "MapViewOfFile", , 将一个文件映射对象映射到当前应用程序空间。成功就返回文件映射在内存中的起始地址
.参数 hFileMappingObject, 整数型, , 文件映射对象的句柄
.参数 dwDesiredAccess, 整数型, , 用API常数表示的对文件映射的访问方式
.参数 dwFileOffsetHigh, 整数型, , 表示文件中的映射起点的高32位。通常均设为0表示从文件的起始处开始映射
.参数 dwFileOffsetLow, 整数型, , 表示文件中的映射起点的低32位。通常均设为0表示从文件的起始处开始映射
.参数 dwNumberOfBytesToMap, 整数型, , 要映射的字节数,通常设为0表示映射整个文件映射对象。
.DLL命令 UnmapViewOfFile, 整数型, "kernel32.dll", "UnmapViewOfFile", , 解除当前应用程序中的一个文件映射对象的映射地址空间。非零表示成功,零表示失败
.参数 lpBaseAddress, 整数型, , 要解除映射的文件映射起始地址。
.DLL命令 GlobalLock, 整数型, "kernel32.dll", "GlobalLock"
.参数 hMem, 整数型
.DLL命令 GlobalHandle, 整数型, "kernel32.dll", "GlobalHandle"
.参数 wMem, 整数型
.DLL命令 OpenFileMapping, 整数型, "kernel32.dll", "OpenFileMappingA", , 打开一个现成的文件映射对象
.参数 dwDesiredAccess, 整数型, , 用API常数表示的对文件映射的访问方式
.参数 bInheritHandle, 整数型, , 返回值对与子进程的继承属性,常设为False;
.参数 lpName, 文本型, , 指定要打开的文件映射对象名称
.DLL命令 GlobalSize, 整数型, "kernel32.dll", "GlobalSize"
.参数 hMem, 整数型
.DLL命令 CopyMemory, 整数型, "kernel32.dll", "RtlMoveMemory"
.参数 ptr, 整数型
.参数 struct, 字节集, 传址
.参数 cb, 整数型
.DLL命令 CopyMemory_s, 整数型, "kernel32.dll", "RtlMoveMemory"
.参数 ptr, 整数型
.参数 struct, 文本型, 传址
.参数 cb, 整数型
.DLL命令 CopyMemory_x, 整数型, "kernel32.dll", "RtlMoveMemory"
.参数 ptr, 整数型
.参数 struct, 小数型, 传址
.参数 cb, 整数型
.DLL命令 CopyMemory_sj, 整数型, "kernel32.dll", "RtlMoveMemory"
.参数 ptr, 整数型
.参数 struct, 双精度小数型, 传址
.参数 cb, 整数型
.DLL命令 CopyMemory_d, 整数型, "kernel32.dll", "RtlMoveMemory"
.参数 ptr, 整数型
.参数 struct, 短整数型, 传址
.参数 cb, 整数型
.DLL命令 CopyMemory_z, 整数型, "kernel32.dll", "RtlMoveMemory"
.参数 ptr, 整数型
.参数 struct, 整数型, 传址
.参数 cb, 整数型
.DLL命令 CopyMemory_c, 整数型, "kernel32.dll", "RtlMoveMemory"
.参数 ptr, 整数型
.参数 struct, 长整数型, 传址
.参数 cb, 整数型
.DLL命令 CopyMemory_r, 整数型, "kernel32.dll", "RtlMoveMemory"
.参数 ptr, 整数型
.参数 struct, 日期时间型, 传址
.参数 cb, 整数型
.DLL命令 MoveMemory, 整数型, "kernel32.dll", "RtlMoveMemory", , ""
.参数 ptr, 整数型
.参数 struct, 整数型
.参数 cb, 整数型
.DLL命令 VirtualQuery, 整数型, "kernel32.dll", "VirtualQuery", , ""
.参数 lpAddress, 整数型, , "类型为通用型,请在调试时调整其类型"
.参数 lpBuffer, MEMORY_BASIC_INFORMATION, 传址, ""
.参数 dwLength, 整数型, , ""
调用的DLL命令:
.DLL命令 进程伪句柄_, 整数型, , "GetCurrentProcess", 公开, 获取当前进程的一个伪句柄 一般是-1
.DLL命令 打开令牌, 整数型, "advapi32.dll", "OpenProcessToken"
.参数 ProcessHandle, 整数型
.参数 DesiredAccess, 整数型
.参数 TokenHandle, 整数型, 传址
.DLL命令 恢复权限, 逻辑型, "advapi32.dll", "LookupPrivilegeValueA"
.参数 lpSystemName, 文本型
.参数 lpName, 文本型
.参数 lpLuid, ID, 传址
.DLL命令 获取令牌特权, 逻辑型, "advapi32.dll", "AdjustTokenPrivileges"
.参数 TokenHandle, 整数型
.参数 DisableAllPrivileges, 整数型
.参数 NewState, 令牌特权, 传址
.参数 BufferLength, 整数型
.参数 PreviousState, 令牌特权, 传址
.参数 ReturnLength, 整数型, 传址
.DLL命令 置进程优先级_, 逻辑型, , "SetPriorityClass", , 设置进程优先级别SetPriorityClass
.参数 进程句柄, 整数型, , 进程句柄hProcess
.参数 级别, 整数型, , 级别dwPriorityClass
原贴 [易语言首发]PCVX小程序解密 因为 我也不懂 就看了下这个 PC小程序解密.e 发出来不知道怎么用,所以 度娘一步步找答案得到 的 自行研究捉摸了下 仅供学习参考 1.打开 PC小程序解...
易语言模块基址获取源码,模块基址获取,GetModuleBaseAddress...
易语言流程控制编译原理源码,流程控制编译原理,是否汉字,读字符,是否运算符,是否逻辑运算符,指针回溯,跳过空格,跳过注释,代码块,取程序返回值,外部接口_代码块执行,外部接口_表达式计算,表达式计算,逻辑判断,文本到逻辑,函数调用,函数_位或,函数_测试,函数_信...
易语言搜索程序隐藏代码源码,搜索程序隐藏代码,枚举子程序...
易语言打鱼学习链表源码,打鱼学习链表,入栈,出栈,清空链表,取顶数据,取索引处值,取长度,取值处索引,插入,删除,倒置,是否为空,到八,入队,出队...
易语言脚本解析类源码,脚本解析类,子程序1,QEHash,创建进入许可证_,进入许可区_,退出许可区_,删除进入许可证_,启动线程_,销毁线程_,寻找字节集_,内存_申请,内存_释放,内存_尺寸,内存_读整数,内存_写整数,内存_复制,内存_写字节集,内存_写文本,内存_读字节集,...
易语言核心算术计算解析源码,核心算术计算解析,信息框3,信息框2...
易语言获取网页和密码例程源码,获取网页和密码例程,取文档对象,取浏览器文档对象_API,注册消息_API,发送消息_API,置鼠标捕获窗口_API,取消鼠标捕获窗口_API,取窗口类名_API,取座标窗口句柄_API,取光标位置_API...
易语言置入代码调用子程序办法源码,置入代码调用子程序办法,普通写法,置入写法...