Du könntest den Boyer–Moore Algorithmus implementieren.
Dieser eignet sich meiner Meinung nach gut und hat im schlechtesten Falle eine Laufzeit von O(PatternLength * MemorySize)
Alternativ könntest du den Maximum Weight Matching (MWM) Algorithmus verwenden. Dieser ist schwieriger umzusetzen, dafür aber - bei geschickter implementierung - schneller.
kannst du das genauer definieren? dort oben sind zwei ansätze genannt.
Ich möchte eine Addresse im RAM finden eines bestimmtem Prozesses.
Da viele Speicher-Addressen nicht Dynamisch sind gibt es die Möglichkeit an die Addressen zu kommen mit der entsprechendem AOB (Array of Byte).
Was ich nun möchte..
AOBScan / PatternScan machen um an die Addresse zu kommen die ich brauche um sie danach den wert der Addresse zu ändern.
Bsp.
Code:
AOB = D9 45 C4 8B 4D F4 64 89 0D
Danach wird in einem Prozess gesucht und er findet dort zb diese Addresse :
-> 0x0DBEF0 (Da kommt natürlich was anderes raus)
Diese Addresse hat jetzt zb den Wert 20
Jetzt ändere ich den Wert von 20 auf 30.
Der Wert der Addresse kann ich selber Problemlos ändern, nur ich muss halt erstmal an diese Addressen kommen, damit ich dies tun kann. Darum brauch ich hilfe bei einem AOBScan / Pattern Scan / Pattern Finder /.. whatever
Um das ganze dann effektiv und nicht byte für byte zu durchsuchen, nutzt du eine implementieren des Boyer-Moore Algorithmus.
Wenn ich meine Prüfung am Dienstag hinter mir habe, bastel ich mal ne Library. Werde Boyer-Moore wahrscheinlich mit den Heuristiken BAD_CHAR und GOOD_SUFFIX implementieren, sofern mir keine effizientere Methode einfällt.
Um das ganze dann effektiv und nicht byte für byte zu durchsuchen, nutzt du eine implementieren des Boyer-Moore Algorithmus.
Wenn ich meine Prüfung am Dienstag hinter mir habe, bastel ich mal ne Library. Werde Boyer-Moore wahrscheinlich mit den Heuristiken BAD_CHAR und GOOD_SUFFIX implementieren, sofern mir keine effizientere Methode einfällt.
Dieses "Grundgerüst" steht bereits schon.
Ich brauche nurnoch den AOB Scann.
Schreibe zunächst eine Funktion, die eine lineare Suche* implementiert und poste deinen Code. Wenn du das hast, erweitern wir hier gemeinsam deine Funktion Schritt für Schritt.
Schreibe zunächst eine Funktion, die eine lineare Suche* implementiert und poste deinen Code. Wenn du das hast, erweitern wir hier gemeinsam deine Funktion Schritt für Schritt.
* Suche Byte für Byte ab, ohne Algorithmus.
Ok, danke erstmal im vorraus. Was ich noch anmerken möchte, ich schreibe das ganze in Visual Basic. Werde es nun so versuchen wie du es gesagt hast und erstmal dein Grundgerüst für den Scann aufbauen.
Das ganze sieht bis jetzt so aussehen (ohne AOB Scan).
Code:
Try
Dim P22 As Process = Process.GetProcessesByName(Defines.GameEXE)(0)
Dim ProcessHandle As IntPtr = OpenProcess(&H1F0FFF, False, P22.Id)
Dim cBase As Long = P22.MainModule.BaseAddress
SuspendProcess(p(0))
System.Threading.Thread.Sleep(1000)
WriteLong(Defines.GameEXE, cBase + &HADDY1, WERT1)
WriteLong(Defines.GameEXE, cBase + &HADDY2, WERT2)
WriteLong(Defines.GameEXE, cBase + &HADDY3, WERT3)
System.Threading.Thread.Sleep(1000)
ResumeProcess(p(0))
MsgBox("Success Bypassed..")
Me.Close()
Catch ex E...
MsgBox("Failed..")
Me.Close()
End Try
[Tutorial] AutoIt Pattern Scan 08/21/2022 - Coding Tutorials - 4 Replies Hallo,
dies ist mein kleines Pattern Tutorial.
groß was zu erzählen gibt es nicht, ist alles im video.
alles was ihr braucht findet ihr hier im threat
VideoTutorial
MemoryScan by Luzifer42 Extended by me
Func _MemoryScanEx($ah_Handle, $pattern, $mask , $after = False, $iv_addrStart = 0x00400000, $iv_addrEnd = 0x00FFFFFF, $step = 51200)
If Not IsArray($ah_Handle) Then
Autoit Pattern Scan CSGO 01/20/2016 - AutoIt - 4 Replies Hey ich habe versucht mit der _MemoryScanEx funktion einen Pattern Scan in meinen CSGO Hack einzubauen.
CSGO cheat(autoit): https://www.youtube.com/watch?v=nGa04ZEkGhc
(steht nicht mehr zum verkauf)
ich schaffe es nich den pattern scan in CSGO einzusetzen..:
Das ist jetzt das pattern für das healthoffset
Global $Open = _MemoryOpen(ProcessExists("csgo.exe"))
Global $baseaddr = _MemoryModuleGetBaseAddress(ProcessExists("cs go.exe"), "client.dll")