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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


  Mostrar Mensajes
Páginas: [1] 2 3 4
1  Programación / Programación Visual Basic / Re: [Class] cStack (VB6) en: 27 Junio 2012, 14:37 pm
Muy interesante esa versión usando memoria, Gracias!!

Saludos!
2  Programación / Programación Visual Basic / Re: [Class] cStack (VB6) en: 26 Junio 2012, 10:12 am
I don't think so... The stack you are talking about is internal for the own executable. I made this class to simulate push and pop for an array. Maybe you can add you shellcode by using these two functions, it's an easier way only.
3  Programación / Programación Visual Basic / [Class] cStack (VB6) en: 25 Junio 2012, 17:46 pm
Buenas,
esta vez traigo algo más sencillo, la simulación de una pila (Stack) como conjunto. Sólo admite dos operaciones, Push, que añade un elemento (Integer en este caso) al final de un Array interno, y Pop, devuelve el último elemento de la pila.

Código
  1. Option Explicit
  2.  
  3. 'cStack by Slek, for Indetectables.net
  4. '25/6/2012
  5.  
  6. 'Nota:  Es una pila de Integer (puede ser modificado)
  7. '       It's an Integer's Stack (can be modified)
  8.  
  9. Dim Arr()   As Integer          'Array of elements
  10. Dim i       As Integer          'Current Index
  11.  
  12. Private Sub Class_Initialize()
  13. 'Initialize with Index 0
  14.  
  15.    i = 0
  16.  
  17.    Call Init(i)
  18.  
  19. End Sub
  20.  
  21. Public Sub Init(ByVal n As Integer)
  22. 'Initialize Arr() with n elements
  23.  
  24.    ReDim Arr(n)
  25.  
  26. End Sub
  27.  
  28.  
  29. Public Sub Push(ByVal n As Integer)
  30. 'Add n at the end
  31.  
  32.    Arr(i) = n
  33.  
  34.    i = i + 1
  35.  
  36.    If i > UBound(Arr) Then ReDim Preserve Arr(i * 2)
  37.  
  38. End Sub
  39.  
  40. Public Function Pop() As Integer
  41. 'Return last n
  42.  
  43.        i = i - 1
  44.  
  45.        Pop = Arr(i)
  46.  
  47. End Function

Saludos!
4  Programación / Programación Visual Basic / Re: [VB6] cSet (Orientación a objetos) en: 5 Junio 2012, 21:08 pm
Es mejor crear paginas de memoria... implementando listas enlazadas... aun que todo depende del uso que se le de...

Dulces Lunas!¡.

También tenía en mente implementar las listas enlazadas :P a ver si lo consigo.

Saludos! y gracias por comentar :)
5  Programación / Programación Visual Basic / Re: [VB6] cSet (Orientación a objetos) en: 1 Junio 2012, 19:23 pm
Uhmm muy bueno, no lo había visto jeje
Una pregunta, qué es mejor, crear el array de objetos dinámico o con un límite fijo, lo digo por eso de ocupar memoria.

Saludos!
6  Programación / Programación Visual Basic / [VB6] cSet (Orientación a objetos) en: 31 Mayo 2012, 21:41 pm
Se trata simplemente de una clase que permite usar un array como un conjunto, es decir, él mismo se encarga de redimensionar al añadir o eliminar un elemento, y si un elemento ya se encuentra en el array, no lo vuelve a incluir. El conjunto lo he hecho de Integer, pero se puede hacer de cualquier objeto comparable.

Código
  1. Option Explicit
  2.  
  3. 'cSet by Slek, for Indetectables.net
  4. '31/5/2012
  5.  
  6. 'Nota:  Es un conjunto de Integer (puede ser modificado)
  7. '       It's an Integer's Set (can be modified)
  8.  
  9. Dim Arr()   As Integer          'Array of elements
  10. Dim s       As Integer          'Number of elements included
  11.  
  12. Private Sub Class_Initialize()
  13. 'Initialize with 0 elements
  14.  
  15.    s = 0
  16.  
  17. End Sub
  18.  
  19. Public Sub add(ByVal n As Integer)
  20. 'Include n
  21.  
  22.    If Not contains(n) Then
  23.        ReDim Preserve Arr(s)
  24.        Arr(s) = n
  25.        s = s + 1
  26.    End If
  27.  
  28. End Sub
  29.  
  30. Public Sub remove(ByVal n As Integer)
  31. 'Exclude n
  32.  
  33.    Dim i   As Integer
  34.    Dim b   As Boolean
  35.  
  36.    For i = 0 To (s - 2)
  37.  
  38.        If Arr(i) = n Then b = True
  39.  
  40.        If b Then Arr(i) = Arr(i + 1)
  41.  
  42.    Next i
  43.  
  44.    s = s - 1
  45.    ReDim Preserve Arr(s - 1)
  46.  
  47. End Sub
  48.  
  49. Public Function size() As Integer
  50. 'Return number of elements
  51.  
  52.    size = s
  53.  
  54. End Function
  55.  
  56. Public Function contains(ByVal n As Integer) As Boolean
  57. 'Returns if n has already been included
  58.  
  59.    Dim i   As Integer
  60.  
  61.    For i = 0 To (s - 1)
  62.  
  63.        If Arr(i) = n Then
  64.            contains = True
  65.            Exit Function
  66.        End If
  67.  
  68.    Next i
  69.  
  70.    contains = False
  71.  
  72. End Function
  73.  
  74. Public Function toArray() As Integer()
  75. 'Return Array
  76.  
  77.    toArray = Arr
  78.  
  79. End Function

Ejemplo de uso:

Código
  1. Dim c As New cSet
  2. Dim a() As Integer
  3.  
  4. Call c.add(1)
  5.  
  6. MsgBox c.Contains(1)
  7.  
  8. Call c.add(1)
  9. Call c.add(30)
  10.  
  11. MsgBox c.size
  12.  
  13. Call c.remove(1)
  14.  
  15. a = c.toArray

Saludos!!
7  Programación / Programación Visual Basic / Re: mMemory - WriteProcessMemory/vbaCopyBytes/RtlMoveMemory replacement [NOAPI!!!] en: 6 Noviembre 2011, 17:08 pm
No sé qué estoy haciendo mal. Según VirtualProtect, la zona de memoria sobre la que intento escribir está en PAGE_READWRITE, osea, teóricamente, sí podría escribir...

Código
  1. Private Sub WriteString(ByVal lPtr As Long, ByVal sStr As String)
  2.    Dim bvStr()         As Byte
  3.  
  4.    bvStr = StrConv(sStr, vbFromUnicode)
  5.  
  6.    Call WriteMemory(lPtr, VarPtr(bvStr(0)), UBound(bvStr) + 1)
  7. End Sub

Código
  1. Call VirtualProtect(ByVal pLibraryName, Len(sLibName), PAGE_READWRITE, lngOldProtect)
  2. Msgbox lngOldProtect
  3. Call WriteString(pLibraryName, Decrypt(sLibName))

También he probado poniéndole PAGE_EXECUTE_READWRITE, pero tampoco

Es que esto de la memoria no es mi fuerte xD

Saludos!
8  Programación / Programación Visual Basic / Re: mMemory - WriteProcessMemory/vbaCopyBytes/RtlMoveMemory replacement [NOAPI!!!] en: 4 Noviembre 2011, 12:03 pm
Solo falta DESBLOQUEAR la memoria en writeMemory()...

Con Desbloquear la memoria te refieres a usar allocMem?

Saludos!
9  Programación / Programación Visual Basic / Re: Como crear Memoria Dinamica? en: 4 Noviembre 2011, 10:54 am
Ok ya lo pillo. Entonces, el +3 ese se podría omitir, y pushear el 10 al principio de los 8 bytes editables no?
10  Programación / Programación Visual Basic / Re: Como crear Memoria Dinamica? en: 3 Noviembre 2011, 21:32 pm
Tengo un par de preguntas sobre este tema. A ver, la función reallocMem, ¿la usas para convertir los datos de Long a Integer (osea, de 8 bytes de tamaño a 4)? ¿Para qué sirve exactamente releaseMem?
¿Por qué sumas +3 a la dirección de memoria editable del SafeArray?
Y la función reallocMem, ¿no debería ser así?
Código
  1. Public Function reallocMem(ByVal lptr As Long, ByVal lSize As Long) As Long
  2. '   //  Retorna la Dirrecion de un SafeArray que se retorno en allocMem()/reallocMem().
  3. Dim pBuff()     As Byte
  4.    PutMem4 VarPtrArr(pBuff), lptr
  5.    If (lSize = &H0) Then
  6.        Erase pBuff
  7.    Else
  8.        ReDim Preserve pBuff(0 To (lSize - 1))
  9.    End If
  10.    GetMem4 VarPtrArr(pBuff), VarPtr(reallocMem)
  11.    PutMem4 VarPtrArr(pBuff), 0
  12. End Function

Gracias!
Páginas: [1] 2 3 4
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines