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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Instr para byte arrays [src]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Instr para byte arrays [src]  (Leído 1,640 veces)
cobein


Desconectado Desconectado

Mensajes: 759



Ver Perfil WWW
Instr para byte arrays [src]
« en: 31 Mayo 2009, 04:53 am »

Hace mucho que no posteo nada por aca.

Perdon por ponerlo en ingles pero no tengo ganas de escribir esto de vuelta.

A friend of mine was doing some buffer parsing and he was needing a way to find certain bytes in a byte array (an Instr with bytes) so the first answer was, use two loops, one to increase the index in the buffer and the second to compare but, this was kinda crappy so after using the neurons for a while I came out with this solution. Its notably faster and it uses less iterations than a normal 2 loop seach , about  [match position / match bytes len] match position is the index in the buffer where the first match is located.

This function does not make use of any API, meaning it can be modded to speed it up but, I wanted to keep it simple to try the concept.

http://www.mediafire.com/?sharekey=772aae6ba8d94e0c7432d3c9683f450ae04e75f6e8ebb871


En línea

http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.
XcryptOR

Desconectado Desconectado

Mensajes: 228



Ver Perfil
Re: Instr para byte arrays [src]
« Respuesta #1 en: 31 Mayo 2009, 05:00 am »

very good, jajaja, i've already have seen on HH.

saludos


« Última modificación: 31 Mayo 2009, 05:03 am por XcryptOR » En línea



LeandroA
Moderador
***
Desconectado Desconectado

Mensajes: 760


www.leandroascierto.com


Ver Perfil WWW
Re: Instr para byte arrays [src]
« Respuesta #2 en: 31 Mayo 2009, 05:51 am »

hola muy bueno, creo que se puede optimizar un poquito mas comparando el primer bits de la búsqueda con el del bucle general

Código:
Public Function FindBytes2( _
       ByRef bvSource() As Byte, _
       ByRef bvMatch() As Byte) As Long

    Dim i       As Long
    Dim j       As Long
    Dim bFlag   As Boolean
    Dim lChr As Long
    Dim LenMach As Long
   
    LenMach = UBound(bvMatch)
   
    FindBytes2 = -1
    lChr = bvMatch(0)
   
    For i = 0 To UBound(bvSource)
        If lChr = bvSource(i) Then
            If LenMach > 0 Then
                For j = 1 To LenMach
                    If i + j < UBound(bvSource) Then
                        If bvMatch(j) = bvSource(i + j) Then
                            bFlag = True
                        Else
                            bFlag = False
                            Exit For
                        End If
                    End If
                Next
               
                If bFlag Then
                    FindBytes2 = i
                    Exit For
                End If
            Else
                FindBytes2 = i
                Exit Function
            End If
        End If
    Next
End Function

Saludos, y no te olvides de seguir compartiendos tus proyectos con los de habla hispana porque yo en HH esoy muerto jejej
En línea

cobein


Desconectado Desconectado

Mensajes: 759



Ver Perfil WWW
Re: Instr para byte arrays [src]
« Respuesta #3 en: 31 Mayo 2009, 12:42 pm »

=D leandro fijate que hay 2 funciones, la que esta en el form es basica, es la de referencia, despues esta la otra que es mucho mas rapida (compilada) esta en un modulo, pero igual es verdad se puede optimizar la de referencia para ver las diferencia en velocidad.

En línea

http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[RETO] Alternativa a Instr() « 1 2 3 4 5 »
Programación Visual Basic
Psyke1 45 13,355 Último mensaje 16 Enero 2011, 20:57 pm
por Psyke1
Te voy a dar un byte « 1 2 »
Foro Libre
Foxy Rider 17 5,417 Último mensaje 16 Septiembre 2011, 18:35 pm
por ion dissonance2
Algun Documentos para Punteros y arrays?
Programación C/C++
x64core 4 1,284 Último mensaje 25 Julio 2012, 01:17 am
por david_BS
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines