文件PE修改器易语言源码
系统结构:加入信息,nop,加入信息_弹窗,push,jmp_eax,call_eax,mov_eax_,jmp,push_eax,call_ebx,mov_ebx_,pop_eax,pop_ebx,cmp_eax_,je,子程序_字节集到整数,ExportsDLLFunction,LOWORD,子程序_启动初始化,子程序_窗口化,check,GetCurrentProcessId,W2A,text_xing_1,解密,还原,API_GetProcAddress,WideCharToMultiByte,NtSetDebugFilterState,OpenProcess,ZwQueryInformationProcess,AddFontMemResourceEx,RemoveFontMemResourceEx,API_GetModuleHandle,ImageRvaToVa,API_创建文件,API_创建文件映射对象,API_MapViewOfFile,API_UnmapViewOfFile,API_关闭内核对象,
======窗口程序集1
| |
| |------ _Button_output_1_被单击
| |
| |------ 加入信息
| |
| |------ nop
| |
| |------ 加入信息_弹窗
| |
| |------ push
| |
| |------ jmp_eax
| |
| |------ call_eax
| |
| |------ mov_eax_
| |
| |------ jmp
| |
| |------ push_eax
| |
| |------ call_ebx
| |
| |------ mov_ebx_
| |
| |------ pop_eax
| |
| |------ pop_ebx
| |
| |------ cmp_eax_
| |
| |------ je
| |
| |------ 子程序_字节集到整数
| |
| |------ __window_创建完毕
| |
| |------ _拖放对象1_得到文件
| |
| |------ ExportsDLLFunction
| |
| |------ LOWORD
| |
| |------ 子程序_启动初始化
| |
| |------ 子程序_窗口化
| |
| |------ check
| |
| |------ GetCurrentProcessId
| |
| |------ _时钟1_周期事件
| |
| |------ _时钟2_周期事件
| |
| |------ W2A
| |
| |------ __window_将被销毁
| |
| |------ _Button_open_1_被单击
| |
| |------ _label_4_鼠标左键被放开
| |
| |------ _text_3_失去焦点
| |
| |------ _text_3_获得焦点
| |
| |------ _text_4_获得焦点
| |
| |------ _text_4_失去焦点
| |
| |------ _选择夹1_被单击
| |
| |------ _Button_output_2_被单击
| |
| |------ _组合框1_列表项被选择
| |
| |
======程序集1
| |
| |------ text_xing_1
| |
| |------ 解密
| |
| |------ 还原
| |
| |
======启动集
| |
| |------ _启动子程序
| |
| |
======窗口程序集2
| |
| |------ __Load_创建完毕
| |
| |------ _时钟1_周期事件
| |
| |------ _时钟2_周期事件
| |
| |
======调用的Dll
| |
| |---[dll]------ API_GetProcAddress
| |
| |---[dll]------ WideCharToMultiByte
| |
| |---[dll]------ NtSetDebugFilterState
| |
| |---[dll]------ OpenProcess
| |
| |---[dll]------ ZwQueryInformationProcess
| |
| |---[dll]------ AddFontMemResourceEx
| |
| |---[dll]------ RemoveFontMemResourceEx
| |
| |---[dll]------ API_GetModuleHandle
| |
| |---[dll]------ ImageRvaToVa
| |
| |---[dll]------ API_创建文件
| |
| |---[dll]------ API_创建文件映射对象
| |
| |---[dll]------ API_MapViewOfFile
| |
| |---[dll]------ API_UnmapViewOfFile
| |
| |---[dll]------ API_关闭内核对象
调用的DLL命令:
.DLL命令 API_GetProcAddress, 整数型, "kernel32.dll", "GetProcAddress", , 返回函数地址
.参数 hModule, 整数型
.参数 lpProcName, 文本型
.DLL命令 WideCharToMultiByte, 整数型, "kernel32", "WideCharToMultiByte", , 将通配符映像为多字节
.参数 代码页, 整数型, , cp_开头常量
.参数 标志, 整数型, , 512
.参数 宽字符文本, 字节集, , 字节集
.参数 宽字符文本长度, 整数型
.参数 双字节文本, 文本型, , 字节集
.参数 双字节文本长度, 整数型
.参数 默认文本, 整数型
.参数 使用默认文本, 整数型, , 逻辑
.DLL命令 NtSetDebugFilterState, 整数型, "Ntdll.dll"
.参数 a, 整数型
.参数 b, 整数型
.参数 c, 整数型
.DLL命令 OpenProcess, 整数型, "kernel32.dll", "OpenProcess", 公开, 返回指定进程的进程句柄
.参数 dwDesiredAccess, 整数型, , 通常为1040 访问标志
.参数 bInheritHandle, 整数型, , 通常为0 继承标志
.参数 dwProcessId, 整数型, , 欲取其句柄的进程标识符
.DLL命令 ZwQueryInformationProcess, 整数型, "ntdll.dll", "ZwQueryInformationProcess"
.参数 hProcess, 整数型, , 未知类型:SYSTEM_INFORMATION_CLASS。
.参数 InfoClass, 整数型
.参数 Buffer, 整数型, 传址, any
.参数 Bufsize, 整数型
.参数 pReqsize, 整数型
.DLL命令 AddFontMemResourceEx, 整数型, "gdi32.dll"
.参数 pbFont, 字节集
.参数 cbFont
.参数 pdv
.参数 pcFonts, , 传址
.DLL命令 RemoveFontMemResourceEx, 逻辑型, "gdi32.dll"
.参数 fh
.DLL命令 API_GetModuleHandle, 整数型, "kernel32", "GetModuleHandleA", , 获取一个应用程序或动态链接库的模块句柄 如执行成功成功,则返回模块句柄。零表示失败。会设置GetLastError
.参数 lpModuleName, 文本型, , 指定模块名,这通常是与模块的文件名相同的一个名字。例如,NOTEPAD.EXE程序的模块文件名就叫作NOTEPAD;
.DLL命令 ImageRvaToVa, 整数型, "imagehlp.dll", "ImageRvaToVa"
.参数 NtHeaders, 整数型
.参数 Base, 整数型
.参数 Rva, 整数型
.参数 LastRvaSection, 整数型, 传址
.DLL命令 API_创建文件, 整数型, "kernel32", "CreateFileA", , 这是一个全功能的例程,可打开和创建文件、管道、邮槽、通信服务、设备以及控制台 如执行成功,则返回文件句柄。INVALID_HANDLE_VALUE表示出错,会设置GetLastError。即使函数成功,但若文件存在,且指定了CREATE_ALWAYS ; 或 OPEN_ALWAYS,GetLastError也会设为ERROR_ALREADY_EXISTS
.参数 打开文件名, 文本型, , 要打开的文件的名字
.参数 访问权限, 整数型, , 如果为 GENERIC_READ 表示允许对设备进行读访问;如果为 GENERIC_WRITE 表示允许对设备进行写访问(可组合使用);如果为零,表示只允许获取与一个设备有关的信息
.参数 共享方式, 整数型, , 零表示不共享; FILE_SHARE_READ 和/或 FILE_SHARE_WRITE 表示允许对文件进行共享访问
.参数 security特性, 整数型, , SECURITY_ATTRIBUTES,指向一个SECURITY_ATTRIBUTES结构的指针,定义了文件的security特性(如果操作系统支持的话)
.参数 创建方式, 整数型, , 下述常数之一:;CREATE_NEW:创建文件;如文件存在则会出错;CREATE_ALWAYS:创建文件,会改写前一个文件;OPEN_EXISTING:文件必须已经存在。由设备提出要求;OPEN_ALWAYS:如文件不存在则创建它;TRUNCATE_EXISTING:讲现有文件缩短为零长度
.参数 文件属性, 整数型, , 一个或多个下述常数;FILE_ATTRIBUTE_ARCHIVE:标记归档属性;FILE_ATTRIBUTE_COMPRESSED:将文件标记为已压缩,或者标记为文件在目录中的默认压缩方式;FILE_ATTRIBUTE_NORMAL:默认属性;FILE_ATTRIBUTE_HIDDEN:隐藏文件或目录;FILE_ATTRIBUTE_READONLY:文件为只读;FILE_ATTRIBUTE_SYSTEM:文件为系统文件;FILE_FLAG_WRITE_THROUGH:操作系统不得推迟对文件的写操作;FILE_FLAG_OVERLAPPED:允许对文件进行重叠操作;FILE_FLAG_NO_BUFFERING:禁止对文件进行缓冲处理。文件只能写入磁盘卷的扇区块;FILE_FLAG_RANDOM_ACCESS:针对随机访问对文件缓冲进行优化;FILE_FLAG_SEQUENTIAL_SCAN:针对连续访问对文件缓冲进行优化;FILE_FLAG_DELETE_ON_CLOSE:关闭了上一次打开的句柄后,将文件删除。特别适合临时文件也可在Windows NT下组合使用下述常数标记:SECURITY_ANONYMOUS, SECURITY_IDENTIFICATION, SECURITY_IMPERSONATION, SECURITY_DELEGATION, SECURITY_CONTEXT_TRACKING, SECURITY_EFFECTIVE_ONLY
.参数 从文件复制文件属性, 整数型, , 如果不为零,则指定一个文件句柄。新文件将从这个文件中复制扩展属性;
.DLL命令 API_创建文件映射对象, 整数型, "kernel32", "CreateFileMappingA", , 创建一个新的文件映射对象 新建文件映射对象的句柄;零意味着出错。会设置GetLastError。即使函数成功,但倘若返回的句柄属于一个现成的文件映射对象,那么GetLastError也会设置成ERROR_ALREADY_EXISTS。在这种情况下,文件映射的长度就是现有对象的长度,而不是这个函数指定的尺寸
.参数 文件映射句柄, 整数型, , 指定欲在其中创建映射的一个文件句柄。&HFFFFFFFF&表示在内存中创建一个文件映射
.参数 security对象, 整数型, , SECURITY_ATTRIBUTES,指定一个security对象,在创建文件映射时使用。如果为NULL(用ByVal As Long传递零),表示使用默认security对象
.参数 打开映射方式, 整数型, , 下述常数之一:;PAGE_READONLY:以只读方式打开映射;PAGE_READWRITE:以可读、可写方式打开映射;PAGE_WRITECOPY:为写操作留下备份可组合使用下述一个或多个常数;SEC_COMMIT:为文件映射一个小节中的所有页分配内存;SEC_IMAGE:文件是个可执行文件;SEC_RESERVE:为没有分配实际内存的一个小节保留虚拟内存空间
.参数 文件映射最大长度, 整数型, , 文件映射的最大长度(高32位)
.参数 文件映射的最小长度, 整数型, , 文件映射的最小长度(低32位)。如这个参数和dwMaximumSizeHigh都是零,就用磁盘文件的实际长度
.参数 映射对象名, 整数型, , 指定文件映射对象的名字。如存在这个名字的一个映射,函数就会打开它。用vbNull创建一个无名的文件映射;
.DLL命令 API_MapViewOfFile, 整数型, "kernel32", "MapViewOfFile", , 将一个文件映射对象映射到当前应用程序的地址空间。MapViewOfFileEx允许我们指定一个基本地址来进行映射 文件映射在内存中的起始地址。零表示出错。会设置GetLastError
.参数 hFileMappingObject, 整数型
.参数 dwDesiredAccess, 整数型
.参数 dwFileOffsetHigh, 整数型
.参数 dwFileOffsetLow, 整数型
.参数 dwNumberOfBytesToMap, 整数型
.DLL命令 API_UnmapViewOfFile, 整数型, "kernel32", "UnmapViewOfFile", , 在当前应用程序的内存地址空间解除对一个文件映射对象的映射 非零表示成功,零表示失败。会设置GetLastError
.参数 lpBaseAddress, 整数型, , 指定要解除映射的一个文件映射的基准地址。这个地址是早先用MapViewOfFile函数获得的;
.DLL命令 API_关闭内核对象, 整数型, "kernel32", "CloseHandle", , 关闭一个内核对象。其中包括文件、文件映射、进程、线程、security和同步对象等。涉及文件处理时,这个函数通常与vb的close命令相似。应尽可能的使用close,因为它支持vb的差错控制。注意这个函数使用的文件句柄与vb的文件编号是完全不同的 非零表示成功,零表示失败。会设置GetLastError
.参数 对象句柄, 整数型, , 欲关闭的一个对象的句柄;
原贴 [易语言首发]PCVX小程序解密 因为 我也不懂 就看了下这个 PC小程序解密.e 发出来不知道怎么用,所以 度娘一步步找答案得到 的 自行研究捉摸了下 仅供学习参考 1.打开 PC小程序解...
易语言模块基址获取源码,模块基址获取,GetModuleBaseAddress...
易语言流程控制编译原理源码,流程控制编译原理,是否汉字,读字符,是否运算符,是否逻辑运算符,指针回溯,跳过空格,跳过注释,代码块,取程序返回值,外部接口_代码块执行,外部接口_表达式计算,表达式计算,逻辑判断,文本到逻辑,函数调用,函数_位或,函数_测试,函数_信...
易语言搜索程序隐藏代码源码,搜索程序隐藏代码,枚举子程序...
易语言打鱼学习链表源码,打鱼学习链表,入栈,出栈,清空链表,取顶数据,取索引处值,取长度,取值处索引,插入,删除,倒置,是否为空,到八,入队,出队...
易语言脚本解析类源码,脚本解析类,子程序1,QEHash,创建进入许可证_,进入许可区_,退出许可区_,删除进入许可证_,启动线程_,销毁线程_,寻找字节集_,内存_申请,内存_释放,内存_尺寸,内存_读整数,内存_写整数,内存_复制,内存_写字节集,内存_写文本,内存_读字节集,...
易语言核心算术计算解析源码,核心算术计算解析,信息框3,信息框2...
易语言获取网页和密码例程源码,获取网页和密码例程,取文档对象,取浏览器文档对象_API,注册消息_API,发送消息_API,置鼠标捕获窗口_API,取消鼠标捕获窗口_API,取窗口类名_API,取座标窗口句柄_API,取光标位置_API...
易语言置入代码调用子程序办法源码,置入代码调用子程序办法,普通写法,置入写法...