Jump to content

LuisRojas

Members
  • Content Count

    63
  • Joined

  • Last visited

  • Days Won

    2

LuisRojas last won the day on February 5 2016

LuisRojas had the most liked content!

About LuisRojas

  • Rank
    Advanced Member
  • Birthday 11/12/1992

Converted

  • Campos
    ,

Recent Profile Visitors

792 profile views
  1. Gracias @avalencia por tu respuesta, voy a buscar el archivo con las modificaciones de CMG, DPB y GC igual a "vacías", me lo enviaron por whatsapp hace tiempo y como cambio de cuentas constantemente, lo he perdido, pero trataré de conseguir uno similar El proceso que describes para la modificación desde VBA, lo entiendo, pero cuando mencionas a ADO a qué te refieres? Normalmente ADO lo utilizo para conexión a BD, a menos que sea otro ADO El código del amigo vietnamita lo he usado principalmente para desbloqueo de archivo xlam, y me ha servido mucho, he encontrado código muy interesante Sobre el archivo protegido con Unviewable+, sólo lo coloqué como ejemplo, ese archivo es de descarga gratuita, y sólo mencioné que con el método que explicaste inicialmente no se podía leer, pero ahora ya entiendo mejor la lógica de cómo 'desbloquearlo' manualmente; para leer cualquier archivo de Gustavo basta con usar a LibreOffice y se tendrá el acceso, eso lo descubrí hace unos años, lamentablemente ya no publica mucho Más adelante investigaré sobre VSTO, ahora estoy un poco entretenido con otro lenguaje jeje, gracias por el dato Bastante interesante el tema
  2. @bigpetroman estaba leyendo la publicación que mencionaste, te comento que la forma de generar una ofuscación de este tipo OO001ll0O1l es con unviewable+ (https://www.spreadsheet1.com/unviewable-vba-project-app-for-excel.html) Aquí un ejemplo https://www.spreadsheet1.com/excel-vba-code-obfuscation.html
  3. Claro esa ofuscación es cambiando los nombres de módulos, procesos, funciones y variables a esta forma i101101l0 Pero la que he adjuntado es de esta forma Option Explicit Const BmLGnerFlNWocU = "EDJ(thv-Y8r­U:Iex-29=\OuM[{>" Const nebEGDXSXxaUBUxwzCloLPUoY = _ "Qr@W<SVJ@g/2j^~9­%GhFtQ[kxOSDao<%+[mChC" Public jENBaeDwEJWbTSzpzfRnTqsBRutZlku As _ String Function CqhIMDiALohuSNoCbIFFRxUigWHAFpy(OMZfAMOCV As String) As String CqhIMDiALohuSNoCbIFFRxUigWHAFpy = SKZbYYHYApXwsyIUzNawpqEiZSrbpAX(OMZfAMOCV) End Function Function _ SKZbYYHYApXwsyIUzNawpqEiZSrbpAX(ykyyvxNRYfYQ As _ String) As _ String Dim iKcdZPqRjUprE As Byte, rmUoKGAsfWuGMQDUVNJXIUtNNkRFXQE As Long, OTLAeQNkZvgO As Integer, RCwymCjoWmarswqbGRLeV As Integer, PvlyHBcMRhTsQ As Long, aFKMSsUbFtlmItcDAH As Long, aZBYfonpWJIuUnKpyYzteSZG As Long, ptueAHfGdIqysAQaQn As String, mGAXQjfB As String, FIkiydcBOieKJuPMryMBrEpzOCKA As String, zxVnYNYnElZuZVuRTRgvhtQLnhu As String, aqWUqbjkvXWJYyaJDfbfbOnbMAI As String FIkiydcBOieKJuPMryMBrEpzOCKA = "" If ykyyvxNRYfYQ <> "" Then zxVnYNYnElZuZVuRTRgvhtQLnhu = ykyyvxNRYfYQ iKcdZPqRjUprE = 29687 - &H734A RCwymCjoWmarswqbGRLeV = InStr(ykyyvxNRYfYQ, _ Chr(iKcdZPqRjUprE)) If jENBaeDwEJWbTSzpzfRnTqsBRutZlku = "" Then aqWUqbjkvXWJYyaJDfbfbOnbMAI = """" For PvlyHBcMRhTsQ = _ &H373E - 14110 To 4922 - &H12BC If InStr( _ aqWUqbjkvXWJYyaJDfbfbOnbMAI, Chr( _ PvlyHBcMRhTsQ)) = 0 Then jENBaeDwEJWbTSzpzfRnTqsBRutZlku = jENBaeDwEJWbTSzpzfRnTqsBRutZlku & _ Chr(PvlyHBcMRhTsQ) Next _ PvlyHBcMRhTsQ End If aZBYfonpWJIuUnKpyYzteSZG = Len(jENBaeDwEJWbTSzpzfRnTqsBRutZlku) mGAXQjfB = Left( _ zxVnYNYnElZuZVuRTRgvhtQLnhu, _ RCwymCjoWmarswqbGRLeV - 1) zxVnYNYnElZuZVuRTRgvhtQLnhu = Right(zxVnYNYnElZuZVuRTRgvhtQLnhu, Len(zxVnYNYnElZuZVuRTRgvhtQLnhu) - _ RCwymCjoWmarswqbGRLeV) ptueAHfGdIqysAQaQn = "" For PvlyHBcMRhTsQ = 1 To Len(zxVnYNYnElZuZVuRTRgvhtQLnhu) Step 2 ptueAHfGdIqysAQaQn = _ ptueAHfGdIqysAQaQn & _ Mid( _ zxVnYNYnElZuZVuRTRgvhtQLnhu, PvlyHBcMRhTsQ + 1, 1) & _ Mid(zxVnYNYnElZuZVuRTRgvhtQLnhu, PvlyHBcMRhTsQ, 1) Next PvlyHBcMRhTsQ zxVnYNYnElZuZVuRTRgvhtQLnhu = _ ptueAHfGdIqysAQaQn aFKMSsUbFtlmItcDAH = 0 For _ PvlyHBcMRhTsQ = 1 To _ Len( _ zxVnYNYnElZuZVuRTRgvhtQLnhu) ptueAHfGdIqysAQaQn = Mid(zxVnYNYnElZuZVuRTRgvhtQLnhu, PvlyHBcMRhTsQ, 1) rmUoKGAsfWuGMQDUVNJXIUtNNkRFXQE = Asc(ptueAHfGdIqysAQaQn) RCwymCjoWmarswqbGRLeV = InStr( _ jENBaeDwEJWbTSzpzfRnTqsBRutZlku, ptueAHfGdIqysAQaQn) If RCwymCjoWmarswqbGRLeV = 0 Then If rmUoKGAsfWuGMQDUVNJXIUtNNkRFXQE >= (483 - &H163) Then rmUoKGAsfWuGMQDUVNJXIUtNNkRFXQE = rmUoKGAsfWuGMQDUVNJXIUtNNkRFXQE + (&H6ED6 - _ 28310) If rmUoKGAsfWuGMQDUVNJXIUtNNkRFXQE > (21678 - _ &H53AF) Then rmUoKGAsfWuGMQDUVNJXIUtNNkRFXQE = _ rmUoKGAsfWuGMQDUVNJXIUtNNkRFXQE - _ (&H44CE - _ 17486) ptueAHfGdIqysAQaQn = _ Chr(rmUoKGAsfWuGMQDUVNJXIUtNNkRFXQE) End If FIkiydcBOieKJuPMryMBrEpzOCKA = FIkiydcBOieKJuPMryMBrEpzOCKA & ptueAHfGdIqysAQaQn Else aFKMSsUbFtlmItcDAH = aFKMSsUbFtlmItcDAH + _ 1 If _ aFKMSsUbFtlmItcDAH > Len(mGAXQjfB) Then aFKMSsUbFtlmItcDAH = 1 OTLAeQNkZvgO = Asc(Mid(mGAXQjfB, _ aFKMSsUbFtlmItcDAH, 1)) RCwymCjoWmarswqbGRLeV = RCwymCjoWmarswqbGRLeV - _ OTLAeQNkZvgO While RCwymCjoWmarswqbGRLeV > _ aZBYfonpWJIuUnKpyYzteSZG RCwymCjoWmarswqbGRLeV = RCwymCjoWmarswqbGRLeV - aZBYfonpWJIuUnKpyYzteSZG Wend While RCwymCjoWmarswqbGRLeV < 0 RCwymCjoWmarswqbGRLeV = RCwymCjoWmarswqbGRLeV + _ aZBYfonpWJIuUnKpyYzteSZG Wend If RCwymCjoWmarswqbGRLeV = 0 Then RCwymCjoWmarswqbGRLeV = aZBYfonpWJIuUnKpyYzteSZG FIkiydcBOieKJuPMryMBrEpzOCKA = FIkiydcBOieKJuPMryMBrEpzOCKA & Mid(jENBaeDwEJWbTSzpzfRnTqsBRutZlku, RCwymCjoWmarswqbGRLeV, 1) End If Next PvlyHBcMRhTsQ End If SKZbYYHYApXwsyIUzNawpqEiZSrbpAX = FIkiydcBOieKJuPMryMBrEpzOCKA End Function Sub macro1() MsgBox CqhIMDiALohuSNoCbIFFRxUigWHAFpy(BmLGnerFlNWocU), vbInformation, "Luis Rojas" End Sub Sub macro2() MsgBox aWmBKfnaMCtHjBNKJtDBMONaoxlugea( _ nebEGDXSXxaUBUxwzCloLPUoY), vbInformation, _ "Luis Rojas" End Sub Function aWmBKfnaMCtHjBNKJtDBMONaoxlugea(ghEoRjlqdMhhf As String) As String aWmBKfnaMCtHjBNKJtDBMONaoxlugea = SKZbYYHYApXwsyIUzNawpqEiZSrbpAX(ghEoRjlqdMhhf) End Function Me parece más dificil de entender, al menos para un usuario estándar, el código original fue este: Sub macro1() MsgBox "Soy un cacahuate", vbInformation, "Luis Rojas" End Sub Sub macro2() MsgBox "Todos somos cacahuates", vbInformation, "Luis Rojas" End Sub Ahora agregándo un ROT13 al nombre (Luis Rojas) me parece que se podría mejorar un poco
  4. Me refería a archivos como este https://1drv.ms/x/s!AirYPHTXALPMhgx7zbHqls2mlvYj (Que es de descarga gratis desde la web) Y fue protegido con Unviewable+ 2.7.3, en este caso no puedo desbloquearlo
  5. No viene con el tema de 'proyecto bloqueado', pero he logrado obtener esto https://1drv.ms/x/s!AirYPHTXALPMhgtFOqdmo4BEb0Kw Agreándole un 'bloqueo' daría mayor seguridad @avalencia no me gusta mencionar código que he visto y no lo tengo ahora, pero en una ocasión una persona con quien me medía en VBA me pasó un archivo que después de desbloquear pude ver código ofuscado VBA (similar al que adjunto) y en una parte decía CMG="", DPB="" GC="", lamentablemente no tengo el archivo Sabrás si puedo modificar estos valores desde VBA? quizá con alguna API. Te comento que a la fecha estoy siguiendo a un vietnamita programador en VBA Excel, y coloca mucho código interesante, por ejemplo este: Option Explicit Private Const PAGE_EXECUTE_READWRITE = &H40 Private Declare PtrSafe Sub MoveMemory Lib "kernel32" Alias "RtlMoveMemory" _ (Destination As LongPtr, Source As LongPtr, ByVal Length As LongPtr) Private Declare PtrSafe Function VirtualProtect Lib "kernel32" (lpAddress As LongPtr, _ ByVal dwSize As LongPtr, ByVal flNewProtect As LongPtr, lpflOldProtect As LongPtr) As LongPtr Private Declare PtrSafe Function GetModuleHandleA Lib "kernel32" (ByVal lpModuleName As String) As LongPtr Private Declare PtrSafe Function GetProcAddress Lib "kernel32" (ByVal hModule As LongPtr, _ ByVal lpProcName As String) As LongPtr Private Declare PtrSafe Function DialogBoxParam Lib "user32" Alias "DialogBoxParamA" (ByVal hInstance As LongPtr, _ ByVal pTemplateName As LongPtr, ByVal hWndParent As LongPtr, _ ByVal lpDialogFunc As LongPtr, ByVal dwInitParam As LongPtr) As Integer Dim HookBytes(0 To 5) As Byte Dim OriginBytes(0 To 5) As Byte Dim pFunc As LongPtr Dim Flag As Boolean Private Function GetPtr(ByVal Value As LongPtr) As LongPtr GetPtr = Value End Function Public Sub RecoverBytes() If Flag Then MoveMemory ByVal pFunc, ByVal VarPtr(OriginBytes(0)), 6 End Sub Public Function Hook() As Boolean Dim TmpBytes(0 To 5) As Byte Dim p As LongPtr Dim OriginProtect As LongPtr Hook = False pFunc = GetProcAddress(GetModuleHandleA("user32.dll"), "DialogBoxParamA") If VirtualProtect(ByVal pFunc, 6, PAGE_EXECUTE_READWRITE, OriginProtect) <> 0 Then MoveMemory ByVal VarPtr(TmpBytes(0)), ByVal pFunc, 6 If TmpBytes(0) <> &H68 Then MoveMemory ByVal VarPtr(OriginBytes(0)), ByVal pFunc, 6 p = GetPtr(AddressOf MyDialogBoxParam) HookBytes(0) = &H68 MoveMemory ByVal VarPtr(HookBytes(1)), ByVal VarPtr(p), 4 HookBytes(5) = &HC3 MoveMemory ByVal pFunc, ByVal VarPtr(HookBytes(0)), 6 Flag = True Hook = True End If End If End Function Private Function MyDialogBoxParam(ByVal hInstance As LongPtr, _ ByVal pTemplateName As LongPtr, ByVal hWndParent As LongPtr, _ ByVal lpDialogFunc As LongPtr, ByVal dwInitParam As LongPtr) As Integer If pTemplateName = 4070 Then MyDialogBoxParam = 1 Else RecoverBytes MyDialogBoxParam = DialogBoxParam(hInstance, pTemplateName, _ hWndParent, lpDialogFunc, dwInitParam) Hook End If End Function Sub unprotected() If Hook Then MsgBox "VBA Project is unprotected!", vbInformation, "*****" End If End Sub Con el cual se puede liberar la contraseña de un proyecto VBA (64bits) sin necesidad de usar un hexadecimal, ni el típico cambio de DPB a DPx
  6. Gracias @avalencia me ha funcionado bien. aunque este método no funciona con archivos que han sido generados con algunos programas, acabo de encontrar un código bastante interesante tratando de investigar sobre este tema Continuaré investigando para complementar más la idea
  7. Hola mundo! Espero no revivir un muerto Estaba leyendo en el grupo y vi un post sobre el proyecto bloqueado, pero el tema ya fue cerrado, por lo que publiqué este nuevo He logrado generar el proyecto bloqueado manualmente, aquí les dejo dos archivos uno 'Sin proyecto bloqueado' y el otro que con 'el proyecto bloqueado', que lo puedo generar con un lector hexadecimal https://drive.google.com/drive/folders/1ND0fWbdMRU6AkIwxICimpGhCGLIlHDdV?usp=sharing Como les comenté he logrado generar el proyecto bloqueado, pero mi duda va más por cómo regresar mi archivo con proyecto bloqueado al archivo original, ciertamente lo hexadecimal me marea un poco En la siguiente imagen les muestro cómo he generado el proyecto bloqueado: https://drive.google.com/file/d/1ir3YtQN168DC6ivSqjZN5JdtpFhhsyqc/view?usp=sharing Habrá alguien en el grupo que me pueda explicar sobre la igualdad que debería tener el CMG, GC y DPB para desbloquearlo?, o sino otra forma de desbloquearlo manualmente, ya que programas para realizar este 'desbloqueo' existen, pero quiero aprender a hacerlo manualmente Espero sus respuestas
  8. Sabes Abraham estos últimos meses he estado aburrido, y recién hace unos días me acordé del foro y bueno aquí nuevamente, aunque ahora veo que los aportantes han cambiado mucho Qué divertido hablar contigo, a ver mmm tengo el del proyecto bloqueado, desbloqueo de proyecto bloqueado, consultas masivas EsSalud con un Captcha (Yo mismo lo hice), mmm consultas masivas Sunat (evadiendo el captcha sin un usar un lector) mmm una que otra API divertida por ahí Veo que también eres de Perú por eso menciono a EsSalud y Sunat
  9. Pero sí hay forma de leer con fondo oscuro y letras blancas usando ese método, lo vi en YouTube Yo logré leer el captcha con fondo negro con un OCR JavaScript, que funciona mejor que el que he compartido Gracias por tus comentarios Abraham, tengo algunas cosillas más por ahí para entrenernos jajaja
  10. @avalencia he compartido un lector de captcha que cree, si puedes comentar mi nueva publicación sería súper bueno
  11. Hola a todos! Nuevamente publicando Verán no es tanto un problema el que tengo, sino quisiera solicitarles sugerencias de mejora, he creado un lector de captcha cogiendo código de por aquí y por allá https://drive.google.com/file/d/1JJ7H3bzVI_L_Ef0diSynJrB-8oW7r_pq/view?usp=sharing Y me resulta útil para saltarme algunos captchas, pero no mucho cuando la imagen, por ejemplo, tiene fondo negro o pequeñas ofuscaciones Espero comentarios
  12. Súper súper bueno Muchas gracias @avalencia, por ahí tengo otros archivos interesantes que más adelante compartiré y también preguntaré Lo máximo!
  13. Sí, con la ayuda de la ventana inmediato se puede obtener el nombre o también en el Examinador de proyectos Y luego hacer el proceso que describe @avalencia Genial! Es lo que quiero obtener, esperaré tu mensaje gracias
  14. Pasos para realizar el módulo 'oculto' Extensión XLSM - Cambiar la extensión por ZIP y descomprimir el contenido - Abrir con un lector hexadecimal el archivo vbaProject.bin que se encuentra en la carpeta xl (Yo uso HxD) - Buscar y luego modificar Module=Módulo1 por espacios en blanco, un espacio en blanco por caracter - Guardar cambios y borrar el archivo bak que se genera después de guardar cambios - Comprimir todo en un ZIP - Cambiar la extensión ZIP por XLSM y listo! Lo aprendí de este manual https://1drv.ms/b/s!AirYPHTXALPMhgOPXc2NYTqljR-a
  15. Muchas gracias por dedicarle tiempo @avalencia Seguiré intentando cómo hacerlo, tengo un manual que me está ayudando, espero haya más participaciones, es un tema bastante interesante como dice @Gerson Pineda
×
×
  • Create New...

Important Information

Privacy Policy