Malicious Office (OOXML) — malware analysis report

Static analysis result for SHA-256 9825d7846fdd15a8…

MALICIOUS

Office (OOXML)

333.3 KB Created: 2021-06-18 18:00:37 UTC Authoring application: Microsoft Excel 15.0300 First seen: 2021-07-10
MD5: 47d6e7fe71583cba3ba4ca5edbce14a2 SHA-1: 6ab6283317e711e0613fae0a9e3afdcb51d9d5e6 SHA-256: 9825d7846fdd15a8dce7a99b77d40f162ae233bf453738fc033fe995f71b5e9b
370 Risk Score

Malware Insights

MITRE ATT&CK
T1059.005 Visual Basic T1204.002 Malicious File

The file is an Excel document containing obfuscated VBA macros. Heuristics indicate the use of Shell(), WScript.Shell, and CreateObject, suggesting the macro attempts to execute arbitrary commands. The presence of embedded URLs, though internal, could be used for command and control or to download additional payloads. The ClamAV detection further confirms its malicious nature.

Heuristics 9

  • ClamAV: Xls.Macro.Obfuscation-9804250-0 critical CLAMAV_DETECTION
    ClamAV detected this file as malware: Xls.Macro.Obfuscation-9804250-0
  • VBA project inside OOXML medium 5 related findings OOXML_VBA
    Document contains a VBA project — VBA macros present
  • Potential Shell call in VBA critical OLE_VBA_SHELL
    Potential Shell call in VBA
    Matched line in script
                    Set aw = session.ActiveWindow()
                    Set GRID1 = aw.findById("wnd[0]/usr/cntlGRID1/shellcont/shell")
                                For I = 0 To GRID1.RowCount - 1
  • WScript.Shell usage critical OLE_VBA_WSCRIPT
    WScript.Shell usage
    Matched line in script
    Dim arrConexion(3, 10)
    Set WshShell = CreateObject("WScript.Shell")
        Select Case connectTo 'Selector de Conector segun ID SAP
  • CreateObject call high OLE_VBA_CREATEOBJ
    CreateObject call
    Matched line in script
    'Set Wbmetricadiaria = Workbooks.Open(PathWbmetricadiaria, False)
    Set filesystem = CreateObject("Scripting.FileSystemObject")
    RunUnidNegocio = "EASY ARGENTINA":        Call Download_FileEmail("EASY ARGENTINA", FolderDownload_EA)
  • GetObject call high OLE_VBA_GETOBJ
    GetObject call
    Matched line in script
        If Not IsObject(Application1) Then
           Set SapGuiAuto = GetObject("SAPGUI")
           Set Application1 = SapGuiAuto.GetScriptingEngine
  • Environ() call (env variable access) low OLE_VBA_ENVIRON
    Environ() call (env variable access)
    Matched line in script
    BD_Metrica = "W:\GGG100_CSC_DATOS_MAESTROS\Macros\Metricas\BD_MetricaUCDM.accdb"
    'PathWbmetricadiaria = "C:\Users\" & Environ("username") & "\OneDrive - Cencosud\Robot Modificaciones MM_UCDM\Metricas\Metrica " & MonthName(Month(Date)) & " MARTA UCDM.xlsx"
  • External relationship medium OOXML_EXTERNAL_REL
    External target in xl/externalLinks/_rels/externalLink1.xml.rels: /Users/crirod/Google Drive/Proyecto Automatizacion 2018/archivos paraLevantar/MACRO_Modificacion de artículos Supermerca
  • Embedded URL info EMBEDDED_URL
    One or more URLs were extracted from the document. The URL itself is not a detection — see the per-URL labels for which channel (macro, JS, link annotation, document body, ...) reached each URL.
    URL http://portalsap.cencosud.corp/PE0 OOXML external relationship
    • http://portalsap.cencosud.corp/P03OOXML external relationship
    • https://portalsap.cencosud.corp/SecureLoginServer/webclient/webclient.html?profile=4ae8fa8e-21b2-45b4-a022-5cbd56798450OOXML external relationship
    • http://portalsap.cencosud.corp/PP0OOXML external relationship

Extracted artifacts 2

Files carved from inside the sample during analysis.

FilenameKindSourceSize
macros.bas vba-macro oletools.olevba.extract_macros (decoded VBA source from OOXML) 112367 bytes
SHA-256: 2290ba08f07d568238fa48580d841f1e60f9f3cbeae14645c262b250efff560a
Preview script
First 1,000 lines of the extracted script
Attribute VB_Name = "ThisWorkbook"
Attribute VB_Base = "0{00020819-0000-0000-C000-000000000046}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = True

Attribute VB_Name = "Hoja7"
Attribute VB_Base = "0{00020820-0000-0000-C000-000000000046}"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = False
Attribute VB_Customizable = True

Attribute VB_Name = "A_Main"
Public ArrayArticulos(9999)  'Array Articulos para Libro de Pedido
Public session As Object
Public session2 As Object
Public routePath As String
Public sistemaAOperar
Public seguirProceso
Public exeName
Public wbmodificaciones
Public statusCode
Public objSAPGui
Public App
Public connection
Public ultimaFila As Long
Public ws As Worksheet
Public BD_Metrica As String
Public UnNegocio As String
Public Revision As Boolean
Public FilaMonitor
Public HoraEntrada As Date

Public Cortotexto
Public AmbienteAbierto
Public fobservaciones
Public generico
Public ObsRobot
Public FilaForm As Integer '
Public ambiente
Public UnidadNegocio
Public SKU
Public comentariodeSAP


Public Fcontroldefila As String
'Variables de Datos Colum
Public FSolicitante As String
Public FTiendaFIWRK As String
Public FNumAlmacenLGNUM As String
Public FctdMacLHMG1 As String
Public FumLHME1 As String
Public FTuaLETY1 As String
Public FIndTpAlmaSalidaLTKZA As String
Public FIndTpAlmaEntradaLTKZE As String
Public FIndAreaAlmaLGBKZ As String
Public FIndAlmBloquesBLOCK As String
Public FRpAlmacenLGTYP As String
Public FUbicacionLGPLA As String
Public FctdUbicacionLPMAX As String
Public FctdUbicacionMinLPMIN As String
Public FctdManipulacionMAMNG As String
Public FctdreposicionNSMNG As String

Public PunteroCambio
Public Wb As Workbook
Public Wbmetricadiaria As Workbook
Public WBNumModificaciones As Workbook
Public WBMacroCris As Workbook
Public ContadorPuntero

Public NumberSolicitud As String
Public RunUnidNegocio
Public TotalModificacionesForm As String
Sub Main_Modificaciones_Gestion_Almacen_AR()
application.ScreenUpdating = False: application.DisplayAlerts = False
Dim FolderDownload As String: Dim FolderDownload_PE As String: Dim FolderDownload_EA As String: Dim FolderDownload_PP As String

Dim filesystem As Object
Set WBNumModificaciones = Nothing
Set Wbmetricadiaria = Nothing
Set session = Nothing
Set WBMacroCris = ThisWorkbook

'********************************************************************
BD_Metrica = "W:\GGG100_CSC_DATOS_MAESTROS\Macros\Metricas\BD_MetricaUCDM.accdb"
'PathWbmetricadiaria = "C:\Users\" & Environ("username") & "\OneDrive - Cencosud\Robot Modificaciones MM_UCDM\Metricas\Metrica " & MonthName(Month(Date)) & " MARTA UCDM.xlsx"

'Descarga de los correos desde el Mail (AUTO Modificaciones)
FolderDownload_EA = "C:\Users\" & Environ("username") & "\OneDrive - Cencosud\Robot Modificaciones MM_UCDM\EASY ARGENTINA\Modificacion Gestion de Almacences\"
HostFolder_EABL = "C:\Users\" & Environ("username") & "\OneDrive - Cencosud\Robot Modificaciones MM_UCDM\EASY ARGENTINA\Modificacion Gestion de Almacences"

'Controlar que las carpetas de los dias  existan..
Kill_Files (FolderDownload_EA)
Ctrl_MkDIR_CarpetaDias (FolderDownload_EA)
'********************************************************************
'Set Wbmetricadiaria = Workbooks.Open(PathWbmetricadiaria, False)
Set filesystem = CreateObject("Scripting.FileSystemObject")
RunUnidNegocio = "EASY ARGENTINA":        Call Download_FileEmail("EASY ARGENTINA", FolderDownload_EA)
                                         DoFolder filesystem.GetFolder(HostFolder_EABL)
'*********************************************************************

WBMacroCris.Activate
WBMacroCris.Sheets("Mon_Modificaciones_Regional").Select
WBMacroCris.Save

Call Send_Log_EMail_Modificaciones
'*********************************************************************
'Wbmetricadiaria.SaveAs "W:\GGG100_CSC_DATOS_MAESTROS\ARTICULOS\Metricas UCDM\" & MonthName(Month(Date)) & "\" & LTrim(Wbmetricadiaria.Name) 'hago el guardar como de la metrica de modificaciones en la carpeta compartida para que los chicos las puedan ver
'Wbmetricadiaria.Close
'WBMacroCris.Close True

End Sub

Sub DoFolder(Folder)
WBMacroCris.Activate
WBMacroCris.Sheets("Mon_Modificaciones_Regional").Select
application.ScreenUpdating = False: application.DisplayAlerts = False

For Each File In Folder.Files
Revision = False 'Bandera de Revision
If LCase(Right(File, 4)) <> "xlsm" Then GoTo Proximo
If Left(File.Name, 2) = "~$" Then GoTo Proximo
Set Wb = application.Workbooks.Open(File, False): Esperar (1): Wb.Activate: Wb.Unprotect ("ucdmcsc")
'Macro_Correr = "'" & File.Name & "'" & "!" & "ControlCompletoPlanilla.Main_Controles"
Macro_Correr = "'" & File.Name & "'" & "!" & "Main.Main_Controles"

On Error Resume Next: application.Run Macro_Correr
If Err.Number = 1004 Then Formulario = "SINMACRO": GoTo salir
OK_Formulario = Ctrl_Form(Wb) 'ContadorPuntero = wb.Sheets("Modificaciones").Range("XFC1")
FilaMonitor = BuscarFilaArchivo(WBMacroCris, File.Name) 'Find Row en LogMonitor
FormularioenROJO = ControlarPestañasROJO(Wb) 'Control de Rojos en formulario
If FormularioenROJO = False Then Formulario = "FORMROJO": Revision = True: GoTo salir
If OK_Formulario = False Then Formulario = "FORMINCORRECTO": Revision = True: GoTo salir


    Select Case UCase(Wb.Sheets("Gestion_Almacen").Range("XFD1").value)
        Case "FORM_GESTIONALMA_EASYBLAISTEN"
            UnNegocio = UCase(Wb.Sheets("Gestion_Almacen").Range("D8").value)
            Call FullProcess_EASY_AR(Wb) 'Proceso Completo de Cambios Logisticos
    End Select

salir:
    Completar_LogMonitor Formulario, FilaMonitor, Wb 'Completa Log Segun corresponda.
    Wb.SaveAs (Folder & "\" & Replace((Date), "/", ".") & "\" & File.Name): Wb.Close True: Err.Clear 'Guarda el archivo en la carpeta corrrespondiente...
        Call StartRespuestaE_Mail(FilaMonitor, Folder & "\" & Replace(Date, "/", ".")) ' la carpeta donde estaran alojado los archivos....
    Kill (Folder & "\" & File.Name) 'Eliminar El archivo que descargue....
Wb = Nothing
Proximo:
NumberSolicitud = ""
Formulario = ""
Next

CloseSystem 'Cuando Culmino cierro SAP P03 de Manera Segura
End Sub

Attribute VB_Name = "C_SelecciondeCasos"
Sub LevantaVariablesForm_GestionAlmacenes()
FSolicitante = SKU.Offset(0, -1)
FTiendaFIWRK = SKU.Offset(0, 1)
FNumAlmacenLGNUM = SKU.Offset(0, 2)
FctdMacLHMG1 = SKU.Offset(0, 3)
FumLHME1 = SKU.Offset(0, 4)
FTuaLETY1 = SKU.Offset(0, 5)
FIndTpAlmaSalidaLTKZA = SKU.Offset(0, 6)
FIndTpAlmaEntradaLTKZE = SKU.Offset(0, 7)
FIndAreaAlmaLGBKZ = SKU.Offset(0, 8)
FIndAlmBloquesBLOCK = SKU.Offset(0, 9)
FRpAlmacenLGTYP = SKU.Offset(0, 10)
FUbicacionLGPLA = SKU.Offset(0, 11)
FctdUbicacionLPMAX = SKU.Offset(0, 12)
FctdUbicacionMinLPMIN = SKU.Offset(0, 13)
FctdManipulacionMAMNG = SKU.Offset(0, 14)
FctdreposicionNSMNG = SKU.Offset(0, 15)

End Sub


Sub Ident_Num_Modif()
On Error Resume Next
On Error GoTo 0
If tipoModificacion = "" Then
Revision = True:    MsgRevision "No coloco Tipo de Modificacion " & UnidadNegocio & tipoModificacion, FilaForm
Exit Sub

End If
Set ACA = WBMacroCris.Sheets("Modificaciones").Range("B1")
Set Search = WBMacroCris.Sheets("Modificaciones").Range("B:B").Find(What:=CStr(UnidadNegocio & tipoModificacion), After:=ACA, LookIn:=xlFormulas _
        , LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False)
                If Not (Search) Is Nothing Then
                'MsgBox tipoModificacion
                NumerodeModificacion = Search.Offset(0, -1)
                PunteroCambio = Search.Offset(0, 4)
                RevisionUCDM = Search.Offset(0, 8)
                AutomRealizada = Search.Offset(0, 3)
                    If AutomRealizada = "NO" Then
                    'MsgBox "Modificacion no automatizada..."
                        Revision = True:    MsgRevision "Modificacion no tolerada por Automatizacion " & UnidadNegocio & tipoModificacion, FilaForm
                        Exit Sub
                    End If
                
                    If RevisionUCDM = "SI" Then
                    MsgBox "revisar.. entro a la condicion de modificaciones no toleradas por el robot.."
                        Revision = True:    MsgRevision "Modificacion no tolerada por Automatizacion " & UnidadNegocio & tipoModificacion, FilaForm
                        Exit Sub
                    End If
                Else 'no tendria q entrar nunca a esta condicion por q tendrian que existir todas!
                'MsgBox ("No se encuentra la modificacion")
                Revision = True:    MsgRevision "Modificacion no programada " & UnidadNegocio & tipoModificacion, " " & FilaForm
                Exit Sub
                End If

'SUPER PERU  100 al 200
'SUPER PARIS 200 al 300
'SUPER CHILE 300 al 400
'SUPER COLOMBIA  400 al 500
'EASY CHILE  500 al 600
'EASY COLOMBIA   600 al 700
'EASY ARGENTINA  700 al 800
'BLAISTEN ARGENTINA  800 al 900
        Select Case NumerodeModificacion
'''                        Case 102
'''                            Call M_102_empaqueUxc
'''                        Case 104
'''                            Call M_104_activacionalacompra
'''                        Case 106
'''                            Call M_106_anotemporada
'''                        Case 107
'''                            Call M_107_bloqueoalacompra
'''                        Case 112
'''                            Call M_112_claselistasurtido
'''                        Case 113
'''                            Call M_113_referenciaproveedor
'''                        Case 119
'''                            Call M_119_descripcioncorta
'''                        Case 120
'''                            Call M_120_descripcionlarga
'''                        Case 121
'''                            Call M_121_eliminacionreginfo
'''                        Case 127
'''                            'Call M_127_grupodearticulos
'''                        Case 128
'''                            Call M_128_grupodecompras
'''                        Case 129
'''                            Call M_129_marca
'''                        Case 130
'''                            Call M_130_modificaciondedun
'''                        Case 131 'llama a la misma que la anterior por q aplica para los dos
'''                            Call M_130_modificaciondedun
'''                        Case 133
'''                            Call M_133_proveedorregular
'''                        Case 134 'llama a eliminacion de reg info por q es sugerencia de borrado.. es lo mismo
'''                            Call M_121_eliminacionreginfo
'''                        Case 135
'''                            Call M_135_surtidoparcial
'''                        Case 136
'''                            Call M_136_tipodeimpuesto
'''                        Case 140
'''                            Call M_140_controlconfirmacion
'''                        Case 143
'''                            Call M_143_condiciondealmacenajeDB
'''                        Case 148
'''                            Call M_148_cantidadminimapedido
'''                        Case 149
'''                            Call M_149_cantidadmaximapedido
'''                        Case 150
'''                            Call M_150_PuntodePedidoDatosBasicos
'''                        Case 162
'''                            Call M_162_chekilimitado
'''                        Case 164
'''                            Call M_164_totalexcsum
'''                        Case 165
'''                            Call M_165_eliminaciondeean
'''                        Case 167 'llama a eliminacion de ean que se hace de la misma manera que el dun14
'''                            Call M_165_eliminaciondeean
'''                        Case 171
'''                            Call M_171_unidadmedidadepedidocompras
'''                        Case 172
'''                            Call Modif_UMPEDIDO_PE
'''                        Case 173
'''                            Call M_173_ActivacionalaVenta
'''                        Case 174
'''                            Call M_174_Agregar_Componentes
'''                        Case 175
'''                            Call M_175_TemporadayColeccion
'''                        Case 176
'''                            Call M_176_surtidoparcial
'''                        Case 177
'''                            Call M_177_categoriadevaloracion
'''                        Case 179
'''                            Call M_179_contenidonetoppum
'''                        Case 180
'''                            Call M_180_Creacion_DeterUnidadMedidaVentaC
'''                        Case 181
'''                            Call M_181_CrearCodBarrasAutogenerado
'''                        Case 182
'''                            Call M_182_CrearEmpaque
'''                        Case 183
'''                            Call M_183_EliminarComponente
'''                        Case 184
'''                            Call M_184_EliminarEmpaque
'''                        Case 185
'''                            Call M_185_EliminarSurtidoParcialSKU
'''                        Case 186
'''                            Call M_186_FinSuministroProveedor
'''                        Case 187
'''                            Call M_187_InactivacionalaVenta
'''                        Case 188
'''                            Call M_189_Modif_EAN_Principal
'''                            'Call M_188_Modif_DUN_Principal sacaria este por que es el mism que ean el dun y hice la logica para variantes
'''                        Case 189
'''                            Call M_189_Modif_EAN_Principal
'''                        Case 190
'''                            Call M_190_ModifEntradaySalida
'''                        Case 191
'''                            Call M_191_paisdeorigen 'REVISAR NO ESTA HECHA .. ESTA LO DE SUP CHILE...
'''                        Case 192
'''                            Call M_192_PlazodeEntrega 'REVISAR NO ESTA HECHA .. ESTA LO DE SUP CHILE...
'''
'''
''''*************************************************CHILE *******************************************************************
'''                        Case 301
'''                            Call M_301_atributocanasta
'''                        Case 302
'''                            Call M_302_activacionalacompra
'''                        Case 303
'''                            Call M_303_activacionalaventa
'''                        Case 307
'''                            Call M_307_bloqueoarticuloaladevolucion
'''                        Case 308
'''                            Call M_308_categoriadevaloracion
'''                        Case 314
'''                            Call M_314_contenidonetoppum
'''                        Case 318
'''                            Call M_318_descripcionlarga
'''                        Case 319
'''                            Call M_319_eliminacionreginfo
'''                        Case 304
'''                            Call M_304_anotemporada
'''                        Case 305
'''                            Call M_305_bloqueoalacompra
'''                        Case 306
'''                            Call M_306_bloqueoalaventa
'''                        Case 309
'''                            Call M_309_categoriamaestro
'''                        Case 310
'''                            Call M_310_claselistasurtido
'''                        Case 311
'''                            Call M_311_codigoreferenciaproveedor
'''                        Case 312
'''                            Call M_312_colgaralpadre
'''                        Case 315
'''                            Call M_315_desbloqueoarticuloaladevolucion
'''                        Case 316
'''                            Call M_316_descolgaralpadre
'''                        Case 317
'''                            Call M_317_descripcioncorta
'''                        Case 319
'''                            Call M_319_eliminacionreginfo
'''                        Case 320
'''                            Call M_320_empaqueuxc
'''                        Case 322
'''                            Call M_322_envaseasociadodestare
'''                        Case 323
'''                            Call M_323_envaseyvidautil
'''                        Case 324
'''                            Call M_324_fraccionable
'''                        Case 327
'''                            Call M_327_marca
'''                        Case 330
'''                            Call M_330_paisdeorigen
'''                        Case 331
'''                            Call M_331_proveedorregular
'''                        Case 332
'''                            Call M_332_EliminarSurtidoParcialSKU
'''                        Case 333
'''                            Call M_333_surtidoparcial
'''                        Case 334
'''                            Call M_334_tipodeimpuesto
'''                        Case 335
'''                            Call M_335_umpvariable
'''                        Case 336
'''                            Call M_336_PlazodeEntrega
'''                        Case 338
'''                            Call M_338_controldeconfirmacion
'''                        Case 346
'''                            Call M_346_cantidadminimadepedido
'''                        Case 347
'''                            Call M_347_cantidadmaximadepedido
'''                        Case 359
'''                            Call M_359_plazodeentrega
'''                        Case 360
'''                            Call M_360_checkilimitado
'''                        Case 363
'''
'''                        Case 364
'''                            Call M_364_ModifEntradaySalida
'''                        Case 365
'''                            Call M_365_CrearEmpaque
'''                        Case 366
'''                            Call M_366_Destildar_CalculodeCosto
'''                        Case 369
'''                            Call M_369_Colocar_CalculodeCosto
'''                        Case 370
'''                            Call M_370_Destildarcheckilimitado
'''                        Case 371
'''                            Call M_371_Colocar_fraccionable
'''                        Case 372
'''                            Call M_372_Agregar_Componentes
'''                        Case 373
'''                            Call M_373_GrupodeCompras
'''                        Case 374
'''                            Call M_374_ActivacionalaVentaSOLOFecha
'''                        Case 375
'''                            Call M_375_PerfildeRedondeo
'''                        Case 376
'''                            Call M_376_TotalExcSUM
'''                        Case 377
'''                            Call M_377_EnvaseDBasicos
'''                        Case 378
'''                            Call M_378_Modif_DUN_Principal
'''                        Case 379
'''                            Call M_379_Modif_EAN_Principal
'''                        Case 380
'''                            Call M_380_Modif_DUN_Secundario
'''                        Case 381
'''                            Call M_381_Modif_EAN_Secundario
'''                        Case 382
'''                            Call M_382_EliminarEmpaque
'''                        Case 383
'''                            Call M_383_EliminarComponente
'''                        Case 384
'''                            Call M_384_EliminarEAN_DUN
'''                        Case 385
'''                            Call M_385_BloqueoalaVentaSOLOFECHA
'''                        Case 386
'''                            Call M_386_Creacion_DeterUnidadMedidaVentaC
'''                        Case 387
'''                            Call M_387_AgregarPerfilFAbr_Repetitiva
'''                        Case 388
'''                            Call M_388_EliminarPerfilFAbr_Repetitiva
'''                        Case 389
'''                            Call M_389_CrearCodBarrasAutogenerado
'''                        Case 390
'''                            Call M_390_DestildarCheck_Ilimitado
'''
'''
'''
'''
'''
'''
'''
'''
'''
'''
'''
'''
''''*********************************************************************************************************************+
'''                        'ACA COMIENZAN LOS CASOS PARA PERU PARIS
'''                        Case 202
'''                            Call M_202_activacionalacompra
'''                        Case 203
'''                            Call M_203_activacionalaventa
'''                        Case 204
'''                            Call M_204_anotemporada
'''                        Case 205
'''                            Call M_205_bloqueoalacompra
'''                        Case 206
'''                            Call M_206_bloqueoalaventa
'''                        Case 208
'''                            Call M_208_categoriavaloracion
'''                        Case 210
'''                            Call M_210_claselistadurtido
'''                        Case 211
'''                             Call M_211_referenciaproveedor
'''                        Case 217
'''                            Call M_217_descripcioncorta
'''                        Case 218
'''                            Call M_218_descripcionlarga
'''                        Case 219
'''                            Call M_219_eliminacionreginfo
'''                        Case 220
'''                            Call M_220_empaqueUxc
'''                        Case 225
'''                            Call M_225_grupodearticulo
'''                        Case 226
'''                            Call M_226_grupodecompra
'''                        Case 227
'''                            Call M_227_marca
'''                        Case 228
'''                            Call M_229_modificaciondeean 'para ean y dun va a la misma funcion
'''                        Case 229
'''                            Call M_229_modificaciondeean 'para ean y dun va a la misma funcion
'''                        Case 230
'''                            Call M_230_paisdeorigen
'''                        Case 231
'''                            Call M_231_proveedorregular
'''                        Case 232
'''                            Call M_219_eliminacionreginfo 'La sugerencia de borrado es igual q la eliminacion de reg info
'''                        Case 233
'''                            Call M_233_surtidoparcial
'''                        Case 236
'''                            Call M_236_accesoriosdeventa
'''                        Case 238
'''                            Call M_238_controlconfirmacion
'''                        Case 240
'''                            Call M_240_coleccion
'''                        Case 212
'''                            Call M_212_colgaralpadre
'''                        Case 216
'''                            Call M_216_descolgaralpadre
'''                        Case 225
'''                            Call M_225_grupodearticulo
'''                        Case 230
'''                            Call M_230_paisdeorigen
'''                        Case 234
'''                            Call M_234_tipodeimpuesto
'''                        Case 235
'''                            Call M_235_umpvariable
'''                        Case 236
'''                            Call M_236_accesoriosdeventa
'''                        Case 241
'''                            Call M_241_condiciondealmacenaje
'''                        Case 244
'''                            Call M_244_perfilderedondeo
'''                        Case 243
'''                            Call M_243_materiales1
'''                        Case 246
'''                            Call M_246_cantidadminimadepedido
'''                        Case 247
'''                            Call M_247_cantidadmaximadepedido
'''                        Case 256
'''                            Call M_256_centrodebeneficio
'''                        Case 259
'''                            Call M_259_plazodeentrega
'''                        Case 262
'''                            Call M_262_totalexcsum
'''                        Case 265
'''                            Call M_265_eliminaciondeean
'''                        Case 266
'''                            Call M_265_eliminaciondeean
                                                                    
''''*********************ACA COMIENZAN LOS CASOS PARA EASY COLOMBIA
'''                        Case 601
'''                            Call M_ATRIBUTO_SURTIDO
                            
'*********************ACA COMIENZAN LOS CASOS PARA ARGENTINA
                        Case 701
                            'Call M_ATRIBUTO_SURTIDO

'*********************ACA COMIENZAN LOS CASOS PARA BLAISTEN
                        Case 801
                            'Call M_ATRIBUTO_SURTIDO
                                                                    
'*********************************************************************************************************************+
                        'ACA COMIENZAN LOS CASOS PARA EASY CHILE
'''                        Case 506
'''                            Call M_PERFILES_LOGISTICOS
'''                        Case 507
'''                            Call M_PERFILES_LOGISTICOS
'''                        Case 508
'''                            Call M_PERFILES_LOGISTICOS
'''                        Case 509
'''                            Call M_PERFILES_LOGISTICOS
'''                        Case 510
'''                            Call M_PERFILES_LOGISTICOS
'''                        Case 512
'''                            Call M_ATRIBUTO_SURTIDO
'''
'''
        End Select
End Sub


Sub Ident_Num_RegInfo()
On Error Resume Next
On Error GoTo 0
Set ACA = WBMacroCris.Sheets("RegistroInfo").Range("B1")
Set Search = WBMacroCris.Sheets("RegistroInfo").Range("B:B").Find(What:=UnidadNegocio, After:=ACA, LookIn:=xlFormulas _
        , LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False)
    If Not (Search) Is Nothing Then
    NumerodeCregInfo = Search.Offset(0, -1)
    Else 'no tendria q entrar nunca a esta condicion por q tendrian que existir todas!
    MsgBox ("No se encuentra la modificacion")
    End If
        Select Case NumerodeCregInfo
                        Case 1
                            'Call C_1_Reginfo_RP9_PE
                        Case 2
                            'Call C_2_Reginfo_PP0_PE
                        Case 3
                            'Call C_3_Reginfo_P03_CL
                        Case 5
                            'Call C_5_Reginfo_PE0_CL
                        Case 6
                            'Call C_6_Reginfo_PE0_CO
                        Case 7
                            'Call C_7_Reginfo_PE0_AR
                        Case 8
                            'Call C_8_Reginfo_PE0_AR_BL
                        Case 9
                            'Call C_9_Reginfo_PE0_REG
        End Select
End Sub
Sub Ident_Num_CreacionMarca()
On Error Resume Next
On Error GoTo 0
Set ACA = WBMacroCris.Sheets("Marca").Range("B1")
Set Search = WBMacroCris.Sheets("Marca").Range("B:B").Find(What:=UnidadNegocio, After:=ACA, LookIn:=xlFormulas _
        , LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False)
    If Not (Search) Is Nothing Then
    NumeroCreacionMarca = Search.Offset(0, -1)
    Else 'no tendria q entrar nunca a esta condicion por q tendrian que existir todas!
    MsgBox ("No se encuentra la modificacion")
    End If
        Select Case NumeroCreacionMarca
                        Case 1
                             'Call C_1_Marca_P03_CL
                        Case 2
                             'Call C_2_Marca_RP9_PE
                        Case 5
                           
                        Case 6
                             
                        Case 7
        End Select
End Sub
Sub Ident_Num_Volumetria()
On Error Resume Next
On Error GoTo 0
Set ACA = WBMacroCris.Sheets("RegistroInfo").Range("Q1")
Set Search = WBMacroCris.Sheets("RegistroInfo").Range("Q:Q").Find(What:=UnidadNegocio, After:=ACA, LookIn:=xlFormulas _
        , LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False)
    If Not (Search) Is Nothing Then
    NumeroCreacionVolumetria = Search.Offset(0, -1)
    Else 'no tendria q entrar nunca a esta condicion por q tendrian que existir todas!
    MsgBox ("No se encuentra la modificacion")
    End If
        Select Case NumeroCreacionVolumetria
                        Case 1
                            'Call C_1_Volumetria_RP9_PE
                        Case 2
                            'Call C_2_Volumetria_P03_CL
                        Case 3
                            'Call C_3_Volumetria_P03_CL
                           
                        Case 5
                           
                        Case 6
                             
                        Case 7
        End Select
End Sub

Sub Ident_Num_GrArticulo_Reclasificacion()
On Error Resume Next
On Error GoTo 0
Set ACA = WBMacroCris.Sheets("RegistroInfo").Range("L1")
Set Search = WBMacroCris.Sheets("RegistroInfo").Range("L:L").Find(What:=UnidadNegocio, After:=ACA, LookIn:=xlFormulas _
        , LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False)
    If Not (Search) Is Nothing Then
    NumeroGrArticuloReclasificacion = Search.Offset(0, -1)
    Else 'no tendria q entrar nunca a esta condicion por q tendrian que existir todas!
    MsgBox ("No se encuentra la modificacion")
    End If
        Select Case NumeroGrArticuloReclasificacion
                        Case 1
                             'Call C_1_GrArticuloReclasificacion_RP9_PE
                        Case 2
                            'Call C_2_GrArticuloReclasificacion_P03_CL
                        Case 4
        End Select
                        

End Sub

Attribute VB_Name = "D_BL_AR"



Attribute VB_Name = "D_EA_AR"
'
'/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
'                                                   EASY ARGENTINA                                                             /                                                    *
'/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Sub FullProcess_EASY_AR(Wb As Workbook)
'Para Este Punto si llega hasta aca esta obligado a trabajar en P03
UnidadNegocio = "EASY ARGENTINA" 'Fijo en este punto es Siempre Super Chile

Set session = Nothing 'nuevo...
Set session2 = Nothing 'nuevo...

IniciaScriptSAPAbierto 'inicio SAP, en caso de que sap no este iniciado sigue para poder abrirlo
    If session Is Nothing And session2 Is Nothing Then  ' si la sesion de sap no esta abierta tiene q ir al portal a abrirla
        ambiente = Analisaambiente(UnidadNegocio)
        PortalSAP
        IniciaScriptSAP
        Else
        ambiente = Analisaambiente(UnidadNegocio)
        AmbienteAbierto = Control_AmbienteAbierto
               If AmbienteAbierto <> ambiente Then 'Controla si el SAP abierto es el correcto
               CloseSession
               Kill_SAP
               PortalSAP
               IniciaScriptSAPAbierto
               IniciaScriptSAP
               End If
    End If

FilaForm = 13
ObsRobot = 1
    'UnidadNegocio = Wb.Sheets("Modificaciones").Range("D8").value
Wb.Sheets("Gestion_Almacen").Unprotect "ucdmcsc"
Set SKU = Wb.Sheets("Gestion_Almacen").Cells(FilaForm, 4)
    If SKU <> "" Then
    Wb.Sheets("Gestion_Almacen").Range("A13:A10000").ClearContents 'BorrarDAtosenCtrl_Fila
        Do Until SKU = ""
            Call LevantaVariablesForm_GestionAlmacenes
                Cargar_Gesition_Almacenes_AR
            UnidadNegocio = UCase(Wb.Sheets("Gestion_Almacen").Range("D8").value)
            Fcontroldefila = Wb.Sheets("Gestion_Almacen").Range("A" & FilaForm).value
            Carga_Metrica_BD "", UnidadNegocio, "PE0", "MODIFICACIÓN DATOS MAESTROS", "AM BIENES DE CAMBIO", "", "GESTION ALMACEN", NumberSolicitud, "GESTION_ALMACEN"
SeguirSiguiente:
            FilaForm = FilaForm + 1
            Set SKU = Wb.Sheets("Gestion_Almacen").Cells(FilaForm, 4)
        Loop
    End If
Wb.Sheets("Gestion_Almacen").Protect ("ucdmcsc")
End Sub



Public Function Cargar_Gesition_Almacenes_AR()
On Error Resume Next

            Ir_a_TX ("/nmm42")
On Error Resume Next
session.findById("wnd[0]/usr/ctxtRMMW1-MATNR").Text = CStr(SKU)
'session.findById("wnd[0]/usr/ctxtRMMW1-EKORG").Text = ""
session.findById("wnd[0]/usr/ctxtRMMW1-LIFNR").Text = ""
session.findById("wnd[0]/usr/ctxtRMMW1-LIFNR").Text = ""
session.findById("wnd[0]/usr/ctxtRMMW1-VKORG").Text = ""
session.findById("wnd[0]/usr/ctxtRMMW1-VTWEG").Text = ""
session.findById("wnd[0]/usr/ctxtRMMW1-VZWRK").Text = ""
'session.findById("wnd[0]").sendVKey 0 'Enter
            'Llamo a las funciones para seleccion de vistas
            SAPMenuAcceso_DestildarTodo
            SAPMenuAcceso_TildarChecks ("5")
            SAPMenuAcceso_PredeterminarVistas
session.findById("wnd[0]").sendVKey 0 'Enter
    
    CheckWarnin
    seguirProceso = Error_BarradeEstadoSAP("wnd[0]/sbar")
    sbar = session.findById("wnd[0]/sbar").Text
    If seguirProceso = 0 Then
    Wb.Sheets("Gestion_Almacen").Cells(FilaForm, ObsRobot).value = Wb.Sheets("Gestion_Almacen").Cells(FilaForm, ObsRobot).value & sbar & " "
    Exit Function
    End If


session.findById("wnd[0]/usr/tabsTABSPR1/tabpSP05/ssubTABFRA1:SAPLMGMW:2004/subSUB9:SAPLMGD2:2480/btnMARC_PUSH").press 'Presionar Gestion de Almacenes
CheckWarnin
'Dependiendo que pase aca.. tengo que ller por si la caracteristica Planificacion tiene algun dato malo uy modificarlo..


session.findById("wnd[1]/usr/ctxtRMMW1-LGNUM").Text = FNumAlmacenLGNUM 'ColocarLGNUM
session.findById("wnd[1]/usr/ctxtRMMW1-LGTYP").Text = FRpAlmacenLGTYP 'Coloca Tipo de Almacen
session.findById("wnd[1]").sendVKey 0


'Controlar que el Almacen y tipo de almacen sean correctos.
Cartelito = session.findById("wnd[2]/usr/txtMESSTXT1").Text
    If Cartelito <> "" Then
    Wb.Sheets("Gestion_Almacen").Cells(FilaForm, ObsRobot).value = Wb.Sheets("Gestion_Almacen").Cells(FilaForm, ObsRobot).value & "No es posible ingresar al Numero de Almacen y Tipo de Almacen Indicado."
    Exit Function
    End If


'LHMG1
If FctdMacLHMG1 <> "" Then session.findById("wnd[0]/usr/subSUB4:SAPLMGD2:2732/txtMLGN-LHMG1").Text = FctdMacLHMG1
    If FctdMacLHMG1 = "/" Then session.findById("wnd[0]/usr/subSUB4:SAPLMGD2:2732/txtMLGN-LHMG1").Text = "" 'Vacio
'LHME1
If FumLHME1 <> "" Then session.findById("wnd[0]/usr/subSUB4:SAPLMGD2:2732/ctxtMLGN-LHME1").Text = FumLHME1
    If FumLHME1 = "/" Then session.findById("wnd[0]/usr/subSUB4:SAPLMGD2:2732/ctxtMLGN-LHME1").Text = "" 'Vacio
'LETY1
If FTuaLETY1 <> "" Then session.findById("wnd[0]/usr/subSUB4:SAPLMGD2:2732/ctxtMLGN-LETY1").Text = Left(FTuaLETY1, 2)
    If FTuaLETY1 = "/" Then session.findById("wnd[0]/usr/subSUB4:SAPLMGD2:2732/ctxtMLGN-LETY1").Text = "" 'Vacio
'LTKZA
If FIndTpAlmaSalidaLTKZA <> "" Then session.findById("wnd[0]/usr/subSUB5:SAPLMGD2:2733/ctxtMLGN-LTKZA").Text = Left(FIndTpAlmaSalidaLTKZA, 3)
    If FIndTpAlmaSalidaLTKZA = "/" Then session.findById("wnd[0]/usr/subSUB5:SAPLMGD2:2733/ctxtMLGN-LTKZA").Text = "" 'Vacio
'LTKZE
If FIndTpAlmaEntradaLTKZE <> "" Then session.findById("wnd[0]/usr/subSUB5:SAPLMGD2:2733/ctxtMLGN-LTKZE").Text = Left(FIndTpAlmaEntradaLTKZE, 3)
    If FIndTpAlmaEntradaLTKZE = "/" Then session.findById("wnd[0]/usr/subSUB5:SAPLMGD2:2733/ctxtMLGN-LTKZE").Text = ""
'LGBKZ
If FIndAreaAlmaLGBKZ <> "" Then session.findById("wnd[0]/usr/subSUB5:SAPLMGD2:2733/ctxtMLGN-LGBKZ").Text = Left(FIndAreaAlmaLGBKZ, 3)
    If FIndAreaAlmaLGBKZ = "/" Then session.findById("wnd[0]/usr/subSUB5:SAPLMGD2:2733/ctxtMLGN-LGBKZ").Text = "" 'Vacio
'BLOCK
If FIndAlmBloquesBLOCK <> "" Then session.findById("wnd[0]/usr/subSUB5:SAPLMGD2:2733/ctxtMLGN-BLOCK").Text = Left(FIndAlmBloquesBLOCK, 2)
    If FIndAlmBloquesBLOCK = "/" Then session.findById("wnd[0]/usr/subSUB5:SAPLMGD2:2733/ctxtMLGN-BLOCK").Text = ""
'LGPLA
If FUbicacionLGPLA <> "" Then session.findById("wnd[0]/usr/subSUB6:SAPLMGD2:2734/ctxtMLGT-LGPLA").Text = FUbicacionLGPLA
    If FUbicacionLGPLA = "/" Then session.findById("wnd[0]/usr/subSUB6:SAPLMGD2:2734/ctxtMLGT-LGPLA").Text = "" 'Vacio
'LPMAX
If FctdUbicacionLPMAX <> "" Then session.findById("wnd[0]/usr/subSUB6:SAPLMGD2:2734/txtMLGT-LPMAX").Text = FctdUbicacionLPMAX
    If FctdUbicacionLPMAX = "/" Then session.findById("wnd[0]/usr/subSUB6:SAPLMGD2:2734/txtMLGT-LPMAX").Text = "" 'Vacio
'MAMNG
If FctdManipulacionMAMNG <> "" Then session.findById("wnd[0]/usr/subSUB6:SAPLMGD2:2734/txtMLGT-MAMNG").Text = FctdManipulacionMAMNG
    If FctdManipulacionMAMNG = "/" Then session.findById("wnd[0]/usr/subSUB6:SAPLMGD2:2734/txtMLGT-MAMNG").Text = "" 'Vacio
'LPMIN
If FctdUbicacionMinLPMIN <> "" Then session.findById("wnd[0]/usr/subSUB6:SAPLMGD2:2734/txtMLGT-LPMIN").Text = FctdUbicacionMinLPMIN
    If FctdUbicacionMinLPMIN = "/" Then session.findById("wnd[0]/usr/subSUB6:SAPLMGD2:2734/txtMLGT-LPMIN").Text = "" 'Vacio
'NSMNG
If FctdreposicionNSMNG <> "" Then session.findById("wnd[0]/usr/subSUB6:SAPLMGD2:2734/txtMLGT-NSMNG").Text = FctdreposicionNSMNG
    If FctdreposicionNSMNG = "/" Then session.findById("wnd[0]/usr/subSUB6:SAPLMGD2:2734/txtMLGT-NSMNG").Text = "" 'Vacio

session.findById("wnd[1]").sendVKey 0 'Enter
    CheckWarnin
    seguirProceso = Error_BarradeEstadoSAP("wnd[0]/sbar")
    sbar = session.findById("wnd[0]/sbar").Text
    If seguirProceso = 0 Then
    Wb.Sheets("Gestion_Almacen").Cells(FilaForm, ObsRobot).value = Wb.Sheets("Gestion_Almacen").Cells(FilaForm, ObsRobot).value & sbar & " "
    Exit Function
    End If

session.findById("wnd[0]/tbar[0]/btn[3]").press 'Voy para atras
CheckWarnin
    seguirProceso = Error_BarradeEstadoSAP("wnd[0]/sbar")
    sbar = session.findById("wnd[0]/sbar").Text
    If seguirProceso = 0 Then
    Wb.Sheets("Gestion_Almacen").Cells(FilaForm, ObsRobot).value = Wb.Sheets("Gestion_Almacen").Cells(FilaForm, ObsRobot).value & sbar & " "
    Exit Function
    End If

session.findById("wnd[0]/tbar[0]/btn[11]").press 'Guardar
CheckWarnin
    seguirProceso = Error_BarradeEstadoSAP("wnd[0]/sbar")
    sbar = session.findById("wnd[0]/sbar").Text
    If seguirProceso = 0 Then
    Wb.Sheets("Gestion_Almacen").Cells(FilaForm, ObsRobot).value = Wb.Sheets("Gestion_Almacen").Cells(FilaForm, ObsRobot).value & sbar & " "
    Exit Function
    End If

End Function

Attribute VB_Name = "E_Funciones"
Public Function PortalSAP()
'Stop 'revisar
Kill_SAP
    ConnectSapTo (ambiente)
End Function

Public Function ConnectSapTo(connectTo)

Dim WshShell
Dim SAPAlreadyRunning:                  SAPAlreadyRunning = 0
Dim SapAccessedWindowName:              SapAccessedWindowName = "SAP Easy Access"
Dim arrConexion(3, 10)
Set WshShell = CreateObject("WScript.Shell")
    Select Case connectTo 'Selector de Conector segun ID SAP
    Case "RP9": connection = "004. RP9 - Supermercados Perú"
    Case "PE0": connection = "003. PE0 - ERP MdH (Easy - Blaisten)"
    Case "P03": connection = "002. P03 - ERP Supermercados Chile"
    Case "PFO": connection = "001. PF0 - SAP FICO"
    End Select
v_Return = WshShell.Run("""C:\Program Files (x86)\SAP\FrontEnd\SAPgui\SapLogon""", 1, False) 'Ejecuta Sap LogOn
'v_Return = WshShell.Run("""C:\Program Files (x86)\SAP\SapSetup\setup\SAL\SapLogon.s8l""", 1, False) 'Ejecuta Sap LogOn revisar ruta de donde esta a veces falla...

pid = WaitForProcess("saplogon.exe", 7) 'Wait to load in Windows ...
'Se Loguea busca el PID activa la applicacion del logon y comienza a loguearse
    If pid > 0 Then
       WshShell.AppActivate pid
        'Ya con la app abierta me logueo con usuario y contraseña
Esperar (20)
    If Not IsObject(Application1) Then
       Set SapGuiAuto = GetObject("SAPGUI")
       Set Application1 = SapGuiAuto.GetScriptingEngine
    End If
    If Not IsObject(connection) Then
      Set connection = Application1.OpenConnection(connection, True)
    End If
    If Not IsObject(sapsession) Then
       Set session = connection.Children(0)
    End If
    If IsObject(WScript) Then
       WScript.ConnectObject Application1, "on"
    End If
        
        ''sapsessionPEW.findById("wnd[0]").resizeWorkingPane 69, 23, False para ponerlo en maximizado...
    Else 'en caso de No encontrar el PID
    Stop 'No encontro SAPLogon.exe Abierto
    End If
session.findById("wnd[0]").maximize 'Maximizar SAP
'''
''''para que funcione tener siepre en cuanta activar las referencias de vba complementos
''''Set WBMacroCris = ThisWorkbook
'''    Dim ie
'''    Dim doc
'''    Dim loaderSAP '
'''    Dim usuario
'''    Dim Contrasena
'''    'por si cambia usuario y contrasñea modificarlo aca mono"
'''    'tengo q pedir usuario y contraseña al que tiene la planilla con inputbox
'''
'''    usarioo = UCase(Environ("username"))
'''    Select Case usarioo
'''                Case "RDPALMA"
'''                usuario = "rdpalma"
'''                Contrasena = "medialuna16"
'''                Case "CRIROD"
'''                usuario = "crirod"
'''                Contrasena = Decrypt(WBMacroCris.Sheets("Hoja1").Range("L14").value)
'''    End Select
'''
''''Forzado para Usuario ROBOTUCDM_10
'''usuario = "ROBOTUCDM_10"
'''Contrasena = "2k1hz7i6"
''''************************************
'''On Error Resume Next
'''    Set ie = New InternetExplorerMedium
'''    ie.Visible = True 'hago visible a internet explorer
'''                If ambiente = "PE0" Then 'comienzo a decirle q sap debe abrir dependiento el ambiente q necesito
'''                    ie.navigate ("http://portalsap.cencosud.corp/PE0")
'''                ElseIf ambiente = "P03" Then
'''                    ie.navigate ("http://portalsap.cencosud.corp/P03")
'''                ElseIf ambiente = "RP9" Then
'''                     ie.navigate ("https://portalsap.cencosud.corp/SecureLoginServer/webclient/webclient.html?profile=4ae8fa8e-21b2-45b4-a022-5cbd56798450")
'''                ElseIf ambiente = "PP0" Then
'''                    ie.navigate ("http://portalsap.cencosud.corp/PP0")
'''                End If
'''
'''            Do Until ie.ReadyState = READYSTATE_COMPLETE: DoEvents: Loop 'el loop para que responda cuando complete de cargar IE
'''    Set doc = ie.Document
'''        With doc
'''            On Error Resume Next
'''            Set loaderSAP = .getelementbyid("SNCForm1").Children(0).Children(0).Children(0).Children(0).Children(0).Children(0).Children(1)
'''            Do Until loaderSAP Is Nothing
'''                Set loaderSAP = .getelementbyid("SNCForm1").Children(0).Children(0).Children(0).Children(0).Children(0).Children(0).Children(1)
'''            Loop
'''            On Error GoTo 0
'''            application.Wait (Now + TimeValue("00:00:10")) 'espero a que responda pagina
'''                On Error Resume Next
'''            .getelementbyid("un").value = usuario
'''            .getelementbyid("pw").value = Contrasena
'''            .getelementbyid("logon").Click
'''                On Error GoTo 0
'''        End With
'''application.Wait (Now + TimeValue("00:00:15")) 'espero a que se abra sap ...
End Function

Public Function ConnectSAPSecureLogin(IDConexionSap, NombreConexion, user, pass)
  Dim WshShell
  Dim SAPAlreadyRunning: SAPAlreadyRunning = 0
  Dim SapAccessedWindowName: SapAccessedWindowName = "SAP Easy Access"
  Dim arrConexion(3, 10)
 
  Set WshShell = CreateObject("WScript.Shell")
        connection = IDConexionSap
        'NombreConexion = "501.- Finanzas ERP - PEW - produccion"
        'abro sap
         v_Return = WshShell.Run("""C:\Program Files (x86)\SAP\SapSetup\setup\SAL\SapLogon.s8l""", 1, False)

        pid = WaitForProcess("saplogon.exe", 7)
        'Se Loguea
        If pid > 0 Then
            WshShell.AppActivate pid
            SApLoguear NombreConexion, user, pass
         End If
End Function
Public Function SApLoguear(connection, user, password)
    If Not IsObject(Application1) Then
       Set SapGuiAuto = GetObject("SAPGUI")
       Set Application1 = SapGuiAuto.GetScriptingEngine
    End If
    If Not IsObject(connection) Then
      On Error Resume Next
      Set connection = Application1.OpenConnection(connection, True)
    End If
    If Not IsObject(sapsession) Then
       Set sapsession = connection.Children(0)
    End If
    If IsObject(WScript) Then
       WScript.ConnectObject Application1, "on"
    End If
'    sapsession.findById("wnd[0]/usr/txtRSYST-BNAME").Text = user
'    sapsession.findById("wnd[0]/usr/pwdRSYST-BCODE").Text = password
'    sapsession.findById("wnd[0]/usr/txtRSYST-LANGU").Text = "es"
'    sapsession.findById("wnd[0]").sendVKey 0
'    On Error GoTo 0
End Function
…
vbaProject_00.bin vba-project OOXML VBA project: xl/vbaProject.bin 306688 bytes
SHA-256: 8de7b4b180994a28301a0314e4c6a91c208627cf689657fecfc4efcea517ff7f
Detection
ClamAV: Xls.Macro.Obfuscation-9804250-0
Obfuscation or payload: unlikely