当前位置:文档之家› 反调试技术

反调试技术

反调试技术
反调试技术

反调试技术 (2)

发现OD的处理 (2)

1. 窗口类名、窗口名 (3)

2. 检测调试器进程 (4)

3. 父进程是否是Explorer (5)

4. RDTSC/ GetTickCount时间敏感程序段 (7)

5. StartupInfo结构 (7)

6. BeingDebugged (8)

7. PEB.NtGlobalFlag , Heap.HeapFlags, Heap.ForceFlags (10)

8. DebugPort: CheckRemoteDebuggerPresent()/NtQueryInformationProcess() (11)

9. SetUnhandledExceptionFilter/ Debugger Interrupts (13)

10. Trap Flag单步标志异常 (15)

11. SeDebugPrivilege 进程权限 (16)

12. DebugObject: NtQueryObject() (16)

13. OllyDbg:Guard Pages (17)

14. Software Breakpoint Detection (19)

15. Hardware Breakpoints (21)

16. PatchingDetection CodeChecksumCalculation补丁检测,代码检验和 (22)

17. block input封锁键盘、鼠标输入 (23)

18. EnableWindow禁用窗口 (23)

19. ThreadHideFromDebugger (24)

20. Disabling Breakpoints禁用硬件断点 (26)

21. OllyDbg:OutputDebugString() Format String Bug (27)

22. TLS Callbacks (27)

反反调试技术 (31)

反调试技术

唐久涛

看雪ID:tangjiutao

本人博客:https://www.doczj.com/doc/3615969106.html,/tjt999

声明:这篇文章是本人学习的总结,理论部分参考了《脱壳的艺术》、《加密与解密》以及本人从网络上收集的资料,在此向原作者致敬。本人的贡献在于根据个人理解对各种反调试技术进行了汇总和高度归纳,并提供了本人创作的各种反调试实例及源代码。本人于09年9月份开始学习软件逆向工程的相关知识,在学习过程中得到大量网友的热心帮助,在此向各位致以诚挚谢意。希望本人的这些工作能够对各位有所帮助,浅陋之处,莫要见笑。各种形式的转载都必须保留作者信息及本声明。

由于本人入门较晚、能力有限,部分方法尚未实现,望高手不吝赐教。实现了的方法大都附有实例程序。很多方法对于修改版的OD已经失效,请用原版OD进行测试。

发现OD的处理

一、如何获取OD窗口的句柄

1.已经获取了窗口类名或标题:FindWindow

2.没有获取窗口类名或标题:GetForeGroundWindow返回前台窗口,这里就是OD的窗口句柄了。注意这种方法更为重要,因为大多数情况下不会知道OD的窗口类名。

invoke IsDebuggerPresent

.if eax

invoke GetForegroundWindow ;获得的是OD的窗口句柄

invoke SendMessage,eax,WM_CLOSE,NULL,NULL

.endif

二、获取OD窗口句柄后的处理

(1)向窗口发送WM_CLOSE消息

invoke FindWindow,addr szClassName,NULL ;通过类名进行检测

.if eax ;找到

mov hWinOD,eax

invoke MessageBox,NULL,offset szFound,offset szCaption,MB_OK

invoke SendMessage,hWinOD,WM_CLOSE,NULL,NULL .endif

(2)终止相关进程,根据窗口句柄获取进程ID,根据进程ID获取进程句柄,

_GetODProcID proc

LOCAL @hWinOD ;窗口句柄

LOCAL @hProcessOD ;进程句柄

LOCAL @idProcessOD ;进程ID

invoke FindWindow,addr szClassName,NULL ;通过类名进行检测

.if eax ;找到

mov @hWinOD,eax ;窗口句柄

invoke GetWindowThreadProcessId,@hWinOD,addr @idProcessOD

;获取进程ID在@idProcessOD里

invoke OpenProcess,PROCESS_TERMINATE,TRUE,@idProcessOD

;获取进程句柄在返回值里

.if eax ;获取句柄成功

mov @hProcessOD,eax

invoke TerminateProcess,@hProcessOD,200 ;利用句柄终止进程

invoke CloseHandle,@hProcessOD ;关闭进程句柄

invoke MessageBox,NULL,addr szClose,addr szMerry,MB_OK .else ;获取句柄失败,多因权限问题

invoke MessageBox,NULL,addr szFail,addr szCaption,MB_OK .endif .

.endif

ret

_GetODProcID endp

1.窗口类名、窗口名

(1)FindWindow

(2)EnumWindow函数调用后,系统枚举所有顶级窗口,为每个窗口调用一次回调函数。

在回调函数中用GetWindowText得到窗口标题,用strstr等函数查找有无Ollydbg字符串。StrStr(大小写敏感,对应的StrStrI大小写不敏感)函数返回str2第一次出现在str1中的位置,如果没有找到,返回NULL。

(3)GetForeGroundWindow返回前台窗口(用户当前工作的窗口)。当程序被调试时,调用这个函数将获得Ollydbg的窗口句柄,这样就可以向其发送WM_CLOSE消息将其关闭了。

(1)FindWindow

szClassName db 'ollydbg',0

invoke FindWindow,addr szClassName,NULL ;通过类名进行检测

.if eax ;找到

jmp debugger_found

.endif

(2)EnumWindow

.386

.model flat,stdcall

option casemap:none

include windows.inc

include user32.inc

includelib user32.lib

include kernel32.inc

includelib kernel32.lib

include Shlwapi.inc

includelib Shlwapi.lib ;strstr

.const

szTitle db 'ollydbg',0

szCaption db '结果',0

szFindOD db '发现目标窗口',0

szText db '枚举已结束,没提示发现目标,则没有找到目标窗口',0

.code

;定义回调函数

_CloseWnd proc uses ebx edi esi,_hWnd,_lParam

LOCAL @szBuffer[1024]:BYTE ;接收窗口标题

invoke IsWindowVisible,_hWnd

.if eax ;是否是可见的窗口

invoke GetWindowText,_hWnd,addr @szBuffer,sizeof @szBuffer

invoke StrStrI,addr @szBuffer,offset szTitle ;查找标题中有无字符串,不带I的大小写敏感

.if eax

invoke MessageBox,NULL,addr szFindOD,addr szCaption,MB_OK

invoke PostMessage,_hWnd,WM_CLOSE,0,0 ;关闭目标

.endif

.endif

mov eax,TRUE ;返回true 时,EnumWindows继续枚举下一个窗口,false退出枚举.

ret

_CloseWnd endp

start:

invoke EnumWindows,addr _CloseWnd,NULL

;EnumWindows调用,系统枚举所有顶级窗口,为每个窗口调用一次回调函数invoke MessageBox,NULL,addr szText,addr szCaption,MB_OK

invoke ExitProcess,NULL

end start

2.检测调试器进程

枚举进程列表,看是否有调试器进程(OLL YDBG.EXE,windbg.exe等)。

利用kernel32!ReadProcessMemory()读取进程内存,然后寻找调试器相关的字符串(如”OLL YDBG”)以防止逆向分析人员修改调试器的可执行文件名。

.386

.model flat, stdcall

option casemap :none

include windows.inc

include user32.inc

includelib user32.lib

include kernel32.inc

includelib kernel32.lib

.const

stSysProc db 'OLL YDBG.EXE',0

szCaption db '检测结果',0

szFound db '检测到调试器',0

szNotFound db '没有调试器',0

.code

_GetProcList proc

LOCAL @stProcessEntry:PROCESSENTRY32

LOCAL @hSnapShot

invoke CreateToolhelp32Snapshot,TH32CS_SNAPPROCESS,NULL

mov @hSnapShot,eax

mov @stProcessEntry.dwSize,sizeof @stProcessEntry

invoke Process32First,@hSnapShot,addr @stProcessEntry

.while eax

invoke lstrcmp,addr @stProcessEntry.szExeFile,addr stSysProc

.if eax == 0 ;为0,说明进程名相同

push 20

invoke MessageBox,NULL,addr szFound,addr szCaption,MB_OK

.endif

invoke Process32Next,@hSnapShot,addr @stProcessEntry

.endw

pop eax

.if eax != 20

invoke MessageBox,NULL,addr szNotFound,addr szCaption,MB_OK .endif

ret

_GetProcList endp

start:

invoke _GetProcList

invoke ExitProcess,NULL

end start

3.父进程是否是Explorer

原理:通常进程的父进程是explorer.exe(双击执行的情况下),否则可能程序被调试。

下面是实现这种检查的一种方法:

1.通过TEB(TEB.ClientId)或者使用GetCurrentProcessId()来检索当前进程的PID

2.用Process32First/Next()得到所有进程的列表,注意explorer.exe的PID(通过PROCESSENTRY32.szExeFile)和通过PROCESSENTRY32.th32ParentProcessID获得的当前进程的父进程PID。Explorer进程ID也可以通过桌面窗口类和名称获得。

3.如果父进程的PID不是explorer.exe,cmd.exe,Services.exe的PID,则目标进程很可能被调试

对策:Olly Advanced提供的方法是让Process32Next()总是返回fail,使进程枚举失效,PID 检查将会被跳过。这些是通过补丁kernel32!Process32NextW()的入口代码(将EAX值设为0然后直接返回)实现的。

(1)通过桌面类和名称获得Explorer的PID 源码见附件

.data?

szDesktopClass db 'Progman',0 ;桌面的窗口类

szDesktopWindow db 'Program Manager',0 ;桌面的窗口名称

dwProcessID dd ? ;保存进程ID

dwThreadID dd ? ;保存线程ID

.code

invoke FindWindow,addr szDesktopClass,addr szDesktopWindow ;获取桌面窗口句柄invoke GetWindowThreadProcessId,eax,offset dwProcessID ;获取EXPLORER进程ID mov dwThreadID,eax ;线程ID

(2)通过进程列表快照获得Explorer的PID 源码见附件

szExplorer db 'EXPLORER.EXE',0

dwParentID dd ?

dwExplorerID dd ?

_ProcTest proc

local @stProcess:PROCESSENTRY32 ;每一个进程的信息

local @hSnapShot ;快照句柄

pushad

invoke GetCurrentProcessId

mov ebx,eax ;当前进程ID

invoke RtlZeroMemory,addr @stProcess,sizeof @stProcess ; 0初始化进程信息结构

mov @stProcess.dwSize,sizeof @stProcess ;手工填写结构大小

invoke CreateToolhelp32Snapshot,TH32CS_SNAPPROCESS,0;获取进程列表快照

mov @hSnapShot,eax ;快照句柄

invoke Process32First,@hSnapShot,addr @stProcess ;第一个进程

.while eax

.if ebx == @stProcess.th32ProcessID ;是当前进程吗?

mov eax,@stProcess.th32ParentProcessID ;是,则保存父进程ID

mov dwParentID,eax

.endif

invoke lstrcmp,addr @stProcess.szExeFile,addr szExplorer ;Explorer进程ID

.if eax == 0 ;为0,说明进程名相同

mov eax,@stProcess.th32ProcessID

mov dwExplorerID,eax

.endif

invoke Process32Next,@hSnapShot,addr @stProcess ;下一个进程.endw

invoke CloseHandle,@hSnapShot ;关闭快照

mov ebx,dwParentID

.if ebx == dwExplorerID ;父进程ID与EXPLORER进程ID比较

invoke MessageBox,NULL,offset szNotFound,offset szCaption,MB_OK .else

invoke MessageBox,NULL,offset szFound,offset szCaption,MB_OK .endif

popad

ret

_ProcTest endp

4.RDTSC/ GetTickCount时间敏感程序段

当进程被调试时,调试器事件处理代码、步过指令等将占用CPU循环。如果相邻指令之间所花费的时间如果大大超出常规,就意味着进程很可能是在被调试。

(1)RDTSC

将计算机启动以来的CPU运行周期数放到EDX:EAX里面,EDX是高位,EAX是低位。

如果CR4的TSD(time stamp disabled)置位,则rdtsc在ring3下运行会导致异常(特权指令),所以进入ring0,把这个标记置上,然后Hook OD的WaitForDebugEvent,拦截异常事件,当异常代码为特权指令时,把异常处的opcode读出检查,如果是rdtsc,把eip加2,SetThreadContext,edx:eax的返回由你了。

(2)GetTickCount 源码见附件

invoke GetTickCount ;第一次调用

mov ebx,eax ;结果保存在ebx里

mov ecx,10 ;延时开始

mov edx,6 ;单步走,放慢速度

mov ecx,10 ;延时结束

invoke GetTickCount ;第二次调用

sub eax,ebx ;计算差值

.if eax > 1000 ;假定大于1000ms,就说明有调试器

jmp debugger_found

.endif

5.StartupInfo结构

原理:Windows操作系统中的explorer.exe创建进程的时候会把STARTUPINFO结构中的值设为0,而非explorer.exe创建进程的时候会忽略这个结构中的值,也就是结构中的值不为0,所以可以利用这个来判断OD是否在调试程序.

if (Info.dwX<>0) or (Info.dwY<>0) or (Info.dwXCountChars<>0) or (Info.dwYCountChars<>0) or (Info.dwFillAttribute<>0) or (Info.dwXSize<>0) or (Info.dwYSize<>0) then “有调试器”******************************************************************************* 结构体

typedef struct _STARTUPINFO

{

DWORD cb; 0000

PSTR lpReserved; 0004

PSTR lpDesktop; 0008

PSTR lpTitle; 000D

DWORD dwX; 0010

DWORD dwY; 0014

DWORD dwXSize; 0018

DWORD dwYSize; 001D

DWORD dwXCountChars; 0020

DWORD dwYCountChars; 0024

DWORD dwFillAttribute; 0028

DWORD dwFlags; 002D

WORD wShowWindow; 0030

WORD cbReserved2; 0034

PBYTE lpReserved2; 0038

HANDLE hStdInput; 003D

HANDLE hStdOutput; 0040

HANDLE hStdError; 0044

} STARTUPINFO, *LPSTARTUPINFO;

_ProcTest proc

LOCAL @stStartupInfo:STARTUPINFO

pushad

invoke GetStartupInfo,addr @stStartupInfo

cmp @stStartupInfo.dwX,0

jnz foundDebugger

cmp @stStartupInfo.dwY,0

jnz foundDebugger

cmp @stStartupInfo.dwXCountChars,0

jnz foundDebugger

cmp @stStartupInfo.dwYCountChars,0

jnz foundDebugger

cmp @stStartupInfo.dwFillAttribute,0

jnz foundDebugger

cmp @stStartupInfo.dwXSize,0

jnz foundDebugger

cmp @stStartupInfo.dwYSize,0

jnz foundDebugger

noDebugger: “无调试器”

jmp TestOver

foundDebugger: “有调试器”

TestOver:

popad

ret

_ProcTest endp

6.BeingDebugged

kernel32!IsDebuggerPresent() API检测进程环境块(PEB)中的BeingDebugged标志检查这个标志以确定进程是否正在被用户模式的调试器调试。

每个进程都有PEB结构,一般通过TEB间接得到PEB地址

Fs:[0]指向当前线程的TEB结构,偏移为0处是线程信息块结构TIB

TIB偏移18H处是self字段,是TIB的反身指针,指向TIB(也是PEB)首地址TEB偏移30H处是指向PEB结构的指针

PEB偏移2H处,就是BeingDebugged字段,Uchar类型

(1)调用IsDebuggerPresent函数,间接读BeingDebugged字段

(2)利用地址直接读BeingDebugged字段

对策:

(1)数据窗口中Ctrl+G fs:[30] 查看PEB数据,将PEB.BeingDebugged标志置0 (2)Ollyscript命令"dbh"可以补丁这个标志

.386

.model flat,stdcall

option casemap:none

include windows.inc

include user32.inc

include kernel32.inc

includelib user32.lib

includelib kernel32.lib

.const

szCaption db '检测结果',0

szFound db '检测到调试器',0

szNotFound db '没有调试器',0

.code

start:

;调用函数IsDebuggerPresent

invoke IsDebuggerPresent

.if eax

invoke MessageBox,NULL,addr szFound,addr szCaption,MB_OK .else

invoke MessageBox,NULL,addr szNotFound,addr szCaption,MB_OK .endif

;直接去读字段

assume fs:nothing

mov eax,fs:[30h]

movzx eax,byte ptr [eax+2]

.if eax

invoke MessageBox,NULL,addr szFound,addr szCaption,MB_OK .else

invoke MessageBox,NULL,addr szNotFound,addr szCaption,MB_OK .endif

invoke ExitProcess,NULL

end start

7.PEB.NtGlobalFlag , Heap.HeapFlags, Heap.ForceFlags

(1)通常程序没有被调试时,PEB另一个成员NtGlobalFlag(偏移0x68)值为0,如果进程被调试通常值为0x70(代表下述标志被设置):

FLG_HEAP_ENABLE_TAIL_CHECK(0X10)

FLG_HEAP_ENABLE_FREE_CHECK(0X20)

FLG_HEAP_V ALIDATE_PARAMETERS(0X40)

这些标志是在ntdll!LdrpInitializeExecutionOptions()里设置的。请注意PEB.NtGlobalFlag的默认值可以通过gflags.exe工具或者在注册表以下位置创建条目来修改:

HKLM\Software\Microsoft\Windows Nt\CurrentVersion\Image File Execution Options

assume fs:nothing

mov eax,fs:[30h]

mov eax,[eax+68h]

and eax,70h

(2)由于NtGlobalFlag标志的设置,堆也会打开几个标志,这个变化可以在ntdll!RtlCreateHeap()里观测到。正常情况下系统为进程创建第一个堆时会将Flags和ForceFlags分别设为2(HEAP_GROW ABLE)和0 。当进程被调试时,这两个标志通常被设为50000062(取决于NtGlobalFlag)和0x40000060(等于Flags AND 0x6001007D)。

assume fs:nothing

mov ebx,fs:[30h] ;ebx指向PEB

mov eax,[ebx+18h] ;PEB.ProcessHeap

cmp dword ptr [eax+0ch],2 ;PEB.ProcessHeap.Flags

jne debugger_found

cmp dword ptr [eax+10h],0 ;PEB.ProcessHeap.ForceFlags

jne debugger_found

这些标志位都是因为BeingDebugged引起的。系统创建进程的时候设置BeingDebugged=TRUE,后来NtGlobalFlag根据这个标记设置FLG_V ALIDATE_PARAMETERS等标记。在为进程创建堆时,又由于NtGlobalFlag的作用,堆的Flags被设置了一些标记,这个Flags随即被填充到ProcessHeap的Flags和ForceFlags 中,同时堆中被填充了很多BAADF00D之类的东西(HeapMagic,也可用来检测调试)。

一次性解决这些状态见加密解密P413

.386

.model flat,stdcall

option casemap:none

include windows.inc

include user32.inc

include kernel32.inc

includelib user32.lib

includelib kernel32.lib

.const

szCaption db '检测结果',0

szFound db '检测到调试器',0

szNotFound db '没有调试器',0

.code

start:

assume fs:nothing

mov ebx,fs:[30h] ;ebx指向PEB

;PEB.NtGlobalFlag

mov eax,[ebx+68h]

cmp eax,70h

je debugger_found

;PEB.ProcessHeap

mov eax,[ebx+18h]

;PEB.ProcessHeap.Flags

cmp dword ptr [eax+0ch],2

jne debugger_found

;PEB.ProcessHeap.ForceFlags

cmp dword ptr [eax+10h],0

jne debugger_found

invoke MessageBox,NULL,addr szNotFound,addr szCaption,MB_OK

jmp exit

debugger_found: invoke MessageBox,NULL,addr szFound,addr szCaption,MB_OK

exit: invoke ExitProcess,NULL

end start

8.DebugPort: CheckRemoteDebuggerPresent()/NtQueryInformationProcess()

Kernel32!CheckRemoteDebuggerPresent()是用于确定是否有调试器被附加到进程。

BOOL CheckRemoteDebuggerPresent(

HANDLE hProcess,

PBOOL pbDebuggerPresent

)

Kernel32!CheckRemoteDebuggerPresent()接受2个参数,第1个参数是进程句柄,第2个参数是一个指向boolean变量的指针,如果进程被调试,该变量将包含TRUE返回值。

这个API内部调用了ntdll!NtQueryInformationProcess(),由它完成检测工作。

.386

.model flat,stdcall

option casemap:none

include windows.inc

include user32.inc

include kernel32.inc

includelib user32.lib

includelib kernel32.lib

.data?

dwResult dd ?

.const

szCaption db '检测结果',0

szFound db '检测到调试器',0

szNotFound db '没有调试器',0

.code

start:

invoke GetCurrentProcessId

invoke OpenProcess,PROCESS_ALL_ACCESS,NULL,eax

invoke CheckRemoteDebuggerPresent,eax,addr dwResult

cmp dword ptr dwResult,0

jne debugger_found

invoke MessageBox,NULL,addr szNotFound,addr szCaption,MB_OK

jmp exit

debugger_found: invoke MessageBox,NULL,addr szFound,addr szCaption,MB_OK exit: invoke ExitProcess,NULL

end start

ntdll!NtQueryInformationProcess()有5个参数。

为了检测调试器的存在,需要将ProcessInformationclass参数设为ProcessDebugPort(7)。NtQueryInformationProcess()检索内核结构EPROCESS5的DebugPort成员,这个成员是系统用来与调试器通信的端口句柄。非0的DebugPort成员意味着进程正在被用户模式的调试器调试。如果是这样的话,ProcessInformation 将被置为0xFFFFFFFF ,否则ProcessInformation 将被置为0。

ZwQueryInformationProcess(

IN HANDLE ProcessHandle,

IN PROCESSINFOCLASS ProcessInformationClass,

OUT PVOID ProcessInformation,

IN ULONG ProcessInformationLength,

OUT PULONG ReturnLength OPTIONAL

);

.386

.model flat,stdcall

option casemap:none

include windows.inc

include user32.inc

includelib user32.lib

include kernel32.inc

includelib kernel32.lib

include ntdll.inc ;这两个

includelib ntdll.lib

.data?

dwResult dd ?

.const

szCaption db '检测结果',0

szFound db '检测到调试器',0

szNotFound db '没有调试器',0

.code

start:

invoke GetCurrentProcessId

invoke OpenProcess,PROCESS_ALL_ACCESS,NULL,eax

invoke ZwQueryInformationProcess,eax,7,offset dwResult,4,NULL

cmp dwResult,0

jne debugger_found

invoke MessageBox,NULL,addr szNotFound,addr szCaption,MB_OK

jmp exit

debugger_found: invoke MessageBox,NULL,addr szFound,addr szCaption,MB_OK

exit: invoke ExitProcess,NULL

end start

9.SetUnhandledExceptionFilter/ Debugger Interrupts

调试器中步过INT3和INT1指令的时候,由于调试器通常会处理这些调试中断,所以设置的异常处理例程默认情况下不会被调用,Debugger Interrupts就利用了这个事实。这样我们可以在异常处理例程中设置标志,通过INT指令后如果这些标志没有被设置则意味着进程正在被调试。另外,kernel32!DebugBreak()内部是调用了INT3来实现的,有些壳也会使用这个API。注意测试时,在异常处理里取消选中INT3 breaks 和Singal-step break

.386

.model flat,stdcall

option casemap:none

include windows.inc

include user32.inc

includelibuser32.lib

include kernel32.inc

includelibkernel32.lib

.data

lpOldHandler dd ?

.const

szCaption db '检测结果',0

szFound db '检测到调试器',0

szNotFound db '没有调试器',0

.code

; Exception Handler 异常处理程序

_Handler proc _lpExceptionPoint

pushad

mov esi,_lpExceptionPoint

assume esi:ptr EXCEPTION_POINTERS

mov edi,[esi].ContextRecord

assume edi:ptr CONTEXT

mov [edi].regEax,0FFFFFFFFH ;设置EAX

mov [edi].regEip,offset SafePlace

assume esi:nothing,edi:nothing

popad

mov eax,EXCEPTION_CONTINUE_EXECUTION

ret

_Handler endp

start:

invoke SetUnhandledExceptionFilter,addr _Handler

mov lpOldHandler,eax

xor e ax,eax ;清零eax

int 3 ;产生异常,然后_Handler被调用

SafePlace:

test eax,eax

je debugger_found

invoke MessageBox,NULL,addr szNotFound,addr szCaption,MB_OK

jmp exit

debugger_found: invoke MessageBox,NULL,addr szFound,addr szCaption,MB_OK exit: invoke SetUnhandledExceptionFilter,lpOldHandler ;取消异常处理函数

invoke ExitProcess,NULL

end start

由于调试中断而导致执行停止时,在OllyDbg中识别出异常处理例程(通过视图->SEH链)并下断点,然后Shift+F9将调试中

断/异常传递给异常处理例程,最终

异常处理例程中的断点会断下来,

这时就可以跟踪了。

另一个方法是允许调试中断自动地

传递给异常处理例程。在OllyDbg

中可以通过选项-> 调试选项->

异常-> 忽略下列异常选项卡中钩

选"INT3中断"和"单步中断"复选框

来完成设置。

10.T rap Flag单步标志异常

TF=1的时候,会触发单步异常。该方法属于异常处理,不过比较特殊:未修改的OD无论是F9还是F8都不能处理异常,有插件的OD在F9时能正确处理,F8时不能正确处理。

.386

.model flat,stdcall

option casemap:none

include windows.inc

include user32.inc

includelib user32.lib

include kernel32.inc

includelib kernel32.lib

.data

lpOldHandler dd ?

szCaption db '检测结果',0

szFound db '程序未收到异常,说明有调试器',0

szNotFound db '程序处理了异常而到达安全位置,没有调试器',0

.code

_Handler proc _lpExceptionPoint

pushad

mov esi,_lpExceptionPoint

assume esi:ptr EXCEPTION_POINTERS

mov edi,[esi].ContextRecord

assume edi:ptr CONTEXT

mov [edi].regEip,offset SafePlace

assume esi:nothing,edi:nothing

popad

mov eax,EXCEPTION_CONTINUE_EXECUTION

ret

_Handler endp

start:

invoke SetUnhandledExceptionFilter,addr _Handler

mov lpOldHandler,eax

pushfd ;push eflags

or dword ptr [esp],100h ;TF=1

popfd

nop

jmp die

SafePlace:

invoke MessageBox,NULL,addr szNotFound,addr szCaption,MB_OK

jmp exit

die: invoke MessageBox,NULL,addr szFound,addr szCaption,MB_OK

exit: invokeSetUnhandledExceptionFilter,lpOldHandler ;取消异常处理函数

invoke ExitProcess,NULL

end start

11.S eDebugPrivilege 进程权限

默认情况下进程没有SeDebugPrivilege权限,调试时,会从调试器继承这个权限,可以通过打开CSRSS.EXE进程间接地使用SeDebugPrivilege确定进程是否被调试。注意默认情况下这一权限仅仅授予了Administrators组的成员。可以使用ntdll!CsrGetProcessId() API获取CSRSS.EXE的PID,也可以通过枚举进程来得到CSRSS.EXE的PID。

实例测试中,OD载入后,第一次不能正确检测,第二次可以,不知为何。

.386

.model flat,stdcall

option casemap:none

include windows.inc

include user32.inc

include kernel32.inc

include ntdll.inc

includelib user32.lib

includelib kernel32.lib

includelib ntdll.lib

.const

szCaption db '检测结果',0

szFound db '检测到调试器',0

szNotFound db '没有调试器',0

.code

start:

invoke CsrGetProcessId ;ntdll!CsrGetProcessId获取CSRSS.EXE的PID

invoke OpenProcess,PROCESS_QUERY_INFORMATION,NULL,eax

test eax,eax

jnz debugger_found

invoke MessageBox,NULL,addr szNotFound,addr szCaption,MB_OK

jmp exit

debugger_found: invoke MessageBox,NULL,addr szFound,addr szCaption,MB_OK

exit: invoke ExitProcess,NULL

end start

12.D ebugObject: NtQueryObject()

未完成,期待做过这个测试的朋友指点一下!

除了识别进程是否被调试之外,其他的调试器检测技术牵涉到检查系统当中是否有调试器正在运行。逆向论坛中讨论的一个有趣的方法就是检查DebugObject类型内核对象的数量。这种方法之所以有效是因为每当一个应用程序被调试的时候,将会为调试对话在内核中创建一

个DebugObject类型的对象。

DebugObject的数量可以通过ntdll!NtQueryObject()检索所有对象类型的信息而获得。NtQueryObject接受5个参数,为了查询所有的对象类型,ObjectHandle参数被设为NULL,ObjectInformationClass参数设为ObjectAllTypeInformation(3):

NTSTATUS NTAPI NtQueryObject(

IN HANDLE ObjectHandle,

IN OBJECT_INFORMATION_CLASS ObjectInformationClass,

OUT PVOID ObjectInformation,

IN ULONG Length,

OUT PULONG ResultLength

)

这个API返回一个OBJECT_ALL_INFORMA TION结构,其中NumberOfObjectsTypes成员为所有的对象类型在ObjectTypeInformation数组中的计数:

typedef struct _OBJECT_ALL_INFORMA TION{

ULONG NumberOfObjectsTypes;

OBJECT_TYPE_INFORMA TION ObjectTypeInformation[1];

}

检测例程将遍历拥有如下结构的ObjectTypeInformation数组:

typedef struct _OBJECT_TYPE_INFORMA TION{

[00] UNICODE_STRING TypeName;

[08] ULONG TotalNumberofHandles;

[0C] ULONG TotalNumberofObjects;

...more fields...

}

TypeName成员与UNICODE字符串"DebugObject"比较,然后检查TotalNumberofObjects 或TotalNumberofHandles 是否为非0值。

13.O llyDbg:Guard Pages

这个检查是针对OllyDbg的,因为它和OllyDbg的内存访问/写入断点特性相关。

除了硬件断点和软件断点外,OllyDbg允许设置一个内存访问/写入断点,这种类型的断点是通过页面保护来实现的。简单地说,页面保护提供了当应用程序的某块内存被访问时获得通知这样一个途径。

页面保护是通过PAGE_GUARD页面保护修改符来设置的,如果访问的内存地址是受保护页面的一部分,将会产生一个STA TUS_GUARD_PAGE_VIOLATION(0x80000001)异常。如果进程被OllyDbg调试并且受保护的页面被访问,将不会抛出异常,访问将会被当作内存断点来处理,而壳正好利用了这一点。

示例

下面的示例代码中,将会分配一段内存,并将待执行的代码保存在分配的内存中,然后启用页面的PAGE_GUARD属性。接着初始化标设符EAX为0,然后通过执行内存中的代码来引发STATUS_GUARD_PAGE_VIOLATION异常。如果代码在OllyDbg中被调试,因为异常处理例程不会被调用所以标设符将不会改变。

对策

由于页面保护引发一个异常,逆向分析人员可以故意引发一个异常,这样异常处理例程将会

被调用。在示例中,逆向分析人员可以用INT3指令替换掉RETN指令,一旦INT3指令被执行,Shift+F9强制调试器执行异常处理代码。这样当异常处理例程调用后,EAX将被设为正确的值,然后RETN指令将会被执行。

如果异常处理例程里检查异常是否真地是STA TUS_GUARD_PAGE_VIOLATION,逆向分析人员可以在异常处理例程中下断点然后修改传入的ExceptionRecord参数,具体来说就是ExceptionCode,手工将ExceptionCode设为STATUS_GUARD_PAGE_VIOLATION即可。实例:

.386

.model flat,stdcall

option casemap:none

include windows.inc

include user32.inc

includelib user32.lib

include kernel32.inc

includelib kernel32.lib

.data

lpOldHandler dd ?

dwOldType dd ?

.const

szCaption db '检测结果',0

szFound db '检测到调试器',0

szNotFound db '没有调试器',0

.code

_Handler proc _lpExceptionPoint

pushad

mov esi,_lpExceptionPoint

assume esi:ptr EXCEPTION_POINTERS

mov edi,[esi].ContextRecord

assume edi:ptr CONTEXT

mov [edi].regEax,0FFFFFFFFH ;检测标志

mov [edi].regEip,offset SafePlace

assume esi:nothing,edi:nothing

popad

mov eax,EXCEPTION_CONTINUE_EXECUTION

ret

_Handler endp

start:

invoke SetUnhandledExceptionFilter,addr _Handler

mov lpOldHandler,eax

invoke VirtualAlloc,NULL,1000H,MEM_COMMIT,PAGE_READWRITE ;分配内存

push eax

mov byte ptr [eax],0C3H ;写一个RETN 到保留内存,以便下面的调用

invoke VirtualProtect,eax,1000h,PAGE_EXECUTE_READ or PAGE_GUARD,addr dwOldType

xor eax,eax ;检测标志

pop ecx

call ecx ;执行保留内存代码,触发异常

SafePlace:

test eax,eax ;检测标志

je debugger_found

invoke MessageBox,NULL,addr szNotFound,addr szCaption,MB_OK

jmp exit

debugger_found: invoke MessageBox,NULL,addr szFound,addr szCaption,MB_OK

exit: invoke VirtualFree,ecx,1000H,MEM_DECOMMIT

invoke SetUnhandledExceptionFilter,lpOldHandler ;取消异常处理函数

invoke ExitProcess,NULL

end start

14.S oftware Breakpoint Detection

软件断点是通过修改目标地址代码为0xCC(INT3/Breakpoint Interrupt)来设置的断点。通过在受保护的代码段和(或)API函数中扫描字节0xCC来识别软件断点。这里以普通断点和函数断点分别举例。

(1)实例一普通断点

注意:在被保护的代码区域下INT3断点进行测试

.386

.model flat,stdcall

option casemap:none

include windows.inc

include user32.inc

includelibuser32.lib

include kernel32.inc

includelib kernel32.lib

.const

szCaption db '检测结果',0

szFound db '检测到调试器',0

szNotFound db '没有调试器',0

.code

start: jmp CodeEnd

CodeStart: mov eax,ecx ;被保护的程序段

nop

push eax

push ecx

pop ecx

pop eax

CodeEnd:

cld ;检测代码开始

mov edi,offset CodeStart

mov ecx,offset CodeEnd - offset CodeStart

mov al,0CCH

repne scasb

jz debugger_found

invoke MessageBox,NULL,addr szNotFound,addr szCaption,MB_OK

jmp exit

debugger_found: invoke MessageBox,NULL,addr szFound,addr szCaption,MB_OK exit: invoke ExitProcess,NULL

end start

(2)实例二函数断点bp

利用GetProcAddress函数获取API的地址

注意:检测时,BP MessageBoxA

.386

.model flat,stdcall

option casemap:none

include windows.inc

include user32.inc

includelib user32.lib

include kernel32.inc

includelib kernel32.lib

.const

szKernelDll db 'user32.dll',0

szAPIMessbox db 'MessageBoxA',0

szCaption db '结果',0

szFound db '发现API断点',0

szNotFound db '未发现断点',0

.code

start:

invoke GetModuleHandle,addr szKernelDll

invoke GetProcAddress,eax,addr szAPIMessbox ;API地址

cld ;检测代码开始

mov edi,eax ;API开始位置

mov ecx,100H ;检测100字节

mov al,0CCH ;CC

repne scasb

jz debugger_found

invoke MessageBox,NULL,addr szNotFound,addr szCaption,MB_OK jmp exit

debugger_found: invoke MessageBox,NULL,addr szFound,addr szCaption,MB_OK exit: invoke ExitProcess,NULL

热控专业工作总结

热控专业工作总 2014 年至今,维护部热控专业在公司和部门的正确领导和大力支持下,按照部门既定的工作思路与工作重点,通过全体热控维护人员的辛苦努力,克服人员少、任务重的难题,加强消缺力度,认真组织#1、#2 机组小修工作,热控专业的各项工作又上了一个新台阶。热工专业始终坚持“安全第一,预防为主”的生产方针,做好春检、秋检、安评工作,以两台机组小修为重点,以“五型班组”建设为载体,进一步强化了专业内部管理,努力提高专业人员安全、技术技能。为更好地完成2014 年全年的各项任务,奠定了好的基础。现将2014 年维护部热控专业主要工作总结如下: 一、安全生产方面安全管理工作是一项常抓不懈的工作,在2014 年,虽然热工专业人员少、任务重。但热工专业始终坚持“安全第一、以人为本”的思想,安全生产高于一切,安全生产是重中之重,让本专业员工意识到,搞好安全工作是我们自身的需要。在工作过程中,坚持安排工作的同时必须交待安全措施,并且注重安全措施的落实,在确保人身安全和设备安全的前提下,进行设备检修和维护工作。因此,在2014 年度,热工专业未发生人身轻伤及以上事故,未发生因人员误操作、检修质量、设备损坏而造成一类障碍及以上事故的发生,安全学习活动47 次,办理热力工作票176张,合格176张,合格率100%。

加强对重要设备检修的监督管理 在2014 年中,为确保不因人为原因引起的设备损坏及保护误动,我专业对重要设备的检修都制定了严格的规定,在重要保护及设备系统上、在高空作业的地方进行检修工作,专业管理人员必须全程参与监护,从而确保了保护动作的正确性和设备检修的可靠性。并且在热工逻辑检查、投退及电子间和工程师站进出的工作上也制定了严格的制度,做到有据可查,有证可依。 严格工作过程中“工作票”的管理,同时加强危险点分析在检修工作中的作用 在2014 年,本专业长期展开了工作票制度专项学习活动,切合实际,让所有工作签发人、负责人进一步熟悉和掌握工作票的办理。在工作票管理方面,我们加强了“工作票”的全程管理,确保“工作票”在检修工作中的实 施;为解决检修过程中存在的安全隐患, 我们完善了危险点分析内容,详细分析各项工作过程可能出现的对人身伤害的危险点和控制措施。通过两方面的措施,一是保证了检修过程中机组的安全运行,同时也保证了检修过程中检修人员和设备的安全。严格执行工作票制度,加强技术培训,以技术来保安全;加强工作负责人的培训,保证工作票中所列的安全措施正确完善;加大不合格工作票的管理力度,完全杜绝了代签工作票现象,使工作票从填写、签发、许可办理、到工作终结的全过程管理都按规范的管理制度进行,从而确保检修工作的安全进行。 3 、加强班组员工对安规和相关规程、制度的学习,让班组员工在检修过程

现代分析测试技术论文

西安科技大学研究生考试试卷 学号______ ________ 研究生姓名______ ________ 班级______ ________ 考试科目______ ________ 考试日期________ ______ 课程学时_______ _______ 开(闭)卷________ ______

现代分析测试技术在煤热解催化剂制备中 的应用 摘要:现代分析测试技术在化工生产的研究中占据着重要的地位,本文主要讨论X射线荧光分析(XRF)、X射线衍射分析(XRD)、扫描电子显微镜(SEM)在制备煤热解催化剂中的应用。 关键词:XRF、XRD、SEM、煤热解催化剂、应用 Abstract: the modern analysis determination technique in the study of chemical production occupies the important position, this article focuses on the application of X-ray fluorescence analysis (XRF), X-ray diffraction analysis (XRD) and scanning electron microscope (SEM) in the preparation of the coal pyrolysis catalyst. Key words:XRF, XRD, SEM, the coal pyrolysis catalyst, application 1、引言 现代分析测试技术是化学、物理等多种学科交叉发展、前沿性应用以及合而为一的综合性科学研究手段,主要研究物质组成、状态和结构,也是其它学科获取相关化学信息的科学研究手段与途径,因此想要获得准确有效的实验数据就必须能够正确的运用各种分析测试 手段,对化工类学生更是如此。本次论文主要对煤热解催化剂制备过程中用到的分析测试技术手段进行论述。在煤热解催化剂制备中用到的分析测试手段主要有X射线荧光分析、X射线衍射分析、扫描电子显

割灌机的组装和调试方法

割灌机的组装和调试方法 概述 割灌机,又称打草机,其工作原理比较简单:由小型汽油机输出扭矩,经传动轴传递驱使刀片进行旋转,进而完成割草作业。 割灌机常用来割除林中的灌木、杂草以利林木的生长和行人的走动。城市绿化的面积的扩大,割灌机也用来进行一些小草坪的修剪、树根周围等草坪修剪机达不到的地方的草坪修剪。 侧挂式割灌机的组装方法 侧挂式割灌机具有结构简单,重量轻,维护方便的特点。下面介绍下侧挂式割灌机的具体组装步骤: 1、将传动杆离合碟插入发动机飞轮罩的孔内,用4付M6×20内六角螺钉组合(含平垫、弹簧)拧紧。 2、安装操纵手把,用4付M5×25内六角螺钉组合拧紧。 操纵手把在铝管上的位置可边试边调整,直到操作感到舒适为止。 3、安装安全挡板,用2付M5×16盘头螺钉组合拧紧。 4、把电路开关移动到断开为止。 注意,割灌机在闲置时,刀片不安装,待工作时再安装。 背负式割灌机与侧挂式割灌机的安装方法基本一样,软轴连接时注意方向即可。 割灌机的调试方法 1.卸下火花塞,向气缸中倒入3-5ml二冲程汽油机专用机油,再将火花塞安上,拉动起动手把5-6次。 2.燃油配比。二冲程汽油机所用燃油由汽油和二冲程汽油机专用机油按一定比例混合而成。燃油混合比(按容积计算),新机前10个小时按20:1,正常使用为25:1。 3.调试。调试前应检查所有紧固件是否都已拧紧,确认后再进行下述程序: a、加入适量燃油。 b、打开电路开关,按压泵油球至燃油经回油管(透明)进入燃油箱,全关阻风门,油

门手把推到全开位置。快速拉动起动手柄5-6次。 将阻风门开启1/3-1/2,快速拉动起动手柄就可顺利起动发动机。 c、发动机应在怠速下运转3-5分钟,再在中速运转2-3分钟,按下熄火开关,发动机熄火,调试程序完毕。 割灌机的首次使用,需要磨合:怠速(或低速)运转2-3h。 4.安装工作部件 割灌机根据不同作业要求,可以安装打草头或(多齿)刀片,由左旋螺母固定。 工作部件安装完毕后,检查一下全机的紧固件是否已拧紧,确认后即可进行割草作业。 ——奥斯顿园林机械

3、反渗透法设备安装及调试施工工艺工法

3、反渗透法设备安装 及调试施工工艺工法-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN

反渗透法海水淡化设备安装及调试工艺工法 1 前言 工艺工法概况 水是生命的源泉,是人类宝贵的、不可替代的自然资源,也是社会和经济发展的命脉。水资源的匮乏和日益严重的水污染已成为制约社会进步和经济发展的瓶颈,解决这一难题,对我国可持续发展是非常迫切的和极其重要的。除水资源的科学管理和优化配置之外,充分发挥高新科技手段在水再利用中的作用也是十分关键的。 海水淡化是解决我国水资源匮乏的一个重要手段,至今海水淡化方法已经出现了数十种,主要包括蒸馏法、膜法、电渗析法和冷冻法等。其中膜法中的反渗透(SWRO)方法,是目前发展最快,也是投资最低,能耗最省,成本最低的淡化技术。本工法主要以反渗透法为主要内容。 工艺原理 反渗透法即是一种以压力差为驱动力的膜分离淡化过程,反渗透海水淡化系统可分为三大系统,即海水预处理系统、海水反渗透系统、淡水反渗透系统。海水在进入反渗透系统前需进行预处理,预处理设施主要包括絮凝剂加药装置、自清洗过滤器、超滤装置、氧化剂加药装置、超滤清洗装置、酸加药装置及连接管道、仪表等,预处理系统主要是去除水中的悬浮物、胶体、色度、浊度、有机物等妨碍后续反渗透运行的杂质;海水反渗透系统承担了主要的脱盐任务,反渗透系统包括海水增压泵、阻垢剂加药装置、还原剂加药装置、海水保安过滤器、海水高压泵、海水反渗透装置、能量回收装置、反渗透清洗装置及连接管道、仪表等;淡水反渗透系统用以进一步除盐,以便给后续离子交换系统提供合格的淡水,系统包括一级淡水泵、碱加药装置、淡水保安过滤器、淡水高压泵、淡水反渗透装置及连接管道、仪表等。 2 工艺工法特点

热控专业工作总结

2013年热控工作总结及2014年工作计划 时光茬冉,岁月如梭,转眼间2013年马上过去了,我来到九江焦化发电三厂已经4年了,通过这几年学习和工作,使我自身素质得到了很大的提高。在这年终岁首之际,回首2013年工作,虽然没有多少可圈可点的成绩,但也从一些工作中得到了很多考验和磨砺,为了总结经验、发扬成绩、克服不足,现将2013年热控专业的工作做如下简要回顾和总结: 一、安全管理和专业管理安全管理工作是一项常抓不懈的工作,在2013年的工作中,我就要求自己从自身做起,要坚持“安全第一、以人为本”的思想,要严格遵守《安规》的各项规定,严格执行“两票三制”。安全生产高于一切,安全生产是重中之重,搞好安全工作也是我们自身的需要。在工作过程中,坚持在安排工作的同时必须交待安全措施,并且注重安全措施的落实,在确保人身安全和设备安全的前提下,进行设备的检修和维护工作。因此,在2013年度,热控专业未发生任何人身重伤、人身轻伤、设备损坏等事故的发生。为此我们也做了以下工作: 1)加强对重要设备检修的监督管理。为确保不因人为原因引起的设备损坏及保护误动,我专业对重要设备的检修都制定了严格的规定,在重要保护及设备系统上、在高空作业的地方进行检修工作,我本人必须全程参与监护;对于涉及联锁保护和ETS、MFT试验项目,

必须在现场进行“三级”验收,从而确保了保护动作的正确性和设备检修的可靠性。 2)严格检修工作过程中“工作票”的管理;为解决检修过程中存在的安全隐患,我们在工作票中详细罗列出各项工作过程可能出现的对人身伤害及设备损坏的可能性和控制措施。通过这些措施,一是保证了检修过程中机组的安全运行,同时也保证了检修过程中检修人员和设备的安全。严格执行工作票制度,加强业务学习,以技术来保安全;通过参加公司安保部组织的工作票“三种人”的培训,保证工作票中所列的安全措施正确完善;杜绝了以往涂改、代签工作票现象,使工作票从填写、签发、许可办理、工作终结到办理退票手续的全过程管理都按规范的管理制度进行,从而确保检修工作的安全进行。 3)加强对异常和未遂分析的力度,针对机组热控设备异常和未遂事件,认真进行分析,及时填写异常的报告,按照“三不放过”的原则,详细分析事件产生的原因,并通过与相关专业讨论,提出切实可行整改的方法,报告给安全专工和相关公司领导审核。待有机会立即进行整改。 4)加强对现场设备缺陷的管理和处理;①每天早上检查运行人员提出的本专业缺陷,并及时进行处理,确保Ⅲ类设备缺陷消除不能无故超过8小时;②对于涉及到停机停炉、重要保护的缺陷,管理人员必须全程参与,进行有效的监护,

材料现代分析方法结课论文

西安理工大学 结 课 论 文 课程名称:材料现代分析方法 代课教师:卢正欣 姓名:李晨薇 专业:材料加工工程 学号:1208050399

目录 摘要 (1) 第1章扫描电子显微镜构造及原理 (2) 1.1构造 (2) 1.2工作原理 (2) 第2章材料的组织形貌观察 (4) 2.1断口分析 (4) 2.2镀层表面形貌分析和深度检测 (4) 2.3微区化学成分分析 (4) 第3章 SEM的缺陷 (6) 第4章结论 (7)

扫描电子显微镜的原理及其在材料上的应用 摘要 20世纪60年代中期扫描电子显微镜(SEM)的出现,使人类观察微小物质的能力有了质的飞跃。相对于光学显微镜,SEM在分辨率、景深及微分析等方面具有巨大优越性,因而发展迅速,应用广泛。随着科学技术的发展,使SEM 的性能不断提高,使用的范围也逐渐扩大。 近年来,随着现代科学技术的不断发展,相继开发了环境扫描电子显微镜(ESEM)、扫描隧道显微镜(STM)、原子力显微镜(AFM)等其他一些新的电子显微技术,这些技术的出现,显示了电子显微技术近年来自身得到了巨大的发展,尤其是大大扩展了电子显微技术的适用范围和应用领域。在材料科学中的应用使材料科学研究得到了快速发展,取得了许多新的研究成果。

第1章扫描电子显微镜构造及原理 1.1构造 扫描电子显微镜由以下基本部分组成(如 图1-1所示):产生电子束的柱形镜筒,电子束 与样品发生相互作用的样品室,检测样品室所 产生信号的探头,以及将信号变图像的数据处 理与显示系统。 镜筒顶端电子枪发射出的电子由静电场 引导,沿镜筒向下加速。在镜筒中,通过一系 列电磁透镜将电子束聚焦并射向样品。靠近镜 筒底部,在样品表面上方,扫描线圈使电子束 以光栅扫描方式偏转。最后一级电磁透镜把电 子束聚焦成一个尽可能小的斑点射入样品,从而激发出各种成像信号,其强弱随样品表面的形貌和组成元素不同而变化。仪器(具有数字成像能力)将探头送来的信号加以处理并送至显示屏,即可显示出样品表面各点图像。图1-1 扫描电子显微镜结构原理框图 1.2工作原理 扫描电镜是在加速高压作用下将电子枪发射的电子经过多级电磁透镜汇集成细小的电子束。在试样表面进行扫描,激发出各种信息,通过这些信息的接收、放大和显示成像,以便对试样表面进行分析。入射电子与试样相互作用产生如表一所示的信息种类。 表一扫描电镜中主要信号及其功能 这些信息的二维强度分布随试样表面的 特征面变(这些特征有表面形貌、成分、晶体 取向、电磁特性等),是将各种探测器收集到 的信息按顺序、成比率地转换成视频信号,在 传送到同步扫描的显像管并调制其亮度,就可

电子产品装配与调试实训方案

河南省息县职业教育中心 电子产品装配与调试实训方案 实训班级:一(8)班 实训时间: 5.23 ~ 6.15 指导老师:

河南省息县职业教育中心 电子产品装配与调试实训方案 一、实训目的 1.学习并掌握超外差收音机的工作原理 2.了解常用电子器件的类别、型号、规格、性能及其使用范围,能查阅有关 的电子器件图书。能够正确识别和选用常用的电子器件。 3.熟悉手工焊锡的常用工具的使用及其维护与修理,基本掌握手工电烙铁的 焊接技术。 4.了解电子产品的焊接、调试与维修方法。初步学习调试电子产品的方法, 提高动手能力。本方案旨在提高学生在专业知识应用中理论联系实际,观察问题,分析问题,以及解决问题的能力和方法,进一步提高其专业实践技能,为顺利完成专业学习打下良好的基础。 二、实验器材 1.电烙铁、焊锡丝、支架 2.螺丝刀、镊子、钳子等必备工具 3.万用表 4.中夏牌S66E型袖珍收音机实验套件、声控灯套件、贴片收音机套件、 自动寻迹小车套件 5.五号电池两节 三、实训地点 手机主板维修实训室 四、实训方式 本次实训采取老师示范,学生单独进行练习。 五、实训项目及时间安排

河南省息县职业教育中心 考虑到专业课时比较多、全天制实训师生容易疲惫,本次实训时间全部为专业课时间,这样学生实训既不容易疲惫,又不影响素质课的整体进度!

河南省息县职业教育中心 实训项目一:声控灯工作原理及装配工艺要求 声光控延时开关原理与制作 用声光控延时开关代替住宅小区的楼道上的开关,只有在天黑以后,当有人走过楼梯通道,发出脚步声或其它声音时,楼道灯会自动点亮,提供照明,当人们进入家门或走出公寓,楼道灯延时几分钟后会自动熄灭。在白天,即使有声音,楼道灯也不会亮,可以达到节能的目的。声光控延时开关不仅适用于住宅区的楼道,而且也适用于工厂、办公楼、教学楼等公共场所,它具有体积小、外形美观、制作容易、工作可靠等优点,适合广大电子爱好者自制。 一、电路的工作原理 声光控延时开关的电路原理图见图1所示。电路中的主要元器件是使用了数字集成电路CD4011,其内部含有4个独立的与非门D1~D4,使电路结构简单,工作可靠性高。 顾名思义,声光控延时开关就是用声音来控制开关的“开启",若干分钟后延时开关“自动关闭"。因此,整个电路的功能就是将声音信号处理后,变为电子开关的开动作。明

反渗透调试报告

调试步骤一、调试前的准备工作 序号检查内容要求标准 核 实 备注 1反渗透进水是否已做分 析。 水质报告结果符合反 渗透进水要求. 2工艺系统调试用的水、电、 气系统具备连续供应能 力,排水沟是否已具备排 放条件。 水、电、气系统具备连 续供应能力。排水沟已 具备排放条件,排水顺 畅,并符合设计要求。 3与反渗透相关的水箱是否 已经清洗干净并已测量截 面积(原水箱、浓水箱、反 渗透产水箱)。 水箱内无杂物,并已经 清洗干净;各水箱截面 积已测量,并准确无 误。 4检查所有的配管是否按设 计图纸要求连接完毕,管 道支架安装是否牢固。 符合设计要求,管道支 架安装牢固。 5按PID图检查所有配管及 装置上的压力表、液位开 关、流量表、电导表、SDI 仪、温度等仪表数量是否 与设计相符。 符合设计要求。 6MCC柜、PLC柜及就地控制 柜是否已查线、校线完毕, 是否可以上电。 符合设计要求,上电后 仪表有正常显示。 7反渗透仪表控制箱所用气 源管路是否已吹扫干净。 用干净的餐巾纸距离 吹扫出口5CM,纸巾表 面无杂质。 8所有电机是否已试运转。电机试运转无杂音,电流及温升正常 9加药装置配管是否已按设 计要求连接完毕,配管固 定支架安装牢固。 符合设计要求,固定支 架安装牢固。 10计量箱已吹洗,清除杂质; 计量泵已经校核,无异常。 计量泵能正常出力,能 满足设计要求,加药管 线无泄漏。

二、手动操作步骤 1、冲洗机械过滤器使出水达到RO 进水要求。 2、用保安过滤器出水冲洗RO 装置各压力容器及管道。 3、将RO 膜按运行水流方向顺序排列,并逐一装进各压力容器内(在装的过程中使用润滑剂,以免损伤各密封圈) 4、闭各压力容器进出口,并使装置复位待用。 6、在预处理装置投入运行的状态下,开RO 装置浓水排放阀、浓水控制阀、产水排放阀、进水阀、高压泵出口控制阀,低压冲洗反渗透装置,待装置产排浓排出水泡沫明显减少后,停预处理并关闭反渗透进水阀、浓水排放阀、浓水调节阀、产水排放阀,让反渗透膜浸泡8小时以上充分接触原水,避免膜出厂时的半干状态而在调试时影响膜性能。 7、微开高压泵出口控制阀,半开浓水控制阀。 8、关闭浓水排放阀、进水慢开阀,延时10秒开启高压泵,同时启阻垢剂计量泵。 9、开RO 装置进水阀(调节其完全打开时间在15秒左右),缓慢调节高压泵出口控制阀的开度,使RO 进水压力逐步上升,刚开始不宜超过 1.0MPa 。 10、检查RO 装置及管道有无泄漏,各仪表阀门是否正常,如果正常则可以缓慢调节浓水控制阀,使产水回收率逐渐上升,刚开始不宜马上控制在75%,应先控制在60-70%运行一段时间再把回收率提高到75%(让膜有个充分适应的过程) 11、运行正常后,记录RO 装置各运行参数,再次标定阻垢剂计量泵及相关计量泵,检查各加药量是否符合设计要求。 12、检测产品水电导率,符合要求时先开启产品水出水阀,再关闭产水排放阀。 13、用RO 产水冲洗中间水箱。 三、调试过程应注意事项: 1、调试过程中进水压力不得大于2.15MPa, 且只限于对装置进行耐压试验。 2、如进水温度高于、低于25℃时, 应根据水温--产水量曲线进行修正, 控制回收率为 75 %。 3、装置连续运行4小时后,脱盐率不能达到设计脱除率应逐一检查装置中每个组件的脱盐率, 确定产生故障的组件后加以更换元件。 11 所有气动阀是否能正常开关,阀门开关的快慢程度 是否已调整。 气动阀能正常开关,阀门开关的快慢程度符合工艺要求 12 工艺管道是否已经试压,无泄漏。 符合设计要求,管道无泄漏。 检查 人 甲方: 日 期 乙方: 日 期 说明:经核实正常时打勾(√),异常时打叉(×),备注栏注明原因并 处理或汇报公司

现代测试技术应用_论文

现代测试技术在液压缸设计中的应用 摘要:随着自动化技术的高速发展及其对测试技术要求的不断提高,从而使测试技术作为一种新产品开发的重要手段,可以有效缩短新产品研发周期,提高产品研发成功率。本文以液压缸缓冲设计为例,介绍测试技术在液压缸中的应用。结果表明,采用测试技术能够直观、量化缓冲性能指标及结果,并能进行改进前后性能的对比,缩短了元件满足主机性能需要的试制周期。最后,通过对工程机械的研发过程的总结,提出现代测试技术的主要任务及其发展方向。 关键词:测试技术,液压缸,智能化,集成化,网络化 1 引言 我国工程机械主机技术仍落后于发达国家,为其配套的关键液压元件是制约其发展的主要因素,尽快缩短与国外技术的差距,已在行业形成共识。 随着自动化技术的高速发展,仪器及检测技术已成为促进当代生产的主流环节,同时也是生产过程自动化和经营管理现代化的基础,没有性能好、精度高、质量可靠的仪器测试到各种有关的信息,要实现高水平的自动化就是一句空话。因此,借鉴测试技术与传感技术在工程技术的成功应用,在液压件开发领域中引入测试技术的理念,将大幅度提高国产液压件的发展速度。 液压缸作为主要的执行元件,在某些主机上对其缓冲性能要求越来越高。利用较好的缓冲结构延长液压缸的寿命越来越受到关注。本文介绍利用测试与传感技术建立计算机辅助测试系统,如何研究液压缸缓冲结构的设计和定型。利用测试结果,调节液压缸缓冲参数和节流孔参数。通过测试不同工况下缓冲腔工作压力及行程等参数,实现仿真设计,确保样机性能验证结果的可信度。 2 测试技术及传感技术 在传统的产品开发模式中,进行产品的改进是被动的,是由主机厂使用过程中发现问题、提出问题并反馈,得到信息后再进行设计改进的。鉴于传统产品开发模式耗费开发周期时间长,被动改进,我们提出了新型产品开发模式如图1。 图1 新型产品开发模式 结合自身的需求,我们开发出一套适用于液压缸缓冲结构研发过程中的计算机辅助测试系统。图2为计算机辅助测试系统的构成示意图,由液压系统传感器和数据采集系统组成,被测液压缸为带缓冲的液压缸,在主机上进行规定动作试验,采用多功能数据采集模块及数据采集软件,完成两腔压力( 缓冲压力或工作压力) 位移-时间的采集和测量。

电子产品装配与调试技能大赛

电子产品装配与调试技能大赛规则 (一)选手应完成的工作任务 选手在规定时间内,根据比赛时发给的工作任务书、电子产品原理图、元器件表、主要元器件及电路功能说明等文件,使用设备和工具,独立完成以下工作任务: 1.单元电子电路模块及电子元器件选择。根据工作任务书设定的电子产品和功能电路,从赛场提供的单元电子电路模块及电子元器件中识别、选择、检测电子元器件及功能部件; 2.搭建电路。使用单元电子电路模块搭建工作任务书给定功能的电子产品,并完成有关参数的调试和性能测试; 3.电子产品装配及检测。按照工作任务书中电子产品和功能电路原理图,在赛场提供的电路板(PCB板)上焊接及安装电子元器件及功能部件,完成电子产品装配(其中部分元器件的封装采用贴片焊接形式);使用设备完成电路检测、有关参数的调试、性能测试; 4.绘制电路原理图及PCB板图。采用中华人民共和国国家标准GB/74728-2005(2008)(IEC 60617data base)中规定的图形符号〔Protel DXP 2004提供的图形符号与GB/74728-2005(2008)(IEC 60617data base)不一致时,选手应自制符合国家标准的图形符号〕,根据工作任务书给出的电路原理图,按要求在Protel DXP 2004软件环境中绘制原理图、有关元件的PCB封装和PCB板图; 5.书面解答与上述实际操作相关的理论知识和工作过程知识。 (二)选手比赛用时 完成比赛规定的全部工作任务的时间为四个半小时。 (三)赛场提供的设备和器材 1.主要设备 亚龙YL-135型电子工艺实训考核装置,主要配置有:

(1)YDS996A函数信号发生器; (2)20MHz双踪示波器,型号:GOS-620; (3)数字毫伏表,型号:DF1931; (4)数字频率计,型号:GFC-8010H; (5)计算机,安装Protel DXP 2004软件中文版; (6)YL-290电工电子创新实训模块。 2.器材 根据比赛完成工作任务需要,赛场提供下列器材: (1)工作任务书设定电子产品和功能电路所需元器件和指定电路的单元电子电路模块; (2)电路板(PCB板); (3)连接导线,焊锡、助焊剂等。 (四)选手自带工具 1.连接电路的工具:热风枪、电烙铁、尖嘴钳、斜口钳、镊子、一字螺丝刀、十字螺丝刀等; 2.电路和元件检查工具:万用表; 3.试题作答工具:圆珠笔或签字笔、计算器、HB和B型铅笔、三角尺等; 4.防静电手环。 (五)评分标准 1.评分标准及分值 根据选手在规定时间内完成工作任务的情况,参照工业和信息化部电子行业无线电调试高级工的国家职业标准进行评分。电子产品装配与调试满分为100分。 项目分值比例内容要求

超滤反渗透调试方案

超滤反渗透调试方 案

四川福溪发电有限责任公司 化学水处理系统超滤、反渗透装置 调 试 方 案 北京天元恒业水处理工程技术有限责任公司 二零一零年十一月 四川福溪发电有限责任公司化学水处理系统超滤、反渗透装置 调试大纲

1.水处理系统简介 四川福溪2×600MW超临界机组化学水处理系统超滤、反渗透装置,包括加药装置、除盐系统由北京天元恒业水处理工程技术有限责任公司提供(详见有关《技术协议》等资料)。系统包括二套超滤装置、二套反渗透装置,加杀菌剂、凝聚剂及加酸(碱)、阻垢剂、还原剂加药装置、阴阳混等设备。其工艺流程见《流程图》。 2.调试准备工作 2.1建立开工调试工作组,设立调试负责人。 在安装工作基本结束前,为保证开工准备工作和系统调试工作顺利进行,针对福溪项目专门成立调试工作小组,设立调试负责人,负责对系统工艺、电气、仪表控制部分的调试工作。 参加开工调试的人员必须熟悉现场的设备,系统流程,职责范围和本调试大纲。 2.2土建工程清查 2.2.1车间内土建施工完毕,沟盖板、膜池盖板齐全,地面平整清洁。 1.2.2车间内脚手架应拆除,无关杂物清理干净,平台、护栏等施工完毕,道路畅通,无障碍物。 2.2.3车间内钢结构防腐全部完成,并具备使用条件。 2.3设备工程清查 2.3.1设备都已安装就位完毕,与基础锚接良好。

2.3.2设备防腐工程全部完成,并具备使用条件。 2.3.3高位设备爬梯全部完成,并已防腐,具备使用条件。 2.3.4厂房内起重设备全部就位,并能投入使用。 2.4工艺系统清查 2.4.1工艺系统内设备全部安装完毕。 2.4.2工艺设备之间管道已全部安装完毕。 2.4.3工艺设备之间临时管路系统全部拆除。 2.5.外部系统清查 2.5.1原水来水系统已经全部完成,并已经冲洗、试水完成。 2.5.2产品水输送系统已经全部完成。 2.5.3外部供电系统全部正常,已经全部送电。 2.5.4外部供气系统全部正常,已经全部吹扫完毕。 2.5.5外部排水系统已经全部完成,并已做完闭性水试验。 2.5.6外部道路系统全部完成。 2.6给排水照明通讯系统清查 2.6.1生产用水供给正常,原水提升泵具备投入条件。 2.6.2临时用水(自来水或消防水)供水正常并能正常使用。 2.6.3排水沟道清理干净,排水通畅。 2.6.4车间内及巡查区域照明正常。 2.6.5与相关单位的通讯联络正常,建立有关单位和人员的通讯录。 2.6.6室内化验室等用水单位上下水全部正常。

热控技术监督工作总结

2010年度火电厂热控技术监督工作总结 福建省电力科学研究院热工室 2010年在福建省电力有限公司的直接领导下,在华电福建公司、福建能源集团公司以及各火电厂的支持和配合下,我院本着技术监督发现问题,技术服务解决问题的总体思路,积极开展技术监督工作。热工专业在院生产部和技术监督中心统一领导下,通过参与电厂热工设备的系统设计、设备选型、安装调试、生产技术服务、技术改造以及周期性的日常检定、校验、维修等工作,为电厂的生产和建设提供及时、有效的技术支持和技术保障。 热工专业认真贯彻热工监督规程规定,做好日常监督管理;定期开展热工试验,提高热工自动调节品质和DCS系统性能;积极配合电厂开展安全性评价,协助电厂制定安全整改措施;建立和完善火电机组热工技术监督数据库,开展热工重大事故的调查和分析工作,提出有针对性的反事故措施;积极发挥桥梁和纽带作用,组织开展各项技术交流和培训工作。现把2010年度我省火电厂热工技术监督工作总结如下。 一、安全生产工作 各电厂对安全工作都非常重视,始终坚持“安全第一,预防为主”的方针,结合“二十五项反措”,认真开展安全日活动及专项安全生产大检查,能够坚持进行反事故演习,及时做出评价,制定防范措施,提高了热工人员对设备故障的判断及处理能力,取得了一定的成绩。尽管目前全省火电机组的热工控制系统都采用分散控制系统(DCS),但由于各厂对DCS系统及相关组态的熟悉程度不尽相同,不同DCS系统之间的安全性能存在差异,DCS系统自身的设计漏洞等问题,导致热工控制系统还存在一定的安全隐患,部分电厂在DCS管理制度方面尚未健全,存在制度执行不到位等问题。建议各厂做好如下工作:1)继续加强对DCS 系统的管理力度,严禁DCS系统使用外来U盘等存储介质;2)DCS组态下装和定期备份工作,应严格按照相关规章制度执行并做好安全防范措施;3)DCS与外网存在物理连接,建议增加和完善防火墙,保证DCS与外网为单向联系;4)重视DCS系统的性能测试工作,确保DCS系统的安全、可靠;5)加强对热工人员特别

材料现代分析与测试技术论文

材料现代分析与测试技术论文 (1)X射线单晶体衍射仪(X-ray single crystal diffractometer,简写为XRD) 原理:根据布拉格公式:2dsinθ=λ可知,对于一定的晶体,面间距d一定,有两种途径可以使晶体面满足衍射条件,即改变波长λ或改变掠射角θ。X射线照射到某矿物晶体的相邻网面上,发生衍射现象。两网面的衍射产生光程差ΔL=2dsinθ,当ΔL等于X射线波长的整数倍nλ(n为1、2、3….,λ为波长)时,即当2dsinθ=nλ时,干涉现象增强,从而反映在矿物的衍射图谱上。不同矿物具有不同的d值。X射线分析法就是利用布拉格公式并根据x射线分析仪器的一些常数和它所照出的晶体结构衍射图谱数据,求出d,再根据d值来鉴定被测物。 主要功能:收集晶体衍射数据以及进一步确定晶体结构,过程主要包括:挑选样品,上机,确定晶胞参数,设定参数进行数据收集,数据还原,结构解析。(2)光学显微镜(Optical Microscopy ,简写为OM) 基本原理:显微镜是利用凸透镜的放大成像原理,将人眼不能分辨的微小物体放大到人眼能分辨的尺寸,其主要是增大近处微小物体对眼睛的张角(视角大的物体在视网膜上成像大),用角放大率M表示它们的放大本领。因同一件物体对眼睛的张角与物体离眼睛的距离有关,所以一般规定像离眼睛距离为25厘米(明视距离)处的放大率为仪器的放大率。显微镜观察物体时通常视角甚小,因此视角之比可用其正切之比代替。 显微镜放大原理光路图 显微镜由两个会聚透镜组成,光路图如图所示。物体AB经物镜成放大倒立的实像A1B1,A1B1位于目镜的物方焦距的内侧,经目镜后成放大的虚像A2B2于明视距离处。 主要功能:把人眼所不能分辨的微小物体放大成像,以供人们提取微细结构信息。(3)扫描式电子显微镜(scanning electron microscope,简写SEM)

《电子产品装配与调试》技能大赛试题DOC

2011 DGDZJS 电子产品装配与调试 任 务 书

工位号:成绩: 说明: 本次比赛共有搭建、调整两室温度控制电路,装配及检测数字网线测试仪,绘制电调谐调频收音机电路图等工作任务。完成这些工作任务的时间为270分钟。按完成工作任务的情况和在完成工作任务过程中的职业与安全意识,评定成绩,满分为100分。工作任务内容: 一、搭建、调整两室温度控制电路(本大项分2项,第1项14分,第2项6分,共20分) 1.搭建电路 使用YL-291单元电子电路模块,根据给出《两室温度控制电路原理图》(附图1)和《两室温度控制功能与操作说明》,搭建两室温度控制电路。 (1)搭建电路要求: 正确找出基本模块搭建电路; 从计算机提供的几种电子产品的程序中,下载适合《两室温度控制电路原理图》功能程序到应用的微处理器中; 调整低温工作室温度控制范围15°C~20°C,高温工作室温度控制范围55°C~65°C。 模块排列整齐、紧凑,地线、电源线、信号线颜色统一。 (2)电路正常工作要求: 键盘与液晶显示器工作正常; 温度设置电路工作正常,温度控制电路工作正常; 提示音电路工作正常。 2.根据《两室温度控制电路原理图》(附图1),在下面空白处画出电路的方框原理图。

二、数字网线测试仪的装配与检测(本大项分五项,第(一)项20分,第(二)项16分,第(三)项7分,第(四)、(五)项各6分,共55分) (一)数字网线测试仪元器件检测、焊接与装配(本项分3项,第1项4分,第2项10分,第3项6分,共20分) 1.根据给出的《数字网线测试仪》电路图(附图2)和数字网线测试仪元器件中的LED数码管实物,画出LED数码管的内部连接方式。 2.产品焊接(本项目分2小项,每小项5分,共10分) 根据《数字网线测试仪》电路图(附图2)和《数字网线测试仪元器件清单》(附表1),从提供的元器件中选择元器件,准确地焊接在赛场提供的印刷电路板上。 要求:在印刷电路板上所焊接的元器件的焊点大小适中、光滑、圆润、干净,无毛刺;无漏、假、虚、连焊,引脚加工尺寸及成形符合工艺要求;导线长度、剥线头长度

材料现代测试技术

材料现代测试技术 学院:材料科学与工程学院专业班级:材料科学02班 姓名:吴明玉 学号:20103412

SnO 基纳米晶气敏材料微观结构的表征 2 一.摘要 随着现代物理科学技术的迅速发展,现代分析测试技术的不断更新和进步为人们对材料结构和性能的深入研究提供了可能,从而促进人们对气敏材料机理有了更为客观的认识。本文主要以X衍射分析仪(XRD),X射线光电子能谱(XPS),扫描电镜(SEM),高分辨电子显微镜(HRTEM)等现代材料测试技术为基础,设计出了可行的气敏材料微观结构表征方案。 关键词:XRD XPS SEM HRTEM 二.引言 材料是人类社会赖以生存和发展的物质基础,材料的发展关系到国民经济发展,国防建设和人民生活水平的提高。半导体SnO2气敏材料在防止火灾爆炸事故的发生、大气环境的检测以及工业生产有毒有害气体的检测等领域的发挥了巨大作用。但是,目前开发的半导体气敏材料仍存在着灵敏度不高、交叉敏感严重、长期使用敏感材料易中毒失效稳定性差、重复性不好等缺点。针对上述问题,研究者们做了大量工作。气敏材料的研究热点主要集中在改进、优化成膜工艺和对现有材料进行掺杂、改性、表面修饰等处理,以提高气体传感器的气敏性能,降低工作温度,提高选择性稳定性等性能。掺杂不仅可以提高元件的电导率,还可以提高稳定性和选择性,金属掺杂是最为常见的掺杂方式,掺杂物的电子效应可以起到催化活性中心的作用,降低被测气体化学吸附的活化能,有效提高气敏元件的灵敏度和缩短响应时间。 成分,结构,加工和性能是材料科学与工程的四个基本要素,成分和结构从根本上决定了材料的性能,对材料的成分和结构进行精确表征是实现材料性能控制的前提。材料的分析包括表面和内部组织形貌,晶体的相结构,化学成分和价键结构,相应地,材料分析方法有形貌分析,物相分析,成分与价键分析和分子结构分析。为了对SnO 掺杂金属离子复合材料的性能进行研究,本文设计出了 2 微观结构表征方案,为微观结构研究做好了铺垫。 三.正文 3.1材料的制备及表征方法 纳米材料,并对其分别进行Cd,Ni等金属的掺杂。通采用水热法制备SnO 2 过X衍射分析仪(XRD),X射线光电子能谱(XPS)等,得到薄膜的晶体结构以及表面的化学组成,原子价态,表面能态分布信息;通过扫描电镜(SEM)等得到材料的表面微观形貌信息;通过高分辨电子显微镜(HRTEM)得到材料的晶体取向, 3.2表征方案 3.2.1X衍射分析仪(XRD)

热控专业工作总结

第一节热控专业工程竣工总结 一、工程介绍 X XX X X XX XX XX XX XX XX XX XX XX XX X 工程为新建5×280t/h循环流化床锅炉+1×60MW双抽凝汽式汽轮发电机组+1×12MW背压式汽轮发电机组及与之相配套的工艺系统。是根据《XXXXXXXXXXXXXXXXXXXXXXX工程有限公司的主要设计原则》及各项设备技术协议文件进行设计的。 锅炉为无锡华光锅炉股份有限公司制造,型号为:UG-280/1.0-M型循环着全钢架型布置。锅炉采用紧身封闭,全钢结构,运转层标高8m。炉膛采用膜式水冷壁,锅炉中部是蜗壳式汽冷旋风分离器,尾部竖井烟道布置两级三组对流过热。 汽轮机为东方汽轮机有限公司生产的两汽轮机组,其中一台双抽凝汽式汽轮机组,型号为:CC60-8.83/2.5/0.6型,形式为高压,单轴,双缸,凝汽式汽轮机,另外一为背压式汽轮机,型号为:B12-8.83/5.0型,形式为高压,单轴,单缸,背压式汽轮机。两台汽轮机为纵向布置。发电机为济南发电设备厂生产的两台发电机,发电机采用空冷。 本工程热控采用分散控制系统(DCS)为主要控制设备,配以其它专用控制装置,监控设备采用分散控制系统(DCS)其功能包括:数据采集和处理系统(DAS)、模拟量控制系统(MCS)、顺序控制系统(SCS)、炉膛安全监视及燃烧管理系统(FSSS)等监控功能。共配置17个操作台站(即锅炉5×2个,汽机操作站2×1个、DEH操作员站2×1个,电气操作员站2个,公用操作站1个)以及液晶显示器(LCD)、鼠标为机组的主要监控手段。不设后备监控设备和常规显示仪表。集控式操作台上设置少量后备手操:如锅炉、汽机及电气紧急跳闸,以及交直流油泵和汽包事故放水门按钮等,设2面控制柜(供安装起包水位电视、汽包、除氧器电接点水位计二次表等) 二、主要工程特点 本工程安装锅炉为硫化床锅炉,其主要安装特点有以下几点 1、设计图纸混乱,就地设备系统图与标注的名称有不符现象,接线图纸设计以就地为准,造成接线位置与ABB厂家的I/O清单冲突或重复。设计院多次变更后仍然有很多错误。

组装与调试功能和原理介绍(OK)

多功能安检门电路 一、 功能说明 多功能安检门电路主要由红外编码发射电路(红外发射板)和红外(解码)接收电路、控制部 分及各单元电路组成。编码和解码芯片分别采用 PT2262-IR 和PT2272-M4,发射和接收地址编码设 置必须完全一致才能配对使用。 红外发射电路将编码后的地址码、数据码、同步码随同 38KHZ 红外载波一起发射出去;接收电 路接收到有效信号,经过解码、处理后变成所需的电信号(当接收到发送过来的信号时,解码芯片 PT2272-M4的VT 脚输出一个正脉冲,与此同时,相应的数据管脚输出高电平) ,控制运放波形发生 报警电路、声光控灯电路、金属检测报警电路、开关门指示电路几个单元电路。 二、 电路功能简介 用红外发射板发射红外信号,按下红外编码发射电路的不同按键( K1、K2、K3、K4)主板接 收到相应的信号后,实现相应功能: 按下K1键盘:开关门指示电路用发光二极管 LED5和LED6指示门的状态:绿灯亮代表门 开,红灯亮代表门关闭。 按下K2键盘:金属检测报警电路工作,实时检测有没有金属,如有金属则发出音乐报警 声。再次按下 K2键盘可以消除报警。 按下K3键盘:振动检测报警电路工作,实时检测有没有振动,如有振动则控制电路给运 放波形发生报警电路供电发出报警声。再次按下 K3键盘可以消除报警。 按下K4键盘:控制LED2灯亮并延时一段时间模拟门灯的亮灭。声光控灯电路也可控制 LED2的亮灭,但只有在光暗的情况下才能通过声音控制 LED2灯亮。 此外,通过按下控制部分电路中的 K4、K3、K2、K1,也可以同样实现上述对应功能。 三、 元器件介绍 1?集成电路 PT2262-IR/PT2272-M4 PT2262-IR 和PT2272-M4是通用配对编、解码芯片, PT2262-IR / PT2272-M4最多可有 12位 (A0-A11)三态地址端管脚(悬空、接高电平、接低电平),任意组合可提供 531441种地址码。 编码芯片PT2262-IR 发出的编码信号由:地址码、数据码、同步码组成一个完整的码字,解码 芯片PT2272-M4接收到信号后,其地址码经过两次比较核对后, VT 脚才输出高电平。PT2262-IR 的管脚图如图1所示,管脚说明如表 1所示;PT2272-M4的管脚图如图2所示,管脚说明如表 2所 示。 名称 管脚 - 说明 A0-A11 1 ?8、10 ?13 地址管脚,用于进行地址编码,可置为 “ 0” “ 1” “ f 悬空)。 D0-D5 7 ? 8、10 ?13 数据输入端,有一个为 “ 1即有编码发出,内部下拉。 Vcc 18 电源正端(+ )。 Vss 9 电源负端(一)。 TE 14 编码启动端,用于多数据的编码发射,低电平有效。 OSC1 16 振荡电阻输入端,与 OSC2所接电阻决定振荡频率。 OSC2 15 振荡电阻振荡器输出端。 Dout 17 编码输出端(正常时为低电平)。 图1 PT2262管脚图 图2 PT2272-M4管脚图 A0 匚 A1匚 乜匚 A3匚 A4匚 A5 □ 丘 心 二 Vrr OSC] ITE AlOJDl AO 匚 A : 匚 A2匚 A3 匚 A-l 匚 2匚 Vcc 町 03C2 riN Aio-m 山曲2

热控个人工作总结

热控个人工作总结 篇一:热控专业工作总结 XX年热控工作总结及XX年工作计划 时光茬冉,岁月如梭,转眼间XX年马上过去了,我来 到九江焦化发电三厂已经4年了,通过这几年学习和工作,使我自身素质得到了很大的提高。在这年终岁首之际,回 首XX年工作,虽然没有多少可圈可点的成绩,但也从一些工作中得到了很多考验和磨砺,为了总结经验、发扬成绩、克服不足,现将XX年热控专业的工作做如下简要回顾和总结: 一、安全管理和专业管理安全管理工作是一项常抓不懈的工作,在XX年的工作中,我就要求自己从自身做起,要坚持“安全第一、以人为本”的思想,要严格遵守《安规》的各项规定,严格执行“两票三制”。安全生产高于 一切,安全生产是重中之重,搞好安全工作也是我们自身 的需要。在工作过程中,坚持在安排工作的同时必须交待 安全措施,并且注重安全措施的落实,在确保人身安全和 设备安全的前提下,进行设备的检修和维护工作。因此, 在XX年度,热控专业未发生任何人身重伤、人身轻伤、设备损坏等事故的发生。为此我们也做了以下工作:1)加强对重要设备检修的监督管理。为确保不因人为原因引起 的设备损坏及保护误动,我专业对重要设备的检修都制定

了严格的规定,在重要保护及设备系统上、在高空作业的地方进行检修工作,我本人必须全程参与监护;对于涉及联锁保护和ETS、MFT试验项目, 必须在现场进行“三级”验收,从而确保了保护动作的正确性和设备检修的可靠性。 2)严格检修工作过程中“工作票”的管理;为解决检修过程中存在的安全隐患,我们在工作票中详细罗列出各项工作过程可能出现的对人身伤害及设备损坏的可能性和控制措施。通过这些措施,一是保证了检修过程中机组的安全运行,同时也保证了检修过程中检修人员和设备的安全。严格执行工作票制度,加强业务学习,以技术来保安全;通过参加公司安保部组织的工作票“三种人”的培训,保证工作票中所列的安全措施正确完善;杜绝了以往涂改、代签工作票现象,使工作票从填写、签发、许可办理、工作终结到办理退票手续的全过程管理都按规范的管理制度进行,从而确保检修工作的安全进行。 3)加强对异常和未遂分析的力度,针对机组热控设备异常和未遂事件,认真进行分析,及时填写异常的报告,按照“三不放过”的原则,详细分析事件产生的原因,并通过与相关专业讨论,提出切实可行整改的方法,报告给安全专工和相关公司领导审核。待有机会立即进行整改。 4)加强对现场设备缺陷的管理和处理;①每天早上检

相关主题
文本预览
相关文档 最新文档