易语言UPX加壳器原理源码
系统结构:取短路径,取控制台程序返回,CreateProcess,CreatePipe,ReadFile,WriteFile,CloseHandle,PeekNamedPipe,GetExitCodeProcess,GetShortPathNameA,
======窗口程序集1
| |
| |------ __启动窗口_创建完毕
| |
| |------ __启动窗口_将被销毁
| |
| |------ _按钮_执行_被单击
| |
| |------ _拖放对象1_得到文件
| |
| |------ 取短路径
| |
| |------ 取控制台程序返回
| |
| |
======调用的Dll
| |
| |---[dll]------ CreateProcess
| |
| |---[dll]------ CreatePipe
| |
| |---[dll]------ ReadFile
| |
| |---[dll]------ WriteFile
| |
| |---[dll]------ CloseHandle
| |
| |---[dll]------ PeekNamedPipe
| |
| |---[dll]------ GetExitCodeProcess
| |
| |---[dll]------ GetShortPathNameA
======窗口程序集1
| |
| |------ __启动窗口_创建完毕
| |
| |------ _按钮1_被单击
| |
| |------ _按钮2_被单击
| |
| |------ _编辑框1_获得焦点
调用的DLL命令:
.DLL命令 CreateProcess, 整数型, , "CreateProcessA"
.参数 lpApplicationName, 文本型
.参数 lpCommandLine, 文本型
.参数 lpProcessAttributes, 整数型
.参数 lpThreadAttributes, 整数型
.参数 bInheritHandles, 逻辑型
.参数 dwCreationFlags, 整数型
.参数 lpEnvironment, 整数型
.参数 lpCurrentDriectory, 文本型
.参数 lpStartupInfo, STARTUPINFO, 传址
.参数 lpProcessInformation, PROCESS_INFORMATION, 传址
.DLL命令 CreatePipe, 整数型, , "CreatePipe"
.参数 phReadPipe, 整数型, 传址
.参数 phWritePipe, 整数型, 传址
.参数 lpPipeAttributes, SECURITY_ATTRIBUTES, 传址
.参数 nSize, 整数型
.DLL命令 ReadFile, 整数型, , "ReadFile"
.参数 hFile, 整数型
.参数 lpBuffer, 字节集, 传址
.参数 nNumberOfBytesToRead, 整数型
.参数 lpNumberOfBytesRead, 整数型, 传址
.参数 lpOverlapped, 整数型
.DLL命令 WriteFile, 整数型, , "WriteFile"
.参数 hFile, 整数型
.参数 lpBuffer, 字节集, 传址
.参数 nNumberOfBytesToRead, 整数型
.参数 lpNumberOfBytesRead, 整数型, 传址
.参数 lpOverlapped, 整数型
.DLL命令 CloseHandle, 整数型, , "CloseHandle"
.参数 hObject, 整数型
.DLL命令 PeekNamedPipe, 整数型, , "PeekNamedPipe"
.参数 hNamedPipe, 整数型
.参数 lpBuffer, 整数型
.参数 nBufferSize, 整数型
.参数 lpBytesRead, 整数型
.参数 lpTotalBytesAvail, 整数型, 传址
.参数 lpBytesLeftThisMessage, 整数型
.DLL命令 GetExitCodeProcess, 整数型, , "GetExitCodeProcess"
.参数 hProcess, 整数型
.参数 lpExitCode, 整数型, 传址
.DLL命令 GetShortPathNameA, 整数型, "kernel32.dll", "GetShortPathNameA", , 返回装载到lpszShortPath缓冲区的字符数量。如lpszShortPath的长度不足,不能容下文件名,就返回需要的缓冲区长度
.参数 lpszLongPath, 文本型, , 指定欲获取短路径名的那个文件的名字。可以是个完整路径,或者由当前目录决定
.参数 lpszShortPath, 文本型, , 指定一个缓冲区,用于装载文件的短路径和文件名,需先分配空间。
.参数 cchBuffer, 整数型, , lpszShortPath缓冲区长度,请设置为260。
注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。
使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。