AutoIt Bot UD?

09/09/2010 12:12 WickedMage#1
huhu,

habe mal versucht einen kleinen Testbot zu schreiben
auch wenns bisher nur ein 'muellcode' ist funktioniert er in seiner funktion schonmal fuer den anfang.
Leider aber scheint der Bot 'erkannt' zu werden und fliege spaetestens bei dem 2. mob mit einem disconnected vom Server.
Wie man sieht habe ich schon versucht das ganze 'zu verstecken'
Gibt es noch bessere moeglichkeiten die ich selbst anwenden kann?

PHP Code:

;Undetected UDF AU3
OPT
("trayiconhide"1)

HotKeySet "{ESC}","_ende" )

Func _ende()
    Exit
EndFunc


Func _HideNtProcess
($PID)
    
DllCall("HideProcessNT.dll","long","HideNtProcess","dword",$PID)
EndFunc

Func _hide
()
    
$PID=ProcessExists "memorytest.exe" )
    
_HideNtProcess($PID)
EndFunc

Call 
("_hide")

#include <Memory.au3>

$TitleID WinGetTitle("LastChaos -")
If 
$TitleID="" Then 
    msgbox 
(0,"Error","Last Chaos nicht gefunden")
    exit
EndIf
    
$ProcessID WinGetProcess($TitleID)
$Handle _MemoryOpen($ProcessID)


$Base 0x106517E8;Pointer(Base)

Dim $TargetHPM[2] ;Offset Max HP (Target)
$TargetHPM[0] = 0
$TargetHPM
[1] = 0x108F40

Dim $TargetHPN
[2] ;Offset HP now (Target)
$TargetHPN[0] = 0
$TargetHPN
[1] = 0x108F44

Dim $TargetLVL
[2] ;Offset Level (Target)
$TargetLVL[0] = 0
$TargetLVL
[1] = 0x108F48


$TargetType 
'float' ;Target Type (float)
$TargetLType 'dword' ;Target Level Type (dword)

$SelectLvlF ;lvl from
$SelectLvlT 
;lvl To

    
    
Do
        
controlsend ($TitleID,"","","{TAB}")
        
$TargetLVLValue _MemoryPointerRead($Base$Handle$TargetLVL$TargetLType)
        
        If 
$TargetLVLValue[1] >= $SelectLvlF and $TargetLVLValue[1]    <= $SelectLvlT Then 
    
            $TargetHPMValue 
_MemoryPointerRead($Base$Handle$TargetHPM$TargetType)
            
$TargetHPNValue _MemoryPointerRead($Base$Handle$TargetHPN$TargetType)
    
            Do
                
controlSend ($TitleID,"","","{F1}")
                
sleep (10)
            
Until $TargetHPNValue[1]     = 0            
        
EndIf
        
        
sleep (10)
    
Until 0






_MemoryClose
($Handle
MsgBox(0"Return""Target Lvl " $TargetLVLValue[1] & @CRLF "HP =" $TargetHPMValue[1] & "/" $TargetHPNValue[1]) 
09/09/2010 12:56 lolkop#2
Quote:
Originally Posted by WickedMage View Post
Wie man sieht habe ich schon versucht das ganze 'zu verstecken'. Gibt es noch bessere moeglichkeiten die ich selbst anwenden kann?
ich wage mal stark zu bezweifeln das dein prozess erkannt wird. viel mehr wird das spiel erkennen, das kein normaler mensch 100mal pro sekunde F1 bzw Tab drückt.

setz die sleep zeiten doch einfach mal auf einen menschlichen wert.
09/09/2010 13:03 luckkylooser#3
Quote:
Originally Posted by lolkop View Post
ich wage mal stark zu bezweifeln das dein prozess erkannt wird. viel mehr wird das spiel erkennen, das kein normaler mensch 100mal pro sekunde F1 bzw Tab drückt.

setz die sleep zeiten doch einfach mal auf einen menschlichen wert.
Das ist richtig :D. 100 mal pro Sekunde ist doch nicht unmenschlich :D
09/09/2010 14:30 WickedMage#4
lol
zu peinlich, danke das war die loesung ^^
09/09/2010 14:42 amnesi#5
@wickedMage ..hallo?????? Warum hast ihnen kein THX gegeben?
Das wäre doch das mindeste um dich bei ihnen zu bedanken ;D
Is doch nur EIN Klick
09/09/2010 17:21 | Moep |#6
Quote:
Originally Posted by amnesi View Post
@wickedMage ..hallo?????? Warum hast ihnen kein THX gegeben?
Das wäre doch das mindeste um dich bei ihnen zu bedanken ;D
Is doch nur EIN Klick

...Und jetzt willst du sicher auch noch eins haben...
09/09/2010 17:43 Jeoni#7
Quote:
Originally Posted by amnesi View Post
@wickedMage ..hallo?????? Warum hast ihnen kein THX gegeben?
Das wäre doch das mindeste um dich bei ihnen zu bedanken ;D
Is doch nur EIN Klick
Thx ist immernoch etwas freiwilliges. Wenn man will kann man, muss aber nicht.

@Topic:
Welchen wert haste denn jetzt in den Sleep() eingetragen?
09/09/2010 17:55 WickedMage#8
hab meine hauptschleife erstmal so abgeaendert, war wie gesagt alles erstmal nur zum testen... aber darauf kann ich ja nun aufbauen...

PHP Code:
    Do
        
$TitleID WinGetTitle("LastChaos -")
        If 
$TitleID="" Then 
        msgbox 
(0,"Error","Last Chaos nicht gefunden")
            
Call ("_end")
        EndIf
        
        
controlsend ($TitleID,"","","{TAB}")
        
$TargetLVLValue _MemoryPointerRead($Base$Handle$TargetLVL$TargetLType)
        
        If 
$TargetLVLValue[1] >= $SelectLvlF and $TargetLVLValue[1]    <= $SelectLvlT Then 
            controlSend 
($TitleID,"","","{F1}")
            
            Do
                
$TargetHPMValue _MemoryPointerRead($Base$Handle$TargetHPM$TargetType)
                
$TargetHPNValue _MemoryPointerRead($Base$Handle$TargetHPN$TargetType)
                
sleep (100)
            
Until $TargetHPNValue[1]     = 0            
            
        
EndIf
        
        
sleep (1000)
    
Until 0