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 = 1 ;lvl from
$SelectLvlT 
= 3 ;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