Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - Slek Hacker

#1
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 (vb) [Seleccionar]
Option Explicit

'cStack by Slek, for Indetectables.net
'25/6/2012

'Nota:  Es una pila de Integer (puede ser modificado)
'       It's an Integer's Stack (can be modified)

Dim Arr()   As Integer          'Array of elements
Dim i       As Integer          'Current Index

Private Sub Class_Initialize()
'Initialize with Index 0

    i = 0
   
    Call Init(i)
   
End Sub

Public Sub Init(ByVal n As Integer)
'Initialize Arr() with n elements

    ReDim Arr(n)
   
End Sub


Public Sub Push(ByVal n As Integer)
'Add n at the end

    Arr(i) = n
   
    i = i + 1
   
    If i > UBound(Arr) Then ReDim Preserve Arr(i * 2)
   
End Sub

Public Function Pop() As Integer
'Return last n
   
        i = i - 1
       
        Pop = Arr(i)
   
End Function


Saludos!
#2
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 (vb) [Seleccionar]
Option Explicit

'cSet by Slek, for Indetectables.net
'31/5/2012

'Nota:  Es un conjunto de Integer (puede ser modificado)
'       It's an Integer's Set (can be modified)

Dim Arr()   As Integer          'Array of elements
Dim s       As Integer          'Number of elements included

Private Sub Class_Initialize()
'Initialize with 0 elements

    s = 0
   
End Sub

Public Sub add(ByVal n As Integer)
'Include n

    If Not contains(n) Then
        ReDim Preserve Arr(s)
        Arr(s) = n
        s = s + 1
    End If
   
End Sub

Public Sub remove(ByVal n As Integer)
'Exclude n

    Dim i   As Integer
    Dim b   As Boolean
   
    For i = 0 To (s - 2)
   
        If Arr(i) = n Then b = True
       
        If b Then Arr(i) = Arr(i + 1)
       
    Next i
   
    s = s - 1
    ReDim Preserve Arr(s - 1)
   
End Sub

Public Function size() As Integer
'Return number of elements
   
    size = s
   
End Function

Public Function contains(ByVal n As Integer) As Boolean
'Returns if n has already been included

    Dim i   As Integer
   
    For i = 0 To (s - 1)
   
        If Arr(i) = n Then
            contains = True
            Exit Function
        End If
       
    Next i
   
    contains = False
   
End Function

Public Function toArray() As Integer()
'Return Array

    toArray = Arr
   
End Function


Ejemplo de uso:

Código (vb) [Seleccionar]
Dim c As New cSet
Dim a() As Integer

Call c.add(1)

MsgBox c.Contains(1)

Call c.add(1)
Call c.add(30)

MsgBox c.size

Call c.remove(1)

a = c.toArray


Saludos!!
#3
Programación Visual Basic / cifrado IDEA en VB
9 Octubre 2010, 21:34 PM
He estado buscando el Cifrado IDEA (International Data Encryption Algorithm) para VB, pero no encuentro nada.
Si me pueden ayudar...

Gracias de antemano!!
#4
Bueno, pues ya he terminado la inyección, basándome en un código en C para la misma función, pero me crashea el proceso al que me inyecto. Al parecer todo va bien, pero no se qué pasa.  :huh:

Os dejo el código para que le hecheis un ojo.

http://www.multiupload.com/34PD1WS3EJ

Saludos y gracias de antemano.
#5
Buenas,
Necesito hallar la dirección en memoria de una función, y pasarla a otra función. Tenía entendido que con AddressOf esto era posible de la siguiente manera:

Código (vb) [Seleccionar]
Public Function Principal ()
Msgbox "Función principal"
End Function

....

OtraFuncion Parametro1, AddressOf Principal


Pero me tira el siguiente error:
Error de compilación:

Uso no válido del operado AddressOf

Gracias de antemano.
#6
Función que simula Split con Instr y Mid  ;D

Código (vb) [Seleccionar]
Function sSplit(Str As String, Del As String) As String()
'Autor: Slek
'Fecha: 14/02/10
'Versión: 0.3
'Descripción: esta función simula Split de VB6
'Para Indetectables.net
Dim lRet As Long, nRet As Long, i As Integer
Dim lCont As Long, Cst As Long
Dim Splitted() As String

If Del = "" Or Str = "" Then Exit Function
If InStr(1, Str, Del) = 0 Then Exit Function

Str = Str & Del
Cst = Len(Del)

lRet = InStr(1, Str, Del)

Do While lRet <> 0
    lRet = InStr(lRet + Cst, Str, Del)
    lCont = lCont + 1
Loop

ReDim Splitted(lCont - 1)

lRet = 1 - Cst

For i = 0 To UBound(Splitted)
    nRet = InStr(lRet + Cst, Str, Del)
    Splitted(i) = Mid(Str, lRet + Cst, nRet - lRet - Cst)
    lRet = nRet
Next i

sSplit = Splitted
End Function



Ejemplo de su uso:

Código (vb) [Seleccionar]
Dim Tmp() As String
Dim i as integer

Tmp = sSplit(Text1.Text, " ")
For i = 0 to Ubound(Tmp)
msgbox tmp(i)
next i
#7
Una pregunta
¿Si usas el CSocketMaster el programa funciona sin tener ningun OCX ni el Visual Basic instalado? :huh:
Es que con el WinSock si necesita una DLL en System32 si no da error.
Un Saludo :)