Updated meterpreter binaries with a slight change to the thread schedule (solves a looping problem when the socket is dead).

git-svn-id: file:///home/svn/framework3/trunk@7793 4d416f70-5f16-0410-b530-b9f4589650da
unstable
HD Moore 2009-12-10 05:42:47 +00:00
parent e731426666
commit 6da0fda5ed
13 changed files with 8 additions and 9 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -210,26 +210,25 @@ DWORD THREADCALL scheduler_waitable_thread( THREAD * thread )
list_add( schedulerThreadList, thread );
waitableHandles[0] = entry->waitable;
waitableHandles[1] = thread->sigterm->handle;
waitableHandles[0] = thread->sigterm->handle;
waitableHandles[1] = entry->waitable;
dprintf( "[SCHEDULER] entering scheduler_waitable_thread( 0x%08X )", thread );
while( !terminate )
{
dprintf( "[SCHEDULER] scheduler_waitable_thread( 0x%08X ) waiting on 0x%08X and 0x%08X", thread, waitableHandles[0], waitableHandles[1]);
result = WaitForMultipleObjects( 2, (HANDLE *)&waitableHandles, FALSE, INFINITE );
dprintf( "[SCHEDULER] scheduler_waitable_thread( 0x%08X ) waiting on 0x%08X and 0x%08X returned %d", thread, waitableHandles[0], waitableHandles[1], result - WAIT_OBJECT_0);
switch( result - WAIT_OBJECT_0 )
{
case 0:
entry->routine( entry->remote, entry->context );
break;
case 1:
dprintf( "[SCHEDULER] scheduler_waitable_thread( 0x%08X ), signaled to terminate...", thread );
terminate = TRUE;
break;
case 1:
dprintf( "[SCHEDULER] scheduler_waitable_thread( 0x%08X ), signaled on waitable...", thread );
entry->routine( entry->remote, entry->context );
break;
default:
break;
}

View File

@ -32,7 +32,7 @@
#include "list.h"
// #define DEBUGTRACE
//#define DEBUGTRACE
#ifdef DEBUGTRACE
#define dprintf(...) real_dprintf(__VA_ARGS__)