, .
:
1. , , ;
2. , , , , .
, , . , , , , , , . , , .exe .dll-. . .
, . , , . , CreateThread (p1..p6). , , . , . , . , . , .
CreateThread , WinAPI. , . , Delphi TThread.
:
1. , ;
2. . , , . /STACK: arg1, arg2. , , . , . (x32 4kb, x64 8kb). . , , , , arg2. , ;
|
|
3. , ;
4. - - ;
5. , . 0 . 1 , , , ;
6. , , .
.
, , :
CreateThread . , , 2, 1, 0x103, . , P3, P4 . , . . CONTEXT, . EIP ESP. , . ESP , P3, EIP BaseThreadStart ().
CONTEXT. , P5. , . , , , CONTEXT . , , , . , . EIP BaseThreadStart (), , . P3, P4, , :
1. , , , ;
2. , , , P4;
|
|
3. .
, BaseThreadStart (). , , ExitThread(). , . , , .
() . BaseProcessStart (). , , , , P3 . , BaseProcessStart () , , .
.
4 :
1) . , ;
2) ExitThread ();
3) TerminateThread ();
4) , .
. , :
1) , , ;
2) , ;
3) , ( );
4) .
, ExitThread (). , , , , . , , . ExitThread , , .
, TerminateThread. . , . , , , .
. , . , , . , .
. . , ExitProcess () TerminateProcess (). , , . , , , , .
, :
1) , , , , , , , ..;
2) 0x103 , ;
|
|
3) , , , ;
4) ;
5) , .
. .
Windows , . , , .
Windows 2000 18 , , . , , , . . , , . , CONTEXT , . , , , , .
, :
1) ;
2) ;
3) ;
4) ;
.
, :
1) ;
2) ;
3) ;
4) - .
SUSPENDCOUNT, . , , . CreateProcess () CreateThread () , , . CreateThread, P5. , . , SUSPENDCOUNT , .
, . , - , , . , . , . ResumeThread (), , . - , , , , , . .
|
|
, . SuspendThread (). . , . . Sleep () , . . , . , , .
SwitchToThread (), , . , , , ( ). , . , . , , , .
Windows, , , , , . - . , .