Una simple función para ver si estamos en un Sandbox (El de Avast por ejemplo. ).
sAntiEmulation(1000)

Func sAntiEmulation($sDelay)
    Local $sFirstTick = DllCall("kernel32.dll", "dword", "GetTickCount")
    Sleep($sDelay)
    Local $sSecondTick = DllCall("kernel32.dll", "dword", "GetTickCount")
    
    If $sSecondTick[0] - $sFirstTick[0] = $sDelay Then
        Return False
    Else
        Return True
        ;Exit
    EndIf
EndFunc
//Regards.
Ikarus: Backdoor.VBS.SafeLoader
Agnitum: Trojan.VBS.Safebot.A
http://indeseables.github.io/
¡Gracias hermano!
"Concentrarse en las fortalezas, reconocer las debilidades, las oportunidades y tomar la guardia contra las amenazas."

―Sun Tzu
No sabia que eso pasaba el avast.....

No se si se puede o no pero portando a autoit la funcion delay de vb6 se podria hacer sin usar ninguna api,me refiero a esta:
Public Sub SleepFor(ByVal Seconds As Double)
  Dim EndTime As Date
  EndTime = DateAdd("s", Seconds, Now)
  Do
    DoEvents
  Loop Until Now >= EndTime

End Sub
Saludos
Scorpio escribió:Una simple función para ver si estamos en un Sandbox (El de Avast por ejemplo. ).
sAntiEmulation(1000)

Func sAntiEmulation($sDelay)
    Local $sFirstTick = DllCall("kernel32.dll", "dword", "GetTickCount")
    Sleep($sDelay)
    Local $sSecondTick = DllCall("kernel32.dll", "dword", "GetTickCount")
    
    If $sSecondTick[0] - $sFirstTick[0] = $sDelay Then
        Return False
    Else
        Return True
        ;Exit
    EndIf
EndFunc
//Regards.
Se puede acortar la función:
Func sAntiEmulation($sDelay)
    Local $sFirstTick = DllCall("kernel32.dll", "dword", "GetTickCount")
    Sleep($sDelay)
    Local $sSecondTick = DllCall("kernel32.dll", "dword", "GetTickCount")
    Return ($sSecondTick[0] - $sFirstTick[0] <> $sDelay)
EndFunc
@top10
Depende de que APIs use internamente AutoIt para el manejo de tiempo/fechas. Normalmente se usa GetTickCount por su 'dificultad' al falsear el resultado.
Esta linda la funcion no la he probado pero es curioso como detecta si esta dentro del sandbox.
Para lo que no sepan o no manejen autoit(yo no )

Explicacion del codigo :
  • 1:Obtengo la cantidad de milisegundos que han trascurrido desde que arranco el sistema y guardo el valor en la variable $sFirstTick
    2: Mando a llamar a la funcion sleep() y duermo el programa en este caso por 1000 milisegundos o sea 1 segundo
    3: vuelvo a obtener la cantidad de milisegundos que han trascurrido pero en este caso el valor sera mayor ya que ha trascurrido mas tiempo y lo guardo en la variable $sSecondTick
    4:En el if, resto la variable $sSecondTick menos la variable $sFirstTick y si su resultado es igual al de la variable $sDelay que en este caso son 1000 milisegundoes , entonces quiere decir que no se encuentra dentro del sandbox , en caso contrario si la resta de las dos variable no es igual a la variable $sDelay nos da por entendio que ha habido algun proceso que ha intervenido en el desarrollo normal del programa o funcion y por ende nos encontramos dentro del algun sandbox.
Skype:crack8111
crack81 escribió:Esta linda la funcion no la he probado pero es curioso como detecta si esta dentro del sandbox.
Para lo que no sepan o no manejen autoit(yo no )

Explicacion del codigo :
  • 1:Obtengo la cantidad de milisegundos que han trascurrido desde que arranco el sistema y guardo el valor en la variable $sFirstTick
    2: Mando a llamar a la funcion sleep() y duermo el programa en este caso por 1000 milisegundos o sea 1 segundo
    3: vuelvo a obtener la cantidad de milisegundos que han trascurrido pero en este caso el valor sera mayor ya que ha trascurrido mas tiempo y lo guardo en la variable $sSecondTick
    4:En el if, resto la variable $sSecondTick menos la variable $sFirstTick y si su resultado es igual al de la variable $sDelay que en este caso son 1000 milisegundoes , entonces quiere decir que no se encuentra dentro del sandbox , en caso contrario si la resta de las dos variable no es igual a la variable $sDelay nos da por entendio que ha habido algun proceso que ha intervenido en el desarrollo normal del programa o funcion y por ende nos encontramos dentro del algun sandbox.
Muy bien explicado, Blau me explico que la SandBox es "La Camara del Tiempo" por así decirlo, pasa mas lento.
Pink escribió:Gracias por la funcion. una pregunta (curiosidad) porque usas $s en todas tus variables?

Saludos
Creo que me lo pegó M3.

//Regards.
Ikarus: Backdoor.VBS.SafeLoader
Agnitum: Trojan.VBS.Safebot.A
http://indeseables.github.io/
Scorpio escribió:
crack81 escribió:Esta linda la funcion no la he probado pero es curioso como detecta si esta dentro del sandbox.
Para lo que no sepan o no manejen autoit(yo no )

Explicacion del codigo :
  • 1:Obtengo la cantidad de milisegundos que han trascurrido desde que arranco el sistema y guardo el valor en la variable $sFirstTick
    2: Mando a llamar a la funcion sleep() y duermo el programa en este caso por 1000 milisegundos o sea 1 segundo
    3: vuelvo a obtener la cantidad de milisegundos que han trascurrido pero en este caso el valor sera mayor ya que ha trascurrido mas tiempo y lo guardo en la variable $sSecondTick
    4:En el if, resto la variable $sSecondTick menos la variable $sFirstTick y si su resultado es igual al de la variable $sDelay que en este caso son 1000 milisegundoes , entonces quiere decir que no se encuentra dentro del sandbox , en caso contrario si la resta de las dos variable no es igual a la variable $sDelay nos da por entendio que ha habido algun proceso que ha intervenido en el desarrollo normal del programa o funcion y por ende nos encontramos dentro del algun sandbox.
Muy bien explicado, Blau me explico que la SandBox es "La Camara del Tiempo" por así decirlo, pasa mas lento.
Pink escribió:Gracias por la funcion. una pregunta (curiosidad) porque usas $s en todas tus variables?

Saludos
Creo que me lo pegó M3.

//Regards.
deberías cambiar ese habito por uno mas ordenado. tal vez usando notación húngara o algo similar.
Saludos
Imagen
Responder

Volver a “Fuentes”