os traigo algunas funciones que actúan como AntiEmulation que se nos ocurrieron hablando por el grupo de skype de Indetectables. La idea es que no se ejecute X función hasta que no haya algún cambio.
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.8.1
Author: Blau
Thanks to: SadFud
#ce ----------------------------------------------------------------------------
#include <Misc.au3>
Local $aParams[3] ;Array que contiene los parámetros del callback
$aParams[0] = "CallArgArray" ;Obligatorio para la función Call
$aParams[1] = "Caca" ;$sTitle
$aParams[2] = "Pedo" ;$sMessage
AntiEmulationByMouse("Funciona", $aParams)
AntiEmulationByFreeSpace("Funciona", $aParams)
AntiEmulationByPixel("Funciona", $aParams)
AntiEmulationByWindow("Funciona", $aParams)
AntiEmulationByKey(41, "Funciona", $aParams)
Func AntiEmulationByMouse($sFunction, $aParams)
Local $aPos = MouseGetPos() ;Obtiene la posición del ratón
Local $bPos = MouseGetPos() ;Obtiene la posición del ratón otra vez
While $aPos[0] = $bPos[0] And $aPos[1] = $bPos[1] ;Si las posiciones son iguales
Sleep(100) ;Esperamos 100 milisegundos
$bPos = MouseGetPos() ;Obtenemos de nuevo la posición del ratón
WEnd
Call($sFunction, $aParams) ;Llamamos a la función callback
EndFunc
Func AntiEmulationByWindow($sFunction, $aParams)
Local $aWindow = WinGetTitle("[ACTIVE]")
Local $bWindow = WinGetTitle("[ACTIVE]")
While $aWindow = $bWindow
Sleep(100)
$bWindow = WinGetTitle("[ACTIVE]")
WEnd
Call($sFunction, $aParams)
EndFunc
Func AntiEmulationByKey($sKey, $sFunction, $aParams) ;https://www.autoitscript.com/autoit3/docs/libfunctions/_IsPressed.htm
While Not _IsPressed($sKey)
Sleep(100)
WEnd
Call($sFunction, $aParams)
EndFunc
Func AntiEmulationByFreeSpace($sFunction, $aParams)
Local $aSpace = DriveSpaceFree(@HomeDrive & "\")
Local $bSpace = DriveSpaceFree(@HomeDrive & "\")
While $aSpace = $bSpace
Sleep(100)
$bSpace = DriveSpaceFree(@HomeDrive & "\")
WEnd
Call($sFunction, $aParams)
EndFunc
Func AntiEmulationByPixel($sFunction, $aParams)
Local $nRandomX = Random(0, @DeskTopHeight, 1)
Local $nRandomY = Random(0, @DeskTopWidth, 1)
Local $aPixel = PixelGetColor ($nRandomX, $nRandomY)
Local $bPixel = PixelGetColor ($nRandomX, $nRandomY)
While $aPixel = $bPixel
Sleep(100)
$bPixel = PixelGetColor ($nRandomX, $nRandomY)
WEnd
Call($sFunction, $aParams)
EndFunc
Func Funciona($sTitle, $sMessage)
MsgBox(0, $sTitle, $sMessage)
EndFunc