Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 21:19

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Array of Byte oder Pattern suche

Discussion on Array of Byte oder Pattern suche within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
Paraly's Avatar
 
elite*gold: 27
Join Date: Sep 2009
Posts: 5,609
Received Thanks: 1,597
Array of Byte oder Pattern suche

Heyho hat jemand ne Ahnung ob man mit Autoit nach bestimmten Pattern suchen kann, ich meine das gleiche wie bei Cheat Engine Array of Byte such methode
Paraly is offline  
Old 11/18/2013, 20:21   #2
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
Quote:
Originally Posted by zocker5656 View Post
Heyho hat jemand ne Ahnung ob man mit Autoit nach bestimmten Pattern suchen kann, ich meine das gleiche wie bei Cheat Engine Array of Byte such methode
am besten das ganze module bzw file einlesen und per StringRegexp dann nach dem muster suchen...
lolkop is offline  
Old 11/19/2013, 01:35   #3
 
Paraly's Avatar
 
elite*gold: 27
Join Date: Sep 2009
Posts: 5,609
Received Thanks: 1,597
ok darauf kam ich auch schon vorher nur ich dachte es gäbe evtl eine bequeme art wie ne fertige UDF aber ok

bisher ist mein code
Code:
#requireadmin
#include <Pointer.au3>
#include <Array.au3>

global $Memory_Map
global $Memory_Cache
$PID = ProcessExists("Aion.bin")
$MemOpen = _MemoryOpen($PID)



_Get_Memory_Map()
Func _Get_Memory_Map()
$i = 0
$GameBaseAddr = _MemoryModuleGetBaseAddress($PID, "Game.dll")
$CrySystemBaseAddr = _MemoryModuleGetBaseAddress($PID, "CrySystem.dll")
$CrySystemBaseAddr += 0x10000000
Do
$Memory_Cache = _MemoryRead($CrySystemBaseAddr, $MemOpen, "BYTE")
$CrySystemBaseAddr += 0x00000001
$i += 1
$Memory_Cache_Hex = hex($Memory_Cache,2)
$Memory_Map &= $Memory_Cache_Hex
$Memory_Cache = ""
Until $i = 429496729
EndFunc
$file = FileOpen("memorymap.map",10)
FileWrite($file,$Memory_Map)
FileClose($file)
$Memory_Entities = StringRegExp($Memory_Map, "886E02460000000000......000000000000....00000000000000000000803F010000002600000000000000......0AA186010001000000......4000CD..0064CD(.*?)00000000000000000000000000000000000", 3)
_ArrayDisplay($Memory_Entities)
nur naja das ist viel zu langsam gibts da eine schnellere Möglichkeit und sind meine StringRegExp Parameter richtig um
"88 6E 00 46 00 00 00 00 00 1C 6E 2B 00 00 00 00 98 15 39 43 00 00 00 00 00 00 00 00 00 00 80 3F 01 00 00 00 26 00 00 00 00 00 00 00 0A 47 1E 0A A1 86 01 00 01 00 00 00 70 3D EA 40 00 1C 38 00 64 7E"
[mit den .. meine ich zeichen die sich auch anders sein können und was hier nach kommt soll dann gefunden werden bis 00 00 kommt]
hoffe das hat man verstanden was ich hier will

wichtiger ist auchjedenfall mal den memoryscan schneller zu machen

ist es eventuell möglich einfach die .dll von cheatengine zu benutzen die er zum suchen benutzt?
cheat engine brauch für den suchvorgang nur 2-5 sekunden
Paraly is offline  
Old 11/19/2013, 03:30   #4
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
Quote:
Originally Posted by zocker5656 View Post
ok darauf kam ich auch schon vorher nur ich dachte es gäbe evtl eine bequeme art wie ne fertige UDF aber ok

bisher ist mein code
Code:
#requireadmin
#include <Pointer.au3>
#include <Array.au3>

global $Memory_Map
global $Memory_Cache
$PID = ProcessExists("Aion.bin")
$MemOpen = _MemoryOpen($PID)



_Get_Memory_Map()
Func _Get_Memory_Map()
$i = 0
$GameBaseAddr = _MemoryModuleGetBaseAddress($PID, "Game.dll")
$CrySystemBaseAddr = _MemoryModuleGetBaseAddress($PID, "CrySystem.dll")
$CrySystemBaseAddr += 0x10000000
Do
$Memory_Cache = _MemoryRead($CrySystemBaseAddr, $MemOpen, "BYTE")
$CrySystemBaseAddr += 0x00000001
$i += 1
$Memory_Cache_Hex = hex($Memory_Cache,2)
$Memory_Map &= $Memory_Cache_Hex
$Memory_Cache = ""
Until $i = 429496729
EndFunc
$file = FileOpen("memorymap.map",10)
FileWrite($file,$Memory_Map)
FileClose($file)
$Memory_Entities = StringRegExp($Memory_Map, "886E02460000000000......000000000000....00000000000000000000803F010000002600000000000000......0AA186010001000000......4000CD..0064CD(.*?)00000000000000000000000000000000000", 3)
_ArrayDisplay($Memory_Entities)
nur naja das ist viel zu langsam gibts da eine schnellere Möglichkeit und sind meine StringRegExp Parameter richtig um
"88 6E 00 46 00 00 00 00 00 1C 6E 2B 00 00 00 00 98 15 39 43 00 00 00 00 00 00 00 00 00 00 80 3F 01 00 00 00 26 00 00 00 00 00 00 00 0A 47 1E 0A A1 86 01 00 01 00 00 00 70 3D EA 40 00 1C 38 00 64 7E"
[mit den .. meine ich zeichen die sich auch anders sein können und was hier nach kommt soll dann gefunden werden bis 00 00 kommt]
hoffe das hat man verstanden was ich hier will

wichtiger ist auchjedenfall mal den memoryscan schneller zu machen

ist es eventuell möglich einfach die .dll von cheatengine zu benutzen die er zum suchen benutzt?
cheat engine brauch für den suchvorgang nur 2-5 sekunden
zunächst einmal sagte ich du sollst entweder das ganze modul oder die ganze datei einlesen und dann suchen...

was du da machst ist beinahe 430millionen mal eine dll aufzurufen (da du clerverer weise nicht einmal ein handle dazu speicherst, wird die dll auch tatsächlich 430millionen mal von deiner festplatte eingelesen)... vorher liest du sinnlose, nie wieder verwendete moduladressen ein und führst nicht nachvollziehbare rechenoperationen durch...

abgesehen davon ist dein regex befehl schlecht formatiert und neben bei bemerkt absolut sinnlos... eine patternsuche basiert darauf, das man möglichst exakte muster mit vorhandenem vergleicht...
regex pattern wie ".*?" sind absolut unnwillkürlich und matchen beliebige muster...
lolkop is offline  
Old 11/19/2013, 10:46   #5
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
Quote:
Originally Posted by zocker5656 View Post
ok darauf kam ich auch schon vorher nur ich dachte es gäbe evtl eine bequeme art wie ne fertige UDF aber ok

bisher ist mein code
Code:
#requireadmin
#include <Pointer.au3>
#include <Array.au3>

global $Memory_Map
global $Memory_Cache
$PID = ProcessExists("Aion.bin")
$MemOpen = _MemoryOpen($PID)



_Get_Memory_Map()
Func _Get_Memory_Map()
$i = 0
$GameBaseAddr = _MemoryModuleGetBaseAddress($PID, "Game.dll")
$CrySystemBaseAddr = _MemoryModuleGetBaseAddress($PID, "CrySystem.dll")
$CrySystemBaseAddr += 0x10000000
Do
$Memory_Cache = _MemoryRead($CrySystemBaseAddr, $MemOpen, "BYTE")
$CrySystemBaseAddr += 0x00000001
$i += 1
$Memory_Cache_Hex = hex($Memory_Cache,2)
$Memory_Map &= $Memory_Cache_Hex
$Memory_Cache = ""
Until $i = 429496729
EndFunc
$file = FileOpen("memorymap.map",10)
FileWrite($file,$Memory_Map)
FileClose($file)
$Memory_Entities = StringRegExp($Memory_Map, "886E02460000000000......000000000000....00000000000000000000803F010000002600000000000000......0AA186010001000000......4000CD..0064CD(.*?)00000000000000000000000000000000000", 3)
_ArrayDisplay($Memory_Entities)
nur naja das ist viel zu langsam gibts da eine schnellere Möglichkeit und sind meine StringRegExp Parameter richtig um
"88 6E 00 46 00 00 00 00 00 1C 6E 2B 00 00 00 00 98 15 39 43 00 00 00 00 00 00 00 00 00 00 80 3F 01 00 00 00 26 00 00 00 00 00 00 00 0A 47 1E 0A A1 86 01 00 01 00 00 00 70 3D EA 40 00 1C 38 00 64 7E"
[mit den .. meine ich zeichen die sich auch anders sein können und was hier nach kommt soll dann gefunden werden bis 00 00 kommt]
hoffe das hat man verstanden was ich hier will

wichtiger ist auchjedenfall mal den memoryscan schneller zu machen

ist es eventuell möglich einfach die .dll von cheatengine zu benutzen die er zum suchen benutzt?
cheat engine brauch für den suchvorgang nur 2-5 sekunden
Hey natürlich gibt es dafür UDFs entweder diejenige Funktion, die sich ScanPattern nennt und in irgendeiner anderen UDF ist oder meine Funktion SearchForBytes in der CCInject.au3 logischerweise werde ich meine Funktion empfehlen, aber google einfach einmal nach beiden funktionen die haben beide ihr Vor- und Nachteile.
Shadow992 is offline  
Thanks
1 User
Old 11/19/2013, 18:40   #6
 
elite*gold: 15
Join Date: Aug 2012
Posts: 3,041
Received Thanks: 6,397
Code:
#include <NomadMemory.au3>

$MemOpen = _MemoryOpen(ProcessExists("nfsw.exe"))
_AOBScan($MemOpen, "AOB as string ex: 0F 74 - Also it doesn't support unknown bytes")

Func _AOBScan($handle, $sig)
	$sig = StringRegExpReplace($sig, "[^0123456789ABCDEFabcdef.]", "")
	$start_addr = 0x00400000
	$end_Addr = 0x0FFFFFFF
	For $addr = $start_addr To $end_Addr Step 51200 - (StringLen($sig) / 2)
		StringRegExp(_MemoryRead($addr, $handle, "byte[51200]"), $sig, 1, 2)
		If Not @error Then
			Return StringFormat("0x%.8X", $addr + ((@extended - StringLen($sig) - 2) / 2))
		EndIf
	Next
	Return 0
EndFunc   ;==>_AOBScan
berkay2578 is offline  
Thanks
1 User
Old 11/19/2013, 21:14   #7
 
Paraly's Avatar
 
elite*gold: 27
Join Date: Sep 2009
Posts: 5,609
Received Thanks: 1,597
Danke euch beiden
funktioniert perfekt
Paraly is offline  
Old 11/19/2013, 22:32   #8
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
bietet ebenfalls eine entsprechende Funktion: _KDMemory_FindAddress()
KDeluxe is offline  
Reply


Similar Threads Similar Threads
[REQUEST] How to find array of byte code
10/14/2013 - Facebook - 1 Replies
I need help.I need to learn how to get my own codes(array of byte) Can anyone help me by video or steps plz :rolleyes:
Bild in Byte array converten, aber wie?
08/11/2012 - WarRock - 7 Replies
Tach :D Ich wollte ein Spritet Menu erstellen, bin auch soweit fertig, aber ich ahb 1 Problem... Ich weiß nicht wie man die Bilder in Bytes converten kann. Kann mir i-einer Helfen? Danke
[Frage] String zu Array of Byte
02/28/2012 - AutoIt - 1 Replies
- Hat sich geklärt. Das Thema kann geschlossen werden -
[VB|Memory] Array of Byte auslesen
11/01/2011 - .NET Languages - 0 Replies
....
C# process into byte array. HOW?
10/03/2011 - SRO Coding Corner - 7 Replies
What is the simplest method to load the whole process into a byte array



All times are GMT +2. The time now is 21:19.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.