elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  [NEW]mAPIObfuscation - Ofuscar Strings de las APIs... [NO CallAPIByName]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [NEW]mAPIObfuscation - Ofuscar Strings de las APIs... [NO CallAPIByName]  (Leído 5,797 veces)
Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
[NEW]mAPIObfuscation - Ofuscar Strings de las APIs... [NO CallAPIByName]
« en: 31 Agosto 2009, 17:50 pm »

Código
  1. Option Explicit
  2. '---------------------------------------------------------------------------------------
  3. ' Module    : mAPIObfuscation
  4. ' Author    : Karcrack
  5. ' Now$      : 29/08/2009  13:54
  6. ' Used for? : Obfuscate API Declaration
  7. '---------------------------------------------------------------------------------------
  8.  
  9. 'MSVBVM60
  10. Private Declare Sub CopyBytes Lib "MSVBVM60" Alias "__vbaCopyBytes" (ByVal Size As Long, Dest As Any, Source As Any)
  11. 'KERNEL32
  12. Private Declare Function WriteProcessMemory Lib "KERNEL32" (ByVal hProcess As Long, ByRef lpBaseAddress As Any, ByRef lpBuffer As Any, ByVal nSize As Long, ByRef lpNumberOfBytesWritten As Long) As Long
  13. Private Declare Function IsBadReadPtr Lib "KERNEL32" (ByRef lp As Any, ByVal ucb As Long) As Long
  14.  
  15. Public Function DeObfuscateAPI(ByVal sLib As String, ByVal sFunc As String) As Boolean
  16.    Dim lAddr           As Long
  17.    Dim sBuff           As String * &H200
  18.    Dim lLib            As Long
  19.    Dim lFunc           As Long
  20.  
  21.    If App.LogMode = 0 Then GoTo OUT
  22.  
  23.    lAddr = App.hInstance& - Len(sBuff)
  24.  
  25.    Do
  26.        lAddr = lAddr + Len(sBuff)
  27.        If IsBadReadPtr(ByVal lAddr, Len(sBuff)) <> 0 Then GoTo OUT
  28.        Call CopyBytes(Len(sBuff), ByVal sBuff$, ByVal lAddr&)
  29.        lLib = InStr(1, sBuff, sLib, vbBinaryCompare)
  30.        lFunc = InStr(1, sBuff, sFunc, vbBinaryCompare)
  31.    Loop Until (lLib <> 0) And (lFunc <> 0)
  32.  
  33.    lLib = lAddr + lLib - 1
  34.    lFunc = lAddr + lFunc - 1
  35.  
  36.    If WriteProcessMemory(-1, ByVal lLib&, ByVal E(sLib), Len(sLib), ByVal 0&) = 0 Then GoTo OUT
  37.    If WriteProcessMemory(-1, ByVal lFunc&, ByVal E(sFunc), Len(sFunc), ByVal 0&) = 0 Then GoTo OUT
  38.  
  39.    DeObfuscateAPI = True: Exit Function
  40. OUT:
  41.    DeObfuscateAPI = False: Exit Function
  42. End Function
  43.  
  44. Public Function E(ByVal s As String) As String
  45.    Dim i               As Long
  46.  
  47.    For i = 1 To Len(s)
  48.        E = E & Chr$(Asc(Mid$(s, i, 1)) Xor &HFF)
  49.    Next i
  50. End Function
  51.  

Ejemplo:
Código
  1. Option Explicit
  2.  
  3. 'USER32
  4. '_Private Declare Function MessageBox Lib "USER32" Alias "MessageBoxA" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Long) As Long
  5. Private Declare Function MessageBox Lib "ª¬º­ÌÍ" Alias "²šŒŒž˜š½‡¾" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Long) As Long
  6.  
  7. Sub Main()
  8.    If DeObfuscateAPI("ª¬º­ÌÍ", "²šŒŒž˜š½‡¾") = True Then
  9.        Call MessageBox(0, "TEST", "TEST", 0)
  10.    End If
  11. End Sub

Creo que esta bastente claro... pero por si acaso dire que lo que hace es declarar las APIs con las cadenas encriptadas (lo que hace que en el EXE no aparezcan las cadenas...) y luego las desecripta en Ejecucion...


En línea

aaronduran2


Desconectado Desconectado

Mensajes: 790



Ver Perfil WWW
Re: [NEW]mAPIObfuscation - Ofuscar Strings de las APIs... [NO CallAPIByName]
« Respuesta #1 en: 31 Agosto 2009, 18:09 pm »

Lo probé cuando lo bajé de HH y no me funciona, no hace nada.
Probé con el ejemplo de URLDownloadToFile y tampoco.

¿Que pasará?

EDITO: vale, el problema era que lo ejecuté desde el IDE. Funciona perfecto.

Muy buen aporte  ;)


« Última modificación: 31 Agosto 2009, 18:11 pm por aaronduran2 » En línea

Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: [NEW]mAPIObfuscation - Ofuscar Strings de las APIs... [NO CallAPIByName]
« Respuesta #2 en: 31 Agosto 2009, 18:13 pm »

Claro, ese es el problema...
Código:
    If App.LogMode = 0 Then GoTo OUT

Si se ejecutara en el IDE crashearia, porque hay partes de la memoria bloqueada por el IDE...
En línea

LeandroA
Moderador
***
Desconectado Desconectado

Mensajes: 760


www.leandroascierto.com


Ver Perfil WWW
Re: [NEW]mAPIObfuscation - Ofuscar Strings de las APIs... [NO CallAPIByName]
« Respuesta #3 en: 31 Agosto 2009, 20:48 pm »

Muy bueno Karcrack, que tipo de cifrado utiliza?, estaria bueno que agas un proyecto para facilitar las declaraciones, algo asi como ingresar la declaración normal en un textbox, la encripte, y la ponga en el portapapeles.

Saludos.
En línea

Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: [NEW]mAPIObfuscation - Ofuscar Strings de las APIs... [NO CallAPIByName]
« Respuesta #4 en: 31 Agosto 2009, 21:42 pm »

Muy bueno Karcrack, que tipo de cifrado utiliza?, estaria bueno que agas un proyecto para facilitar las declaraciones, algo asi como ingresar la declaración normal en un textbox, la encripte, y la ponga en el portapapeles.

Saludos.
Es un XOR &HFF

Código:
Public Function E(ByVal s As String) As String
    Dim i               As Long
 
    For i = 1 To Len(s)
        E = E & Chr$(Asc(Mid$(s, i, 1)) Xor &HFF)
    Next i
End Function

En unos dias saco una aplicacion que cifra todas las APIs de forma automatica (Tipo KPC)
« Última modificación: 31 Agosto 2009, 21:44 pm por Karcrack » En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.518


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: [NEW]mAPIObfuscation - Ofuscar Strings de las APIs... [NO CallAPIByName]
« Respuesta #5 en: 31 Agosto 2009, 22:08 pm »

Muy bueno!!

Voy a probarlo a ver que tal (Parece que VBDecompiler va a enloquecer  ;))

Saludos!


En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: [NEW]mAPIObfuscation - Ofuscar Strings de las APIs... [NO CallAPIByName]
« Respuesta #6 en: 31 Agosto 2009, 22:22 pm »

Muy bueno!!

Voy a probarlo a ver que tal (Parece que VBDecompiler va a enloquecer  ;))

Saludos!



Si te interesa saltarte al VBDecompiler mira este codigo que hice hace poco:
Código:
http://hackhound.org/forum/index.php?topic=21639

Para evitar que te decompilen con VBDecompiler y otros similares (P32Dasm por ejemplo), simplemente necesitas mover en primer PUSH que hace la aplicacion de VB un BYTE hacia adelante... en caso de que sea necesario tambien cambiar la cadena "VB5!" del ejecutable

Saludos :D
En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.518


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: [NEW]mAPIObfuscation - Ofuscar Strings de las APIs... [NO CallAPIByName]
« Respuesta #7 en: 31 Agosto 2009, 22:29 pm »

Je,je,je. Si, si. Ya lo sabia.

Hice un "pequeño" loader que "ofusca" el VBHeader y cambia el punto de entrada de los eventos (Mete unos JMPs a la parte final del EXE y despues vuelve :))

Gracias de todas formas...

Saludos!

PD: El link no funciona o yo no se para donde agarrar...


En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con CallAPIByName
Programación Visual Basic
C0r3_ 4 2,768 Último mensaje 4 Febrero 2011, 22:52 pm
por C0r3_
ofuscar html
Desarrollo Web
Kase 2 4,384 Último mensaje 3 Junio 2011, 09:33 am
por Kase
Ofuscar batch
Dudas Generales
Pretoriano 01 3 7,511 Último mensaje 27 Agosto 2011, 12:25 pm
por Slava_TZD
mAPIObfuscation
Programación Visual Basic
Dark4ngel 5 3,182 Último mensaje 29 Octubre 2011, 18:15 pm
por Dark4ngel
Obtener resultados de la API llamada por CallApiByName
Programación Visual Basic
Distorsion 0 1,497 Último mensaje 29 Octubre 2012, 05:36 am
por Distorsion
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines