Eden Eternal Simple Bot

08/17/2011 12:07 blinko#346
Quote:
Originally Posted by cazirrez View Post
hey mate.. still cant get the char to load into the bot? i mean does nothing.. and if i click on the inputs.. it keeps repeating the 11234512345 sequence
It's supposed to repeat a sequence its a bot. Dont start the bot before setting the hotkeys. I don't know exactly what you mean.

Quote:
Originally Posted by KyRoN View Post
Yep, now i have my name shown, my stats shown aswell, but it still shift click stuff, to a point that it's even impossible to close with del, and even pretty complicated to kill the process since it seems to hold my shift key down, i don't understand why.
I have no idea why it would be holding down the shift key..that's really weird I've not this issue yet. I'll see what I can think of but for now I must sleep..I got work tomorrow. I'll get back to you tonight :D
08/17/2011 12:39 KyRoN#347
Quote:
Originally Posted by blinko View Post
I have no idea why it would be holding down the shift key..that's really weird
And it really is just that, holding the shift key. Being curious, i rebinded all my bar 1 hotkeys to shift+1, shift+2 etc, and obviously disabling the bar shifting since anyway i don't use it.

Well the bot worked just fine, of course it's unplayable for me because i can't play with shift+stuff, but the bot does :p

Even if the bot doesn't "really" work for me i still have some suggestion:

A tower mode, like for example, even if it wouldn't work really well for melee, disable the movement keys, so my toon doesn't cross the map all the way to the other side.

Or eventually a text box where we'd have to enter a mob name, and the bot would only kill that.

Another technique would be to give it a center starting point, and a distance value, if the value is reached, go back to the center point.
08/17/2011 17:21 cavitec#348
sir blinko can this eebot answer captcha?
08/17/2011 17:53 tobebenjo#349
Quote:
Originally Posted by blinko View Post
Updated !

New Wizard Hat update got it lol. New Base Address, New target address.
Zoom hack address (Zoom Hack function) currently inoperable.

The rest seems to work fine :P I even included the EEAutoPilot.settings

As Before...

Code:
F1 - enable/disable transparent background

F2 -hides visible gui for when you minimize it, having an issue where it will not change its ontop status while EE is minimized.

F5 - RunMiniBot
F6 - ZoomHack (inoperable)
F7 - ShowStats (displays more stats si check for correct values test function for personal use i didnt remove)

DEL (delete key) - Closes the application
The text color for the GUI overlay can be changed in the settings file.
The win_trans=45 is the windows alpha when you decide to use the F1 hotkey so you can move it freely. 255 is max (fully visible) and 0 is invisible.

isTrans=1 - if the value is 1 then it will load inside the game client.
isTrans=0 - if it is 0 then you can freely move it unto you use the F1 hotkey.
F2 controls the isTrans setting

Pretty much self explanatory.

I will be releaseing the source codes again once I've cleaned them up. As of now picking through it would be a pain it's a complete mess of code to get everything all transparent and what not.
Also having some issues getting the WinSetOntop function to deactivate if the window is minimized
why your bot so slow to attack can u make it fast like a normal attack?cause its like 1 to 2 mins before to attack the mobs! thank u....

_________________________
I have added cool emoticons to this message.
To see them go to [Only registered and activated users can see links. Click Here To Register...]
08/17/2011 18:47 maverik13#350
program spam numbers all the time omg and if bot start work he hit all mobs and die in a sec omg
08/17/2011 19:02 subpc91#351
Firstly I apologize for not understanding the easy explanation that u guys gave. So to start up, this is what i do: Open Eden Eternal, Start -> Choose Character -> Go into the desired field -> Open EEbot_1.2.exe -> Player Name:Name Hidden, Player Level:0, Class Level:0
so what i get is the bot doesnt read my character stats. Prolly sum ppl think im a retard for not understanding what to do... but to be honest I always tried to learn to bot, but never manage to operate one -.-

I hope some ppl can give an insight, Thanks :)
08/17/2011 19:50 blinko#352
most issues can be resolved by making sure the EEAutoPilot.settings is in the same location as the exe. Which would be one reason why all the memory values show 0 on the gui. Also there may be some windows OS issues who knows I don't know what everyone is running. I'll just try and clean my source and post it.
08/17/2011 22:09 jnwee#353
how do you overcome the anti-bot system?
08/18/2011 00:15 KyRoN#354
Quote:
Originally Posted by OmieBoy View Post
File name:
EEBot_v1.2.exe
Submission date:
2011-08-17 19:03:31 (UTC)...
Mate, i'm sure if you try hard enough, you'll find bad stuff in bible online...

This file is as clean as it can be, really...
08/18/2011 03:25 Eldrad#355
Am i missing something? Sorry if this has been covered I haven't yet read through all 36 pages but I start the Bot, it opens OK, I set all the values for skills and hp/mp then press F5 and nothing happens... the bot won't start or anything. Any help?

Also, I am using the latest uploaded bot (from page 35 I believe). Thanks!
08/18/2011 05:04 JohnSmithWonderful#356
It works fine, but it takes about a minute to move on too the next target. thnx.
08/18/2011 06:19 org555#357
can someone tell me how to make this bot use other skill, it only spams one key, i dont know why but when i press battle start it only spams number 3 skill.
08/18/2011 09:36 blinko#358
Quote:
Originally Posted by OmieBoy View Post
File name:
EEBot_v1.2.exe
Submission date:
2011-08-17 19:03:31 (UTC)
Current status:
queued queued analysing finished
Result:
1/ 44 (2.3%)

K7AntiVirus 9.109.5026 2011.08.17
I'll be damned I scanned it myself....I have no idea why that would pop up so I guess I created a Trojan ! Well that means I got to post the source code before I get a chance to clean it up. So here it is somewhat organized, but most of it sloppy.

EEMem.au3 - Slightly modified to make use of the EEAutoPilot.settings file.

Code:
#include-once

Func _EEMemOpen($DWACCESS = 0x1F0FFF, $DWINHERITHANDLE = 1)

$DWPROCID = ProcessExists(IniRead(@WorkingDir & "\EEAutoPilot.settings","main","exe",""))

If $DWPROCID = 0 then
	MsgBox(0,"","Process Doesn't Exist!" & @crlf & "If however it DOES, then something is terribly wrong !")
	exit 0
EndIf

	local $DWHANDLES[2] = [DllOpen("kernel32.dll")]
	If @error Then
		SetError(2)
		Return 0
	EndIf
	Local $DWOPENPROC = DllCall($DWHANDLES[0], "int", "OpenProcess", "int", $DWACCESS, "int", $DWINHERITHANDLE, "int", $DWPROCID)
	If @error Then
		SetError(3)
		Return 0
	EndIf
	$DWHANDLES[1] = $DWOPENPROC[0]
	Return $DWHANDLES
EndFunc

Func _EEMemClose($DWHANDLES)
	If Not IsArray($DWHANDLES) Then
		SetError(1)
		Return 0
	EndIf
	DllCall($DWHANDLES[0], "int", "CloseHandle", "int", $DWHANDLES[1])
	If Not @error Then
		DllClose($DWHANDLES[0])
		Return 1
	Else
		DllClose($DWHANDLES[0])
		SetError(2)
		Return 0
	EndIf
EndFunc

Func _EEMemRead($DWADDRESS, $DWTYPE = "dword")
	$DWHANDLES = _EEMemOpen()
	If Not IsArray($DWHANDLES) Then
		SetError(1)
		Return 0
	EndIf
	Local $DWBUFFER = DllStructCreate($DWTYPE)
	If @error Then
		SetError(@error + 1)
		Return 0
	EndIf
	DllCall($DWHANDLES[0], "int", "ReadProcessMemory", "int", $DWHANDLES[1], "int", $DWADDRESS, "ptr", DllStructGetPtr($DWBUFFER), "int", DllStructGetSize($DWBUFFER), "int", "")
	If Not @error Then
		Local $DWVALUE = DllStructGetData($DWBUFFER, 1)
		_EEMemClose($DWHANDLES)
		Return $DWVALUE
	Else
		SetError(6)
		Return 0
	EndIf
EndFunc

Func _EEMemWrite($DWADDRESS, $DWDATA, $DWTYPE = "dword")
	$DWHANDLES = _EEMemOpen()
	If Not IsArray($DWHANDLES) Then
		SetError(1)
		Return 0
	EndIf
	Local $DWBUFFER = DllStructCreate($DWTYPE)
	If @error Then
		SetError(@error + 1)
		Return 0
	Else
		DllStructSetData($DWBUFFER, 1, $DWDATA)
		If @error Then
			SetError(6)
			Return 0
		EndIf
	EndIf
	DllCall($DWHANDLES[0], "int", "WriteProcessMemory", "int", $DWHANDLES[1], "int", $DWADDRESS, "ptr", DllStructGetPtr($DWBUFFER), "int", DllStructGetSize($DWBUFFER), "int", "")
	If Not @error Then
		Return 1
	Else
		SetError(7)
		Return 0
	EndIf
	_EEMemClose($DWHANDLES)
EndFunc
;

EEData.au3 - This is where the applications GUI will gather all of its information. The Memory reading is done here. All addresses will be directed through the EEAutoPilot.settings file. I'm still working on retrieving the zoom address. Highly altered from before. New functions the GUI uses itself such as dragging around the application while the form is visible, rounding the applications corners etc..

DLL calls made from this script file. (Maybe why it's now classified as a Trojan)
Code:
DllCall("user32.dll", "int", "SetLayeredWindowAttributes", "hwnd", $hwnd, "long", $i_transcolor, "byte", $Transparency, "long", $LWA_COLORKEY + $LWA_ALPHA)

DllCall("gdi32.dll", "long", "CreateRoundRectRgn", "long", $i_x1, "long", $i_y1, "long", $pos[2], "long", $pos[3], "long", $i_x3,"long", $i_y3)

DllCall("user32.dll", "long", "SetWindowRgn", "hwnd", $h_win, "long", $ret[0], "int", 1)
Also added new custom functions for creating Labels, ComboBoxes and Input Boxes, that better suited my personal programming where simple foreground & complicated background code work well together.

Code:
New Custom Functions !

Borrowed script snippets from random forums, seems one was done by a person known as Prog@ndy

DragWindow($gui,$controls) ;allows dragging of widget
 _API_SetLayeredWindowAttributes($hwnd, $i_transcolor, $Transparency, $isColorRef = False)
_GuiRoundCorners($h_win, $i_x1, $i_y1, $i_x3, $i_y3)

Description: Format( $value )
This was made to imitate Visual Basic's Format Function.
Where (Example Text1 = Format( Text1, "###,###" )
If Text1.text = 1000
then Format(Text1, "###,###") = 1,000
However AutoIt doesnt have a function for this. So i made one up.

Usage: Format($expression, $separator, $nSize)
As the Above Example u want a string like 100000 to read as 100,000
You simply say for example Format('100000' , ',' , 3)
Usage Example: GuiCtrlSetData( $Label, Format(GetPlayerGold(), ',' , 3)
 You may also use "," instead of ',' it does not matter :P

Using these I can setup a label with text,postion x&y, width & height, the fontsize, the backcolor (for the transparent background piece), and the text color. Pretty much similar with the input and combo boxes.

_GuiCreateLabel($caption,$left,$top,$width,$height,$fontsize,$bkcolor,$txtcolor)
_GuiCreateCombo($caption,$left,$top,$width,$height,$fontsize,$bkcolor,$txtcolor,$str)
_GuiCreateInput($caption,$left,$top,$width,$height,$fontsize,$bkcolor,$txtcolor)
-Source-
Code:
;EEBot - Data Source
#include 'EEMem.au3'
#include <Misc.au3>
#include <StaticConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>
#include <WinAPI.au3>

#Region====MISC FUNCTIONS==========================================================================
;GUICtrlCreateLabel("Label2", 5, 80, 150, 17)
func _GuiCreateLabel($caption,$left,$top,$width,$height,$fontsize,$bkcolor,$txtcolor)
	$label = GuiCtrlCreateLabel($caption,$left,$top,$width,$height)
	GuiCtrlSetBkColor(-1,$bkcolor)
	GuiCtrlSetColor(-1,$txtcolor)
	GuiCtrlSetFont(-1,$fontsize,1)
	return $label
	$label = ""
EndFunc

func _GuiCreateCombo($caption,$left,$top,$width,$height,$fontsize,$bkcolor,$txtcolor,$str)

	$combo = GuiCtrlCreateCombo($caption,$left,$top,$width,$height)
	GuiCtrlSetBkColor(-1,$bkcolor)
	GuiCtrlSetColor(-1,$txtcolor)
	GuiCtrlSetFont(-1,$fontsize,1)
	GUICtrlSetData(-1, $str)
	return $combo
	$combo = ""
EndFunc

func _GuiCreateInput($caption,$left,$top,$width,$height,$fontsize,$bkcolor,$txtcolor)

	$input = GuiCtrlCreateInput($caption,$left,$top,$width,$height)
	GuiCtrlSetBkColor(-1,$bkcolor)
	GuiCtrlSetColor(-1,$txtcolor)
	GuiCtrlSetFont(-1,$fontsize,1)
	return $input
	$input = ""
EndFunc

Func DragWindow($gui,$controls) ;allows dragging of widget and click to exit
$dll = DllOpen("user32.dll")
Local $PosDiff[2]
While 1

$MousePos = MouseGetPos ()
$WinPos = WinGetPos ($gui,"")
$PosDiff[0] = $WinPos[0] - $MousePos[0]
$PosDiff[1] = $WinPos[1] - $MousePos[1]

While _IsPressed ("01", $dll)
$MousePos = MouseGetPos ()
 WinMove ($gui, "", $MousePos[0] + $PosDiff[0], $MousePos[1] + $PosDiff[1])
 WinMove ($controls, "", $MousePos[0] + $PosDiff[0], $MousePos[1] + $PosDiff[1])
$WinPos = WinGetPos ("","")


 WEnd
ExitLoop

 WEnd

_WinAPI_RedrawWindow($gui,"","",BitOR($RDW_ERASE,$RDW_INVALIDATE,$RDW_UPDATENOW,$RDW_FRAME,$RDW_ALLCHILDREN))
 _WinAPI_RedrawWindow($controls,"","",BitOR($RDW_ERASE,$RDW_INVALIDATE,$RDW_UPDATENOW))
 DLLCLose($dll)
EndFunc
;===============================================================================
;
; Function Name: _API_SetLayeredWindowAttributes
; Description::  Sets Layered Window Attributes:) See MSDN for more informaion
; Parameter(s):
;    &nbsp;$hwnd - Handle of GUI to work on
;     $i_transcolor - Transparent color
;     $Transparency - Set Transparancy of GUI
;     $isColorRef - If True, $i_transcolor is a COLORREF-Strucure, else an RGB-Color
; Requirement(s): &nbsp;Layered Windows
; Return Value(s): Success: 1
;     Error: 0
;     @error: 1 to 3 - Error from DllCall
;     @error: 4 - Function did not succeed - use
;         _WinAPI_GetLastErrorMessage or _WinAPI_GetLastError to get more information
; Author(s):   Prog@ndy
;
;===============================================================================
;
Func _API_SetLayeredWindowAttributes($hwnd, $i_transcolor, $Transparency, $isColorRef = False)

Local Const $AC_SRC_ALPHA = 1
Local Const $ULW_ALPHA = 2
Local Const $LWA_ALPHA = 0x2
Local Const $LWA_COLORKEY = 0x1

 If Not $isColorRef Then
  $i_transcolor = Hex(String($i_transcolor), 6)
  $i_transcolor = Execute('0x00' & StringMid($i_transcolor, 5, 2) & StringMid($i_transcolor, 3, 2) & StringMid($i_transcolor, 1, 2))

  EndIf
  Local $Ret = DllCall("user32.dll", "int", "SetLayeredWindowAttributes", "hwnd", $hwnd, "long", $i_transcolor, "byte", $Transparency, "long", $LWA_COLORKEY + $LWA_ALPHA)
  Select
  Case @error
    Return SetError(@error,0,0)

  Case $ret[0] = 0
    Return SetError(4,0,0)
  Case Else

    Return 1
  EndSelect
EndFunc;==>_API_SetLayeredWindowAttributes

Func _GuiRoundCorners($h_win, $i_x1, $i_y1, $i_x3, $i_y3)
 Dim $pos, $ret, $ret2
 $pos = WinGetPos($h_win)
  $ret = DllCall("gdi32.dll", "long", "CreateRoundRectRgn", "long", $i_x1, "long", $i_y1, "long", $pos[2], "long", $pos[3], "long", $i_x3,"long", $i_y3)

 If $ret[0] Then
   $ret2 = DllCall("user32.dll", "long", "SetWindowRgn", "hwnd", $h_win, "long", $ret[0], "int", 1)
  If $ret2[0] Then
  Return 1
   Else

  Return 0
  EndIf
 Else
  Return 0
 EndIf
EndFunc ;==>_GuiRoundCorners
;~ Function-'Format'-Description-------------------------------------------------------
;~ Format Function Created by Blinko
;~ Description: Format( $value )
;~       This was made to imitate Visual Basic's Format Function.
;~ 		 Where (Example Text1 = Format( Text1, "###,###" )
;~ 		 If Text1.text = 1000
;~ 		 then Format(Text1, "###,###") = 1,000
;~ 		 However AutoIt doesnt have a function for this. So i made one up.
;~
;~ Usage: Format($expression, $separator, $nSize)
;~      As the Above Example u want a string like 100000 to read as 100,000
;~      You simply say for example Format('100000' , ',' , 3)
;~      Usage Example: GuiCtrlSetData( $Label, Format(GetPlayerGold(), ',' , 3) )
;~      You may also use "," instead of ',' it does not matter :P
;~ ---------------------------------------------------------------------------------------

Func Format($expression, $separator, $nSize)
	Local $split = StringSplit($expression, "")
    Local $newText = ""
    Local $counter = 0
    If StringLen($expression) > $nSize Then
        For $i = $split[0] To 1 Step -1
            If $counter = $nSize Then
                $newText = $split[$i] & $separator & $newText
                $counter = 0
            Else
                $newText = $split[$i] & $newText
            EndIf
            $counter +=1
        Next
	Else
		$expression = $expression
		Return $expression
    EndIf

	Return $newText
EndFunc

#EndRegion===========================================================================================================================
#Region====EEAutoPilot.settings Info===============================================================
;~ local $app_base = 0x00C71E98
;~ local $Zoom_ADDR = 0x00C7157C
;~ local $ptarget = 0x00C71EAC

local $app_base = IniRead(@WorkingDir & "\EEAutoPilot.settings","main","app_base","")
local $app_base_offset = IniRead(@WorkingDir & "\EEAutoPilot.settings","main","app_base_offset","")
local $Zoom_ADDR = IniRead(@WorkingDir & "\EEAutoPilot.settings","main","Zoom_ADDR","")
local $pname = IniRead(@WorkingDir & "\EEAutoPilot.settings","main","pname","") ;static name
local $ptarget = IniRead(@WorkingDir & "\EEAutoPilot.settings","main","ptarget","")
local $ZOOM_OFFSET1 = IniRead(@WorkingDir & "\EEAutoPilot.settings","main","ZOOM_OFFSET1","")
local $OFFSET_CurHP = IniRead(@WorkingDir & "\EEAutoPilot.settings","main","OFFSET_CurHP","")
local $OFFSET_MaxHP = IniRead(@WorkingDir & "\EEAutoPilot.settings","main","OFFSET_MaxHP","")
local $OFFSET_CurMP = IniRead(@WorkingDir & "\EEAutoPilot.settings","main","OFFSET_CurMP","")
local $OFFSET_MaxMP = IniRead(@WorkingDir & "\EEAutoPilot.settings","main","OFFSET_MaxMP","")
local $OFFSET_TARGET = IniRead(@WorkingDir & "\EEAutoPilot.settings","main","OFFSET_TARGET","")
local $OFFSET_EXP = IniRead(@WorkingDir & "\EEAutoPilot.settings","main","OFFSET_EXP","")
local $OFFSET_CEXP = IniRead(@WorkingDir & "\EEAutoPilot.settings","main","OFFSET_CEXP","")
local $OFFSET_CLASSLVL = IniRead(@WorkingDir & "\EEAutoPilot.settings","main","OFFSET_CLASSLVL","")
local $OFFSET_BASELVL = IniRead(@WorkingDir & "\EEAutoPilot.settings","main","OFFSET_BASELVL","")
local $OFFSET_PDEF = IniRead(@WorkingDir & "\EEAutoPilot.settings","main","OFFSET_PDEF","")
local $OFFSET_PCRIT = IniRead(@WorkingDir & "\EEAutoPilot.settings","main","OFFSET_PCRIT","")
local $OFFSET_PACC = IniRead(@WorkingDir & "\EEAutoPilot.settings","main","OFFSET_PACC","")
local $OFFSET_PSTR = IniRead(@WorkingDir & "\EEAutoPilot.settings","main","OFFSET_PSTR","")
local $OFFSET_PAGI = IniRead(@WorkingDir & "\EEAutoPilot.settings","main","OFFSET_PAGI","")
local $OFFSET_PINT = IniRead(@WorkingDir & "\EEAutoPilot.settings","main","OFFSET_PINT","")
local $OFFSET_PWIS = IniRead(@WorkingDir & "\EEAutoPilot.settings","main","OFFSET_PWIS","")
local $OFFSET_PLCK = IniRead(@WorkingDir & "\EEAutoPilot.settings","main","OFFSET_PLCK","")
local $OFFSET_GUILDTITLE = IniRead(@WorkingDir & "\EEAutoPilot.settings","main","OFFSET_GUILDTITLE","")
local $OFFSET_PNAME = IniRead(@WorkingDir & "\EEAutoPilot.settings","main","OFFSET_PNAME","") ;offset for player name from app base address
#endregion============================================================================================================================
#region====BASE ADDRESS + OFFSETS==================================================================
func GetBaseAddress()
	local $base = _EEMemRead($app_base)
	local $ptr =  '0x' & Hex($base + $app_base_offset)
	local $base_address = _EEMemRead($ptr)
	return $base_address
EndFunc


local $CurHP = '0x' & Hex(GetBaseAddress() + $OFFSET_CurHP)
local $MaxHP = '0x' & Hex(GetBaseAddress() + $OFFSET_MaxHP)
local $CurMP = '0x' & Hex(GetBaseAddress() + $OFFSET_CurMP)
local $MaxMP = '0x' & Hex(GetBaseAddress() + $OFFSET_MaxMP)
local $CurEXP = '0x' & Hex(GetBaseAddress() + $OFFSET_EXP)

local $CurCEXP = '0x' & Hex(GetBaseAddress() + $OFFSET_CEXP)

local $ClassLVL = '0x' & Hex(GetBaseAddress() + $OFFSET_CLASSLVL)
local $BaseLVL = '0x' & Hex(GetBaseAddress() + $OFFSET_BASELVL)
local $PlayerDEF = '0x' & Hex(GetBaseAddress() + $OFFSET_PDEF)
local $PlayerPCRIT = '0x' & Hex(GetBaseAddress() + $OFFSET_PCRIT)
local $PlayerPSTR = '0x' & Hex(GetBaseAddress() + $OFFSET_PSTR)
local $PlayerPAGI = '0x' & Hex(GetBaseAddress() + $OFFSET_PAGI)
local $PlayerPINT = '0x' & Hex(GetBaseAddress() + $OFFSET_PINT)
local $PlayerPWIS = '0x' & Hex(GetBaseAddress() + $OFFSET_PWIS)
local $PlayerPLCK = '0x' & Hex(GetBaseAddress() + $OFFSET_PLCK)
local $PlayerPACC = '0x' & Hex(GetBaseAddress() + $OFFSET_PACC)
local $PlayerGuildTitle = '0x' & Hex(GetBaseAddress() + $OFFSET_GUILDTITLE)
local $PlayerPNAME = '0x' & Hex(GetBaseAddress() + $OFFSET_PNAME)
#endregion=======================================================================================================================
#region====ReadEE/WriteEE Functions================================================================
func ReadEE($type)

		switch $type

			case "player_name"
				$p_name = _EEMemRead($PlayerPNAME, "char[16]")
			return String($p_name)

			case "player_guild_title"
				$p_guildt = _EEMemRead($PlayerGuildTitle, "char[16]")
			return String($p_guildt)

			case "player_str"
				$p_str = _EEMemRead($PlayerPSTR, "dword")
			return Int($p_str)

			case "player_agi"
				$p_agi = _EEMemRead($PlayerPAGI, "dword")
			return Int($p_agi)

			case "player_int"
				$p_int = _EEMemRead($PlayerPINT, "dword")
			return Int($p_int)

			case "player_acc"
				$p_acc = _EEMemRead($PlayerPACC, "float")
			return Int($p_acc)

			case "player_crit"
				$p_crit = _EEMemRead($PlayerPCRIT, "float")
			return Int($p_crit)

			case "player_def"
				$p_def = _EEMemRead($PlayerDEF, "dword")
			return Int($p_def)

			case "base_lvl"
				$base_lvl = _EEMemRead($BaseLVL, "dword")
			return Int($base_lvl)

			case "class_lvl"
				$class_lvl = _EEMemRead($ClassLVL, "dword")
			return Int($class_lvl)

			case "current_cexp"
				$cur_cexp = _EEMemRead($CurCEXP, "dword")
			return Int($cur_cexp)


			case "current_exp"
				$cur_exp = _EEMemRead($CurEXP, "dword")
			return Int($cur_exp)


			case "player_target"
				$targetbaseADDR = _EEMemRead($ptarget,"dword")
				$target =  '0x' & Hex($targetbaseADDR + $OFFSET_TARGET)
				$targeted = '0x' & Hex($target)
				$target = _EEMemRead($targeted, "dword")
				Return Int($target)

			case "name"
				$name = _EEMemRead($pname, "char[16]")
			return String($name)

			case "current_hp"
				$cur_hp = _EEMemRead($CurHP, "dword")
				return Int($cur_hp)

			case "max_hp"
				$max_hp = _EEMemRead($MaxHP)
			return Int($max_hp)

			case "current_mp"
				$cur_mp = _EEMemRead($CurMP)
			return Int($cur_mp)

			case "max_mp"
				$max_mp = _EEMemRead($MaxMP)
			return Int($max_mp)

		EndSwitch

EndFunc



func WriteEE($address,$offset,$value)
	;"1198383360" zoom hack value
	;1098383360 normal value

	$1 = _EEMemRead($address, "dword")
	_EEMemWrite($1 + $offset, $value, "dword")
EndFunc

#endregion=========================================================================================================================



#region====Control Functions=======================================================================
Func ZoomHack()
	WriteEE($Zoom_ADDR,$ZOOM_OFFSET1,"1198383360")
EndFunc
#endregion=========================================================================================
EEBot_v1.2.au3 - GUI/Bot Setup

Hmm...what to say there's alot of stuff happening here. Application checks it the game is window mode..currently it only supposrts the Window Mode: 800x600 because that's what I always end up using beacuse it's easy to use other tools and software while the game is running in a smaller window..so this may or may not be causing some of the issues people are having with delays I don't know. By doing this is checks the windows width and if the windows width is 800 or less it'll attach to a set area o nthe left side of the client. If it's not thne its still just attached to the left o.o. I'm actually i nthe middle of changing this to fix these types of errors..but meh I basically got called out for a virus so here this is early.

Functions used in EEBot_v1.2.au3
Code:
Drag()

enable_disable_trans() - enables/disables the transparent background (visible or transparent)

hidewin() - having an issue having the GUI stay on top of other windows while game client is not active I need to fix this to work only with the game client while the game is not active it should also remain in the background so it dont interfere with other activities.

CLOSE() - closes the application.

UpdateInfo() - updates player informationc: calls on the EEData.au3 functions

CheckHP()  - hp check loop is here : calls on the EEData.au3 functions

CheckMP() - mp check loop as well : calls on the EEData.au3 functions

CheckTarget() - check player target : calls on the EEData.au3 functions

ShowStats() - shows unseen memory values being read, or available this was my personal test function for displaying stats to see if they were accurate.

RunMiniBot() - runs bot functions

_API_SetLayeredWindowAttributes($guicontrols, 0xc1c1c1, 255) - sets some window layer attributes for making the background behind the labels or input boxes appear transparent instead of its default color. Basically instead of calling the GUICtrlSetBkColor to change the labels background to the same color as the form or else it'll be a big box of color on the gui around the text..this just makes the background invisible so only the forms background color shows through. As with the example above is directly fro mmy source. Changes the background color thats 0xC1C1C1 (or #c1c1c1 in html) transparent. So now i just create a new label with that background color $Label1 = _GuiCreateLabel("Label",x,y,w,h,font-size,0xc1c1c1,$text_color ) you can set this to any color you wish to make transparent. Reads from the EEAutoPilot.settings file

_GuiRoundCorners($Form1,0, 0, 30, 30)  - rounds the corners of the GUI
-Source-
Code:
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=..\..\Icon Entry_1.ico
#AutoIt3Wrapper_outfile=EEBot_v1.2.exe
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_Add_Constants=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#CS--------------------------------------------------------------------
;~ 	Brought to you by Blinko of Blinko's Box 2001-2011
;~ 	   ______                            ______
;~   (, /    ) /) ,     /)     /       (, /    )
;~     /---(  //   __  (/_  ___ _        /---(  _____/
;~  ) / ____)(/__(_/ (_/(__(_) /_)_   ) / ____)(_)  /(__
;~ (_/ (                             (_/ (         /


#CE--------------------------------------------------------------------

#include 'EEData.au3'
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIComboBoxEx.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

opt("GuiOnEventMode",1)
global $running,$hastarget,$stopped = 0
local $trans_back,$hide

$text_color = Int(IniRead(@WorkingDir & "\EEAutoPilot.settings","settings","txt_color",""))
$bgcolor = IniRead(@WorkingDir & "\EEAutoPilot.settings","settings","bgtrans","")

HotKeySet("{F1}","enable_disable_trans")
HotKeySet("{F2}","hidewin")
HotKeySet("{F5}","RunMiniBot")
HotKeySet("{F6}","ZoomHack")
HotKeySet("{F7}","ShowStats")
HotKeySet("{DEL}","Close")
$win = WinGetTitle("EE Auto-Pilot")
If WinExists($win) Then
	MsgBox(0,"Warning","Bot already open")
	Exit
EndIf



$win = WinGetPos("Eden Eternal","")
$x = $win[0]
$y = $win[1]
$a = $win[3]

if $a <= 800 Then
	$Form1 = GUICreate("EE Auto-Pilot", 233, 296, $x, $y+175,$WS_POPUP,$WS_EX_TOOLWINDOW)
	GUISetOnEvent ($GUI_EVENT_PRIMARYDOWN, "Drag" )

$guicontrols=GUICreate("controls",233, 296, $x, $y+175,$WS_POPUP,$WS_EX_LAYERED,$Form1)
GUISetBkColor($bgcolor)
WinSetOnTop("EE Auto-Pilot","",1)
WinSetOnTop("controls","",1)
WinActivate("Eden Eternal","")
Else
	$Form1 = GUICreate("EE Auto-Pilot", 233, 296, $x, $y+375,$WS_POPUP,$WS_EX_TOOLWINDOW)
	GUISetOnEvent ($GUI_EVENT_PRIMARYDOWN, "Drag" )
$guicontrols=GUICreate("controls",233, 296, $x, $y+375,$WS_POPUP,$WS_EX_LAYERED,$Form1)
GUISetBkColor($bgcolor)
WinSetOnTop("EE Auto-Pilot","",1)
WinSetOnTop("controls","",1)
WinActivate("Eden Eternal","")
endif



$lbl_name = _GuiCreateLabel("Name Hidden",5,8,165,17,8,$bgcolor,$text_color )
$Label1 = _GuiCreateLabel("",5,64,150,17,8,$bgcolor,$text_color )
$Label2 = _GuiCreateLabel("",5,80,150,17,8,$bgcolor,$text_color )
$Label3 = _GuiCreateLabel("",5,96,150,17,8,$bgcolor,$text_color )
$lbl_exp = _GuiCreateLabel("",5,113,200,17,8,$bgcolor,$text_color )
$Label4 = _GuiCreateLabel("Pot HP <= ",5,154,70,17,8,$bgcolor,$text_color )
$Label5 = _GuiCreateLabel("Pot MP <= ",5,181,70,17,8,$bgcolor,$text_color )
$Label6 = _GuiCreateLabel("Skill 1:",5,208,35,17,8,$bgcolor,$text_color )
$Label7 = _GuiCreateLabel("Skill 2:",5,232,35,17,8,$bgcolor,$text_color )
$Label8 = _GuiCreateLabel("Skill 3:",5,257,35,17,8,$bgcolor,$text_color )
$lbl_classexp = _GuiCreateLabel("Class Exp:",5,129,200,17,8,$bgcolor,$text_color )
$Label9 = _GuiCreateLabel("",5,28,200,17,8,$bgcolor,$text_color )
$Label10 = _GuiCreateLabel("",5,45,290,17,8,$bgcolor,$text_color )


$Input1 = _GuiCreateInput("250",75,154,50,21,8,$bgcolor,$text_color)
$Input2 = _GuiCreateInput("250",75,181,50,21,8,$bgcolor,$text_color)

$Combo1 = _GuiCreateCombo("",48,208,49,25,7,$bgcolor,$text_color,"1|2|3|4|5|6|7|8|9|0")
$Combo2 = _GuiCreateCombo("",48,232,49,25,7,$bgcolor,$text_color,"1|2|3|4|5|6|7|8|9|0")
$Combo3 = _GuiCreateCombo("",48,256,49,25,7,$bgcolor,$text_color,"1|2|3|4|5|6|7|8|9|0")
$Combo4 = _GuiCreateCombo("",128,154,49,25,7,$bgcolor,$text_color,"1|2|3|4|5|6|7|8|9|0")
$Combo5 = _GuiCreateCombo("",128,181,49,25,7,$bgcolor,$text_color,"1|2|3|4|5|6|7|8|9|0")



GUISetBkColor(0x000000,$Form1)

_API_SetLayeredWindowAttributes($guicontrols, $bgcolor, 255)
GUISetState(@SW_SHOW, $Form1)
GUISetState(@SW_SHOW, $guicontrols)
_GuiRoundCorners($Form1,0, 0, 30, 30) ; makes the background have round corners
GUISwitch($guicontrols)


func Drag()
	DragWindow($Form1,$guicontrols)
EndFunc

func enable_disable_trans()
	$trans = IniRead(@WorkingDir & "\EEAutoPilot.settings","settings","istrans","")

	if $trans = 1 then
	INIWrite(@WorkingDir & "\EEAutoPilot.settings","settings","istrans",0)
	$wTrans = IniRead(@WorkingDir & "\EEAutoPilot.settings","settings","win_trans","")
WinSetTrans($Form1,"",$wTrans)
$wTrans = ""

Elseif $trans = 0 Then
INIWrite(@WorkingDir & "\EEAutoPilot.settings","settings","istrans",1)
WinSetTrans($Form1,"",0)

endif

EndFunc

func hidewin()
	$hide = NOT $hide
	while $hide

		GUISetState(@SW_hide, $Form1)
		GUISetState(@SW_hide, $guicontrols)

WEnd

		GUISetState(@SW_show, $Form1)
		GUISetState(@SW_show, $guicontrols)


EndFunc

func CLOSE()
	WinSetTitle("EEBot_v1.1","","Eden Eternal")
	exit 0
EndFunc

func UpdateInfo()
	GuiCtrlSetData($Label1,Format(ReadEE("current_hp"),",",3) & " / " & Format(ReadEE("max_hp"),",",3) & " : " & Round(Int(ReadEE("current_hp")) / Int(ReadEE("max_hp")) * 100,2) & " %")
	GuiCtrlSetData($Label2,Format(ReadEE("current_mp"),",",3) & " / " & Format(ReadEE("max_mp"),",",3) & " : " & Round(Int(ReadEE("current_mp")) / Int(ReadEE("max_mp")) * 100,2) & " %")
	GuiCtrlSetData($lbl_exp,"Exp: " & Format(ReadEE("current_exp"),",",3))
	GuiCtrlSetData($lbl_classexp,"Class Exp: " & Format(ReadEE("current_cexp"),",",3) )
    GuiCtrlSetData($Label3,"Player Target: " & ReadEE("player_target"))
	GuiCtrlSetData($Label9,"Player Level: " & ReadEE("base_lvl") & "     " & "Player DEF: " & ReadEE("player_def") )
	GuiCtrlSetData($Label10,"Class Level: " & ReadEE("class_lvl") & "     " & "Player CRIT: " & ReadEE("player_crit"))
	GuiCtrlSetData($lbl_name,"Player Name: " & ReadEE("player_name"))
	Sleep(300)
EndFunc


func CheckHP()
		$hp = Int(ReadEE("current_hp"))
		$hp_pot = Int(GuiCtrlRead($Input1))

	if Int($hp) < Int($hp_pot) Then

		$key4 = Int(GuiCtrlRead($Combo4))
		Send($key4,0)

	EndIf


EndFunc

func CheckMP()
		$mp = Int(ReadEE("current_mp"))
		$mp_pot = Int(GuiCtrlRead($Input2))

	if Int($mp) < Int($mp_pot) Then

		$key5 = Int(GuiCtrlRead($Combo5))
		Send($key5,0)

	EndIf


EndFunc

Func CheckTarget()
	$target = Int(ReadEE("player_target"))

	if Int($target) == 0 Then
		Send("{TAB}",0)

	EndIf
	Return Int(ReadEE("player_target"))
EndFunc

func ShowStats()
$msg = "Current HP: " & ReadEE("current_hp") & @crlf
$msg &= "Max HP: " & ReadEE("max_hp") & @crlf
$msg &= "Current MP: " & ReadEE("current_mp") & @crlf
$msg &= "Max MP: " & ReadEE("max_mp") & @crlf
$msg &= "STR: " & ReadEE("player_str") & @crlf
$msg &= "AGI: " & ReadEE("player_agi") & @crlf
$msg &= "INT: " & ReadEE("player_int") & @crlf
$msg &= "P-Crit: " & ReadEE("player_crit") & @crlf
$msg &= "ACC: " &  ReadEE("player_acc") & @crlf
$msg &= "DEF: " & ReadEE("player_def") & @crlf
$msg &= "BASE LVL: " & ReadEE("base_lvl") & @crlf
$msg &= "CLASS LVL: " & ReadEE("class_lvl") & @crlf
$msg &= "Current Class EXP: " & ReadEE("current_cexp") & @crlf
$msg &= "Current EXP: " & ReadEE("current_exp") & @crlf
$msg &= "Current TARGET: " & ReadEE("player_target") & @crlf
$msg &= "Player Name: " & ReadEE("player_name") & @crlf
$msg &= "Guild Name: " & ReadEE("player_guild_title")
MsgBox(0,"",$msg)
EndFunc


func RunMiniBot()
	$running = NOT $running

while $running

	UpdateInfo()
	CheckTarget()
	CheckHP()
	CheckMP()

		$key1 = Int(GuiCtrlRead($Combo1))
		Send($key1,0)

		$key2 = Int(GuiCtrlRead($Combo2))
		Send($key2,0)

		$key3 = Int(GuiCtrlRead($Combo3))
		Send($key3,0)

Wend

EndFunc

WinSetTrans($Form1,"",0)

While 1

$w = WinGetPos("Eden Eternal","")
$x1 = $w[0]
$y1 = $w[1]
$a = $w[3]

$pos = WinGetPos("EE Auto-Pilot","")
$x2 = $pos[0]
$y2 = $pos[1]

$trans_back = IniRead(@WorkingDir & "\EEAutoPilot.settings","settings","istrans","")



If $trans_back = 1 then

if $a < 800 Then

If $x1 <> $x2 or $y1 <> $y2 Then
	WinMove("EE Auto-Pilot","",$x1,$y1+175)
	WinMove("controls","",$x1,$y1 + 175)
EndIf
endif
elseif $trans_back = 0 Then

EndIf

	UpdateInfo()
	Sleep(100)
WEnd
Enjoy the Trojan guys !

Had to Edit ! I always forget the damn EEAutoPilot.settings file so here that is too. Just paste into notepad or any text editing software and save as EEAutoPilot.settings file. Or rename .txt to .settings. whatever...or change the actual code and use a diff file name.

Code:
[main]
exe=_Launcher.exe
--1.1app_base = 0x00C7AED8
app_base = 0x00C7CED8
app_base_offset = 0xC
--1.1Zoom_ADDR = 0x00C7A5BC
Zoom_ADDR = 0x00C7D7F4
pname = 0x00C7CDC4
ptarget = 0x00C7CEEC
ZOOM_OFFSET1 = 0x54
OFFSET_CurHP = 0x4
OFFSET_MaxHP = 0x4C
OFFSET_CurMP = 0x8
OFFSET_MaxMP = 0x50
OFFSET_TARGET = 0x08
OFFSET_EXP = 0x18
OFFSET_CEXP = 0x20
OFFSET_CLASSLVL = 0x24
OFFSET_BASELVL = 0x1C
OFFSET_PDEF = 0x64
OFFSET_PCRIT = 0x11C
OFFSET_PACC = 0x118
OFFSET_PSTR = 0x148
OFFSET_PAGI = 0x150
OFFSET_PINT = 0x14C
OFFSET_PWIS = 0x154
OFFSET_PLCK = 0x158
OFFSET_GUILDTITLE = 0x1F0
OFFSET_PNAME = 0x1B8

[settings]
bgcolor=0xc1c1c1
txt_color=0xff00ff
win_trans=45
isTrans=1
08/18/2011 11:57 KyRoN#359
Why do you post this, are you giving up on us ? :)
08/18/2011 12:06 blinko#360
Quote:
Originally Posted by KyRoN View Post
Why do you post this, are you giving up on us ? :)
No I just don't like when people try and get others worked up over false positives. So I scanned it and sure enough it said it was infected even if it's 1/44 I know how people get. It's got no Trojan in it, and there's the proof now :P besides there's still some bugs to work through, and a few other things to add to it; at least until they patch again lol. If anyone can work around the huge mess of code.

So have fun with what ya can I guess I'll make a new one ^^ (or at least add on to it).