tarre Posted March 9, 2008 Share Posted March 9, 2008 Heya. was trying to read data with nomandmemory. and i got this far: #include <NomadMemory.au3> $ProcessID = WinGetProcess("World of Warcraft", "") $memoryopen = _MemoryOpen($ProcessID) i know it isnt long. but i dont know how i can read with _MemoryRead() and then output it. i have used the search functions but :/ no results that helped me Link to comment Share on other sites More sharing options...
tarre Posted March 9, 2008 Author Share Posted March 9, 2008 seriusly all 4 topcis ive made on this forum had 0 posts and 0 Views. atleast gimme an link for some guide :/ basic memory reading or such Link to comment Share on other sites More sharing options...
Xand3r Posted March 9, 2008 Share Posted March 9, 2008 (edited) try to search the examples subforum there is a big thread about world of warcraft and i'm not sure about this but to my knoledge wow memory is blocked somehow Edited March 9, 2008 by alexmadman Only two things are infinite, the universe and human stupidity, and i'm not sure about the former -Alber EinsteinPractice makes perfect! but nobody's perfect so why practice at all?http://forum.ambrozie.ro Link to comment Share on other sites More sharing options...
tarre Posted March 9, 2008 Author Share Posted March 9, 2008 (edited) thanks ! how can they block reading memory ;S like all wow bots reads data. ofc. i search *World of warcraft* then the search engine whines about *of* is to fking short. WHY? Edited March 9, 2008 by tarre Link to comment Share on other sites More sharing options...
Swift Posted March 9, 2008 Share Posted March 9, 2008 Because, bots are cheating and hacking, and the devolpers of this game do not want cheaters or hackers so they block the memory. Not all WoW bots use memory and they don't have to. In other words, I have no clue how to get it to read blocked memory nor do I think you should try to hack/cheat your way into a game, play it, the way it's supposted to be played. Link to comment Share on other sites More sharing options...
tarre Posted March 9, 2008 Author Share Posted March 9, 2008 i dont wanna make a bot or so. just so i can read the Chatlog from wow to windows. so when i get a whisp or something it will tell me when im no inside the game. and btw!. i just learned i need an Memory editor to find an adress with an pointer. i got Artmoney but i dont know if it exis some better?, searched and found that nomad PDF or something like that was good. Link to comment Share on other sites More sharing options...
Swift Posted March 9, 2008 Share Posted March 9, 2008 Still, it will be difficult to read memory thats blocked. Good luck with finding a solution. (FYI: Reading memory, if you can, WILL get you banned Happy Hunting!) Link to comment Share on other sites More sharing options...
tarre Posted March 9, 2008 Author Share Posted March 9, 2008 yeye. then i can just fck it ;/. Link to comment Share on other sites More sharing options...
Spitt Posted April 22, 2008 Share Posted April 22, 2008 Not all memory offsets are blocked by Warden. ArtMoney, CheatEngine, there are quite a few out there - also make sure to check out PermEdit. Instead of messing with AutoIt for this, check out InnerSpace. There is already a script which will tell you if there is a tell from someone while you are afk. Link to comment Share on other sites More sharing options...
Dampe Posted April 22, 2008 Share Posted April 22, 2008 I suggest looking at the ThermoPrimo bot for WoW (Search here or www.mmowned.com), Updating the Offsets and going from there. It can easily be done. Link to comment Share on other sites More sharing options...
Chika95 Posted April 22, 2008 Share Posted April 22, 2008 i dont wanna make a bot or so. just so i can read the Chatlog from wow to windows. so when i get a whisp or something it will tell me when im no inside the game. and btw!. i just learned i need an Memory editor to find an adress with an pointer. i got Artmoney but i dont know if it exis some better?, searched and found that nomad PDF or something like that was good. If you are looking for a log parser, I've made this for LOTRO, it could be easily adapted to any game. I've trimed it down very quickly to just the log parsing functions. expandcollapse popup#comments-start AutoIt Version: 3.1.0 Title: LOTRO Log parser and location Handler Author: BotXPert <LOTROBot@gmail.com> Script Function: This script is a "starter" script for you to either insert or start your own script. It contains functions that can be useful when creating your own LOTRO script. These are the essential functions from my LOTROBot script. Usage: Read what functions are available below. Copy and paste your script between the ;STARTSCRIPTSTARTSCRIPT and the ;SCRIPTENDSCRIPTEND lines. Or integrate the Global and variable definitions to your own script and make the subfunctions an include. Write your script and call the premade functions to suit your needs Functions: GetLastLine() Calling this function in your script will set the Global string variable $LastLine to the last line in the log file Misc: If there is enough interest I can also add the following self explainatory functions: MoveToLoc($XPos, $YPos), CheckIfInCombat(), AquireTarget(). If you are looking for a premade travelbot, I'd try my LOTROBot on the TauntUnleashed forums. #comments-end Global $NameOfChatTab Global $LastLine Global $LastLineNumber Global $PreviousFileLine Global $Heading Global $CurrentLogFile Global $CurrentLine Global $pid Global $LocationPhrase Global $TimeToPauseToWaitForLogWrite Global $GetPositionDataTimer Global $SendAndWaitForNewLineTimer Opt("WinWaitDelay",0) Opt("SendKeyDownDelay",30) $CurrentLine = 1 ;Set First line of the log file to start on $LOTROWindowName = "The Lord of the Rings Online" $TimeToPauseToWaitForLogWrite = 500 ;Time to wait for the Log file to write before timing out SetLogFile() ;Finds the most recent Log file in the My Documents\Lord of the Rings Online directory ;Type your Script in here ;SCRIPTSTARTSCRIPTSTARTSCRIPTSTARTSCRIPTSTARTSCRIPTSTARTSCRIPTSTARTSCRIPTSTARTSCRIPTSTARTSCRIPTSTART ;Erase this next line once you figure things out msgbox(0x40000,"No Code","This script does nothing on its own. You must write some code. Exiting...") ;SCRIPTENDSCRIPTENDSCRIPTENDSCRIPTENDSCRIPTENDSCRIPTENDSCRIPTENDSCRIPTENDSCRIPTENDSCRIPTENDSCRIPTEND Exit ;------------------------------------------------------------------------ Func SetLogFile() ;When this function is called, it sets the Global variable $CurrentLogFile to the most up to date Log file name. It does not return anything While 1 FileChangeDir(@MyDocumentsDir & "\The Lord of the Rings Online\") $TextFileBaseName = $NameOfChatTab & "_*.txt" $LogFile = -1 While $LogFile = -1 $LogFile = FileFindFirstFile($TextFileBaseName) IF $LogFile = -1 then IF msgbox(0x40005, "Start Logging", "You must start Chat logging on the LOTRO " & $NameOfChatTab & " Tab first.") = 2 then exit EndIf Wend ;Finds most recent file then makes sure it is the right one While 1 ;Find most recent File $CurrentFile = FileFindNextFile($LogFile) If @error Then ExitLoop $CurrentLogFile = $CurrentFile Wend IF FileGetsize($CurrentLogFile) > 100000 Then IF msgbox(0x40004,"File very large","Press YES to delete file, no to parse anyway") = 6 then FileDelete($CurrentLogFile) sleep(100) SendWithOptions("{Enter}/say Log File Reinitialize{enter}",2,1) sleep(100) continueloop ;Restarts Function EndIf EndIf ;Most recent found set in $CurrentLogFile, if it doesn't have todays date ask for user input IF StringInStr($CurrentLogFile, $NameOfChatTab & "_" & @YEAR & @MON & @MDAY) = 0 Then $msg = msgbox(0x40006,"Possible error","The log file selected(" & $CurrentLogFile & ") does not have todays date." & @CR &"You may not have started logging.") Select Case $msg = 2 Exit Case $msg = 11 If msgbox(0x40004,"Possible error","Are you sure you want to continue?") = 7 then exit Return Case $msg = 10 ContinueLoop ;Restarts Function EndSelect EndIf Return ; Correct log file found and set in $CurrentLogFile variable WEnd EndFunc ;------------------------------------------------------------------------ Func GetCurrentLogFileLine() GetLastLine() $PreviousFileLine = $LastLineNumber Return EndFunc ;------------------------------------------------------------------------ Func WaitForNewLine() ;This function is called from the SendAndWaitForNewLine() function ;Usage: ; Use GetCurrentLogFileLine() function before calling this function ; Then send an input that sends text to window ; Then call this function $LogFileWriteTimeout = Timerinit() While timerdiff($LogFileWriteTimeout) < $TimeToPauseToWaitForLogWrite GetLastLine() IF $LastLineNumber = $PreviousFileLine + 1 then ExitLoop WEnd EndFunc ;------------------------------------------------------------------------ Func GetLastLine() ;Sets $LastLine(a string containing the text of the last line) to the Last Line of the file ;If the program just started type this to let the user know that he might have to wait ;As the log file gets over 100Kb this takes a non-conconsequential amount of time ;Loop Until the end of file is reached, while Setting Current ;Saves the $CurrentLine globally so it doesn't have the parse the entire file next time While 1 $line = FileReadLine($CurrentLogFile, $CurrentLine) If @error = -1 Then ExitLoop $CurrentLine = $CurrentLine + 1 Wend $LastLineNumber = $CurrentLine-1 $LastLine = FileReadLine($CurrentLogFile, $LastLineNumber) EndFunc Link to comment Share on other sites More sharing options...
galpha Posted April 22, 2008 Share Posted April 22, 2008 Ok just had to post to correct a few stuffs . First of all, there is no way any cheat engines can detect reading the memory of a process. It can't be done. HOWEVER, writting to memory is detectable. So again, reading = no problems. Second, from all the testing I did, no regions in WoW memory are locked. I could however be wrong. If that's the case, make a call to VirtualProtect (http://msdn2.microsoft.com/en-us/library/aa366898(VS.85).aspx) with a DWORD flNewProtect value of PAGE_EXECUTE (0x10). Lastly, your script BotXpert is indeed working for a LODRO, but WoW only writes its log files on log off, which means it keeps all text in a buffer and only writes on game exit/log. Again, that was like that a while ago and I can't test it atm, it might have changed however. To log chat, there are 3 possible ways: - Reading from the chat buffer, but it's a DMA, so there's other ways to get base address every times, which might be too complicated for you. - Packet parsing, again too hard. - Reading from LOG file, best option if possible. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now