Bueno les dejo unos remplazos a el maldito Split detectado, aviso no las cree yo, solo las vi por ahi y las comparto con ustedes.


Si tienen algun problema me avisan... para llamarlas les dejo 2 ejemplos.

Ejemplo : 1

ACM1PT = SplitA01(expression, "tiramelagoma")


Ejemplo : 2

Dim Peteras() as String

Call SplitB(expression, Peteras(), "billeteramatagalan")

Código: Seleccionar todo

' by Donald, [email protected], 20000916
Public Function SplitA01(Expression As String, _
  Optional Delimiter As String = " ", _
  Optional Count As Long = -1, _
  Optional Compare As VbCompareMethod = vbBinaryCompare) As Variant
  Const BUFFERDIM As Long = 1024
  Dim cntSplit As Long
  Dim posStart As Long
  Dim posFound As Long
  Dim lenDelimiter As Long
  Dim sArray() As String
  Dim ubArray As Long
  
  If Count = 0 Then
    ' return unbound Variant array
    SplitA01 = Array()
    Exit Function
  End If
  
  lenDelimiter = Len(Delimiter)
  If lenDelimiter = 0 Then
    ' return expression in single-element Variant array
    SplitA01 = Array(Expression)
  Else
    posStart = 1
    ubArray = -1
    Do
      If cntSplit > ubArray Then
        ubArray = ubArray + BUFFERDIM
        ReDim Preserve sArray(ubArray)
      End If
      posFound = InStr(posStart, Expression, Delimiter, Compare)
      If cntSplit + 1 = Count Then
        sArray(cntSplit) = Mid$(Expression, posStart)
        Exit Do
      Else
        If posFound Then
          sArray(cntSplit) = Mid$(Expression, posStart, posFound - posStart)
          posStart = posFound + lenDelimiter
          cntSplit = cntSplit + 1
        Else
          sArray(cntSplit) = Mid$(Expression, posStart)
        End If
      End If
    Loop While posFound
    ' shrink to actual size
    ReDim Preserve sArray(cntSplit)
    ' return string array as Variant array
    SplitA01 = sArray
  End If
  End Function

Código: Seleccionar todo

Public Sub SplitB01(Expression As String, _
    sArrRet() As String, _
    Optional Delimiter As String = " ")
' by Donald, [email protected], 20000916
  Const BUFFERDIM As Long = 1024
  Dim cntSplit As Long
  Dim posStart As Long
  Dim posFound As Long
  Dim lenDelimiter As Long
  Dim ubArray As Long
  
  lenDelimiter = Len(Delimiter)
  If lenDelimiter = 0 Then
    ' return expression in single-element array
    ReDim Preserve sArrRet(0)
    sArrRet(0) = Expression
  Else
    posStart = 1
    ubArray = -1
    Do
      If cntSplit > ubArray Then
        ubArray = ubArray + BUFFERDIM
        ReDim Preserve sArrRet(ubArray)
      End If
      posFound = InStr(posStart, Expression, Delimiter)
      If posFound Then
        sArrRet(cntSplit) = Mid$(Expression, posStart, posFound - posStart)
        posStart = posFound + lenDelimiter
        cntSplit = cntSplit + 1
      Else
        sArrRet(cntSplit) = Mid$(Expression, posStart)
      End If
    Loop While posFound
    ' shrink to actual size
    ReDim Preserve sArrRet(cntSplit)
  End If

  End Function

Código: Seleccionar todo

Public Sub SplitB03(Expression$, ResultSplit$(), Optional Delimiter$ = " ")
' by G.Beckmann, [email protected]
 
    Dim c&, iLen&, iLast&, iCur&
    
    iLen = Len(Delimiter)
    
    If iLen Then
        
        '/ count delimiters
        iCur = InStr(Expression, Delimiter)
        Do While iCur
            iCur = InStr(iCur + iLen, Expression, Delimiter)
            c = c + 1
        Loop
        
        '/ initalization
        ReDim Preserve ResultSplit(0 To c)
        c = 0: iLast = 1
        
        '/ search again...
        iCur = InStr(Expression, Delimiter)
        Do While iCur
            ResultSplit(c) = Mid$(Expression, iLast, iCur - iLast)
            iLast = iCur + iLen
            iCur = InStr(iLast, Expression, Delimiter)
            c = c + 1
        Loop
        ResultSplit(c) = Mid$(Expression, iLast)
        
    Else
        ReDim Preserve ResultSplit(0 To 0)
        ResultSplit(0) = Expression
    End If

 End Function
Mete los archivos al resource y te olvidas del split :P, pero creo que avira de alguna forma detecta en el resource, igual los demás av se van..! xD
//mHmm..
Gracias lucho!

Avira sí, detecta el recurso (no siempre) pero eso se arregla con un realignpe (el normal, no el de swash con EOF), eso sí, el stub debe ser indetectable a avira.

Saludos!
UDTools.net
GitHub: https://github.com/MetalUDT
linkgl escribió:Mete los archivos al resource y te olvidas del split :P, pero creo que avira de alguna forma detecta en el resource, igual los demás av se van..! xD
En algunos casos en Res también detecta el Split.
Mr. FUDMan escribió:
linkgl escribió:Mete los archivos al resource y te olvidas del split :P, pero creo que avira de alguna forma detecta en el resource, igual los demás av se van..! xD
En algunos casos en Res también detecta el Split.
Jeje yo decía que en vez de usar split para cortar lo que hay en el EOF con los separadores como se suelen hacer la mayoría de los crypters, se comenzaran a usar resources para evitar usar el split xP. Pero gracias por las funciones, x)
//mHmm..
Claro, sin Split decia yo tambien jaja
Qué sentido tiene meter un split si los datos los almacenamos en recursos? cargamos lo que haya en el recurso con LoadRes y listo (split es para separar datos y sirve en el Res por los delimitadores, pero es totalmente innecesario su uso).

Saludos
UDTools.net
GitHub: https://github.com/MetalUDT
Metal_Kingdom escribió:Claro, sin Split decia yo tambien jaja
Qué sentido tiene meter un split si los datos los almacenamos en recursos? cargamos lo que haya en el recurso con LoadRes y listo (split es para separar datos y sirve en el Res por los delimitadores, pero es totalmente innecesario su uso).

Saludos

No me entendiste lo que quise decir pero no importa, me parecen buenas las funciones ya que muchos de este foro usan EOF y les van a servir.

Saludos
Sí fiera, sí te entendí, y para esos casos en que se detecte el split cuando lo hacemos mediante recurso la solucion es un RealignPE como dije, en algun raro caso tambien necesario tocar la cabecera, pero muy raro el caso. De ahi añadí que es mejor usar LoadRes si vamos a tratar los recursos y así nos olvidamos del dichoso Split, pero eso es otro tema aparte.

Muy buenas las alternativas, quien las hizo?

Saludos
UDTools.net
GitHub: https://github.com/MetalUDT
Metal_Kingdom escribió:Sí fiera, sí te entendí, y para esos casos en que se detecte el split cuando lo hacemos mediante recurso la solucion es un RealignPE como dije, en algun raro caso tambien necesario tocar la cabecera, pero muy raro el caso. De ahi añadí que es mejor usar LoadRes si vamos a tratar los recursos y así nos olvidamos del dichoso Split, pero eso es otro tema aparte.

Muy buenas las alternativas, quien las hizo?

Saludos

Cada unas de ellas tiene su Autor y lo dice en cada función.
Metal_Kingdom escribió:Sí fiera, sí te entendí, y para esos casos en que se detecte el split cuando lo hacemos mediante recurso la solucion es un RealignPE como dije, en algun raro caso tambien necesario tocar la cabecera, pero muy raro el caso. De ahi añadí que es mejor usar LoadRes si vamos a tratar los recursos y así nos olvidamos del dichoso Split, pero eso es otro tema aparte.

Muy buenas las alternativas, quien las hizo?

Saludos

Cada unas de ellas tiene su Autor.
Aqui hay otras funciones...
[Enlace externo eliminado para invitados]
ojala les sirvan , dice luchoPr que ya estan quemadas pero serviran XD
saludos
Imagen

♪♪ 2pac & Notorius B.I.G ♪♪
¿Por qué estoy luchando para vivir cuando estoy solo viven para luchar,
¿Por qué estoy tratando de ver cuando no hay nada a la vista,
¿Por qué estoy tratando de dar cuando nadie me da una oportunidad,
¿Por qué estoy muriendo para vivir cuando yo estoy viviendo para morir.♪♪
Responder

Volver a “Otros lenguajes”