//
//
//
//
//
//
//
//
//
//
软件Tags:
易语言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
