逆向工程技术与工具全解析
1. 异常处理与关键部分
在编程中,异常处理和关键部分的管理至关重要。异常处理相关代码如下:
pop
rbx
ret
0
$LN2@filter_use:
lea
rcx, OFFSET FLAT:$SG86281 ; 'not our exception'
call
printf
xor
eax, eax
add
rsp, 32
pop
rbx
ret
0
filter_user_exceptions ENDP
_TEXT
ENDS
对于SEH(结构化异常处理),可以参考相关资料获取更多详细信息。
在Windows NT系统中,关键部分在多线程环境里非常重要,它能保证同一时间只有一个线程可以访问某些数据,同时阻塞其他线程和中断。CRITICAL_SECTION结构的声明如下:
typedef struct _RTL_CRITICAL_SECTION {
PRTL_CRITICAL_SECTION_DEBUG DebugInfo;
//
// The following three fields control entering and exiting the critical
// section for the resource
//
LONG LockCount;
LONG RecursionCount;
HANDLE OwningThread;
// from the thread's ClientId->