易语言seh结构化处理模块源码
系统结构:取ebx,取esi,取edi,取上层ESP,取上层EBP,取函数返回地址,install_seh,uninstall_seh,reset_fcw,set_fcw,ExceptionState_To_SehState,取变量地址_LTContext,取变量地址_文本,辅_申请内存,辅_释放内存,到数值_从子程序地址,写到内存_整数,取指针内容_整数,push,pop,clear,push,pop,empty,clear,ec_initialize,seh_callback,BlockExcept_Main,try,取真实地址_无参子程序,searchCall,push_try_record,get_threadInfo,set_threadInfo,raw_GetExceptionInformation,GetExceptionInformation,throw_state,throw_text,raw_throw,catch_state,catch_text,catch_all,raise_last,endTry,callback_endTry,ExceptDumpFile,ExceptDumpEx,CopyMemory,CopyFrom_ThreadInfo,CopyTo_ThreadInfo,CopyFrom_TryRecord,CopyTo_TryRecord,CopyFrom_EXCEPTION_POINTERS,CopyToExceptRecord,RaiseException,TlsAlloc,TlsFree,TlsGetValue,TlsSetValue,GlobalAlloc,GlobalFree,ZwRaiseException,GetCurrentThreadId,GetCurrentProcess,GetCurrentProcessId,MiniDumpWriteDump,CreateFile,CloseHandle,sizeof_,MessageBoxA,
======程序集1
| |
| |------ _启动子程序
| |
| |------ _临时子程序
| |
| |
======helper
| |
| |------ 取ebx
| |
| |------ 取esi
| |
| |------ 取edi
| |
| |------ 取上层ESP
| |
| |------ 取上层EBP
| |
| |------ 取函数返回地址
| |
| |------ install_seh
| |
| |------ uninstall_seh
| |
| |------ reset_fcw
| |
| |------ set_fcw
| |
| |------ ExceptionState_To_SehState
| |
| |------ 取变量地址_LTContext
| |
| |------ 取变量地址_文本
| |
| |------ 辅_申请内存
| |
| |------ 辅_释放内存
| |
| |------ 到数值_从子程序地址
| |
| |------ 写到内存_整数
| |
| |------ 取指针内容_整数
| |
| |
======CStack_SehRecord
| |
| |------ push
| |
| |------ pop
| |
| |------ clear
| |
| |
======CStack
| |
| |------ push
| |
| |------ pop
| |
| |------ empty
| |
| |------ clear
| |
| |
======程序集2
| |
| |------ ec_initialize
| |
| |------ seh_callback
| |
| |------ BlockExcept_Main
| |
| |------ try
| |
| |------ 取真实地址_无参子程序
| |
| |------ searchCall
| |
| |------ push_try_record
| |
| |------ get_threadInfo
| |
| |------ set_threadInfo
| |
| |------ raw_GetExceptionInformation
| |
| |------ GetExceptionInformation
| |
| |------ throw_state
| |
| |------ throw_text
| |
| |------ raw_throw
| |
| |------ catch_state
| |
| |------ catch_text
| |
| |------ catch_all
| |
| |------ raise_last
| |
| |------ endTry
| |
| |------ callback_endTry
| |
| |------ ExceptDumpFile
| |
| |------ ExceptDumpEx
| |
| |
======调用的Dll
| |
| |---[dll]------ CopyMemory
| |
| |---[dll]------ CopyFrom_ThreadInfo
| |
| |---[dll]------ CopyTo_ThreadInfo
| |
| |---[dll]------ CopyFrom_TryRecord
| |
| |---[dll]------ CopyTo_TryRecord
| |
| |---[dll]------ CopyFrom_EXCEPTION_POINTERS
| |
| |---[dll]------ CopyToExceptRecord
| |
| |---[dll]------ RaiseException
| |
| |---[dll]------ TlsAlloc
| |
| |---[dll]------ TlsFree
| |
| |---[dll]------ TlsGetValue
| |
| |---[dll]------ TlsSetValue
| |
| |---[dll]------ GlobalAlloc
| |
| |---[dll]------ GlobalFree
| |
| |---[dll]------ ZwRaiseException
| |
| |---[dll]------ GetCurrentThreadId
| |
| |---[dll]------ GetCurrentProcess
| |
| |---[dll]------ GetCurrentProcessId
| |
| |---[dll]------ MiniDumpWriteDump
| |
| |---[dll]------ CreateFile
| |
| |---[dll]------ CloseHandle
| |
| |---[dll]------ sizeof_
| |
| |---[dll]------ MessageBoxA
调用的DLL命令:
.DLL命令 CopyMemory, , , "RtlMoveMemory"
.参数 Dest
.参数 Src
.参数 Len
.DLL命令 CopyFrom_ThreadInfo, , , "RtlMoveMemory"
.参数 Dest
.参数 Src, thread_info
.参数 Length
.DLL命令 CopyTo_ThreadInfo, , , "RtlMoveMemory"
.参数 Dest, thread_info
.参数 Src
.参数 Length
.DLL命令 CopyFrom_TryRecord, , , "RtlMoveMemory"
.参数 Dest
.参数 Src, try_record
.参数 Length
.DLL命令 CopyTo_TryRecord, , , "RtlMoveMemory"
.参数 Dest, try_record
.参数 Src
.参数 Length
.DLL命令 CopyFrom_EXCEPTION_POINTERS, , , "RtlMoveMemory"
.参数 Dest
.参数 Src, EXCEPTION_POINTERS
.参数 Length
.DLL命令 CopyToExceptRecord, , , "RtlMoveMemory"
.参数 Dest, EXCEPTION_RECORD
.参数 Src, 整数型
.参数 Len, 整数型
.DLL命令 RaiseException, , , "RaiseException"
.参数 dwExceptionCode
.参数 dwExceptionFlags
.参数 nNumberOfArguments
.参数 lpArguments, , 数组
.DLL命令 TlsAlloc, 整数型, , "TlsAlloc"
.DLL命令 TlsFree, 整数型, , "TlsFree"
.参数 key
.DLL命令 TlsGetValue, 整数型, , "TlsGetValue"
.参数 key
.DLL命令 TlsSetValue, 整数型, , "TlsSetValue"
.参数 key
.参数 value
.DLL命令 GlobalAlloc, 整数型, , "GlobalAlloc"
.参数 flag
.参数 size
.DLL命令 GlobalFree, , , "GlobalFree"
.参数 ptr
.DLL命令 ZwRaiseException, 整数型, "ntdll.dll", "ZwRaiseException"
.参数 ExceptionRecord
.参数 Context
.参数 SearchFrames, 逻辑型
.DLL命令 GetCurrentThreadId, 整数型, , "GetCurrentThreadId"
.DLL命令 GetCurrentProcess, 整数型, , "GetCurrentProcess"
.DLL命令 GetCurrentProcessId, 整数型, , "GetCurrentProcessId"
.DLL命令 MiniDumpWriteDump, 逻辑型, "dbghelp.dll", "MiniDumpWriteDump"
.参数 hProcess
.参数 ProcessId
.参数 hFile
.参数 DumpType
.参数 ExceptionParam, MINIDUMP_EXCEPTION_INFORMATION
.参数 UserStreamParam
.参数 CallbackParam
.DLL命令 CreateFile, 整数型, "kernel32.dll", "CreateFileA"
.参数 lpFileName, 文本型
.参数 dwDesiredAccess, 整数型
.参数 dwShareMode, 整数型
.参数 lpSecurityAttributes, 整数型
.参数 dwCreationDisposition, 整数型
.参数 dwFlagsAndAttributes, 整数型
.参数 hTemplateFile, 整数型
.DLL命令 CloseHandle, , , "CloseHandle"
.参数 hHandle
.DLL命令 sizeof_, 整数型, , "GlobalSize"
.参数 data, EXCEPTION_RECORD
.DLL命令 MessageBoxA
.参数 a
.参数 b
.参数 c
.参数 d
注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。
使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。