|
You last visited: Today at 09:22
Advertisement
[Tutorial] Hackshields mit AutoIt bypassen
Discussion on [Tutorial] Hackshields mit AutoIt bypassen within the AutoIt forum part of the Coders Den category.
05/31/2012, 16:43
|
#1
|
elite*gold: 26
Join Date: Jan 2012
Posts: 3,474
Received Thanks: 18,844
|
[Tutorial] Hackshields mit AutoIt bypassen
Hallo,
ich hab mal wieder etwas langeweile und desswegen möchte ich wieder ein bisschen Wissen mit euch teilen.
Sicherlich kennt ihr es, ihr möchtet einen Trainer für irgend ein beliebiges Spiel machen und habt Probleme mit der detection.
Natürlich könnte man sich in C++ eine Dll machen und verschiedene Funktionen hooken doch es gibt viele die alles in allem machen wollen. Wer meint dass man lieber C++ nutzen sollte der sollte nicht weiterlesen ;<
Verschiedene Funktionen ermöglichen das detecten von Programmen. Darunter zählen zB. folgende Funktionen:
- EnumProcesses
- K32EnumProcesses
- EnumWindows
Diese 3 Funktionen werden häufig genutzt. Wer wissen möchte was diese Funktionen genau können der sollte am besten auf msdn.microsoft.com nachschauen. Doch kommen wir nun weiter zum eigentlichen Teil. Angenommen, unser Script sieht so aus:
Code:
#include <NomadMemory.au3>
$hGUI = GUICreate("Trainer", 176, 37, -1, -1)
$hGodmode = GUICtrlCreateCheckbox("Godmode", 4, 4, 69, 17)
$hStart = GUICtrlCreateButton("Start", 92, 4, 75, 25)
GUISetState(@SW_SHOW, $hGUI)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
Exit
Case $hStart
_Start()
EndSwitch
WEnd
Func _Start()
Local $ProcessID, $Delay, $Memoryhandle, $Text_On, $Text_Off, $Length_On, $Length_Off
$Delay = Random(400, 600, 1)
$Text_On = "On"
$Length_On = "char[" & StringLen($Text_On) + 1 & "]"
$Text_Off = "Off"
$Length_Off = "char[" & StringLen($Text_Off) + 1 & "]"
$ProcessID = ProcessWait("S4Client.exe")
Sleep($Delay)
$Memoryhandle = _MemoryOpen($ProcessID)
If GUICtrlRead($hGodmode) = 1 Then
_MemoryWrite(0x00000000, $Memoryhandle, $Text_On, $Length_On)
Else
_MemoryWrite(0x00000000, $Memoryhandle, $Text_Off, $Length_Off)
EndIf
_MemoryClose($Memoryhandle)
EndFunc ;==>_Start
Wie man erkennen kann, soll dieser Trainer prüfen ob wir die Funktion Godmode an oder aus haben wollen und demnach entscheidet er dann auch.
Da dieses ganze Schema hier ingame basierend ist, müssen wir etwas gegen unsere "Hackdetection" tun. Eine Möglichkeit wäre, unser AutoIt Script ohne die gewöhnliche AutoIt Signatur zu compilen, doch in diesem Tutorial möchte ich auf die 2. Möglichkeit eingehen.
Jedes Programm nutzt Funktionen, Funktionen, die wir manipulieren können. Doch in unserem Fall wollen wir die Funktionen so manipulieren dass das Anti Hackprogramm nichts mehr mit den gegebenen Resultaten anfangen kann.
In dem folgenden Scriptbeispiel zeige ich euch wie ihr die Funktion EnumProcesses komplett entschärfen könnt:
Code:
#include <NomadMemory.au3>
#include <WinAPI.au3>
#include <String.au3>
Global $Memoryhandle, $EnumProcesses
$ByteLen = 19
$Nop = "0x" & _StringRepeat("90", $ByteLen)
$ProcessID = ProcessWait("S4Client.exe")
$Memoryhandle = _MemoryOpen($ProcessID)
Do
Sleep(10)
Until _Check() = 1
_MemoryWrite($EnumProcesses, $Memoryhandle, $Nop, "byte[" & $ByteLen & "]")
_MemoryClose($Memoryhandle)
Func _Check()
$EnumProcesses = _GetProcessAddress(_WinAPI_GetModuleHandle("psapi.dll"), "EnumProcesses")
If _memoryread($EnumProcesses, $Memoryhandle, "byte[2]") = "0x8BFF" Then
Return 1
Else
Return 0
EndIf
EndFunc
Func _GetProcessAddress($hModule, $Function)
$call = DllCall("Kernel32.dll", "ptr", "GetProcAddress", "ptr", $hmodule, "str", $Function)
Return $call[0]
EndFunc
Jetzt werdet ihr euch fragen wieso die Bytelänge 19 ist. Hier seht ihr einen Screen von der Funktion:
Wer richtig zählen kann wird auf 17 nutzvolle Bytes kommen.
Doch achtung. Bei manchen Hackshields werden die ersten 2 Bytes der Funktion gecheckt. Was nun? Da die ersten 2 Bytes zu einem mov gehören, der nur als Funktionsanfang dient, können wir diesen auch in Ruhe lassen. Wie? Indem wir $EnumProcesses mit 0x2 addieren.
So, dass soll's zu meinem Tutorial gewesen sein. Fall's ihr Fragen habt bezüglich anderer Funktionen, zum Script oder zu irgend einem anderen Thema dann fragt mich ruhig in diesen Thread oder schreibt mir eine PM
Zum Schluss möchte ich mich für eure erwiesene Aufmerksamkeit bedanken und ich hoffe doch dass es euch etwas weiterbringt.
Einen schönen Tag noch, euer K1ramoX
|
|
|
05/31/2012, 19:46
|
#2
|
elite*gold: 26
Join Date: Jan 2012
Posts: 3,474
Received Thanks: 18,844
|
Quote:
Originally Posted by Cuben
Something interesting, nice.
But i don't think it will work with all hackshields, like GameGuard etc ...
|
Why not? I dont think that they check all bytes. And you musn't nop the function like I do, you can change the registers or something else
|
|
|
05/31/2012, 20:15
|
#3
|
elite*gold: 0
Join Date: Feb 2011
Posts: 10
Received Thanks: 5
|
Looks great but i don't understand could you translate it in English ?
|
|
|
05/31/2012, 20:27
|
#4
|
elite*gold: 124
Join Date: Dec 2009
Posts: 2,114
Received Thanks: 3,142
|
Diese Funktionen erkennen Prozesse bzw. Fenster aber nur anhand ihres Namen bzw. Classname etc. (vermutlich Autoit v3 Gui), richtig?
D.h. alles was verhaltensbasiert erkannt wird, also wenn mein Trainer erst bei Zugriff auf bestimmte Memorybereiche detected wird o.ä., kann so nicht umgangen werden?
|
|
|
05/31/2012, 20:35
|
#5
|
elite*gold: 26
Join Date: Jan 2012
Posts: 3,474
Received Thanks: 18,844
|
Quote:
Originally Posted by -STORM-
Diese Funktionen erkennen Prozesse bzw. Fenster aber nur anhand ihres Namen bzw. Classname etc. (vermutlich Autoit v3 Gui), richtig?
D.h. alles was verhaltensbasiert erkannt wird, also wenn mein Trainer erst bei Zugriff auf bestimmte Memorybereiche detected wird o.ä., kann so nicht umgangen werden?
|
Damit kannste AutoIt detections umgehen. Bei XTrap Games funktioniert es ;D
|
|
|
06/03/2012, 01:12
|
#6
|
elite*gold: 24
Join Date: Feb 2012
Posts: 1,173
Received Thanks: 3,113
|
yeah i liked doing it in CE long time ago
|
|
|
01/16/2013, 19:19
|
#7
|
elite*gold: 0
Join Date: Apr 2011
Posts: 30
Received Thanks: 3
|
If i try it doing for s4 league will it work ?????
I mean all i have to do is copy and paste your code in autoit right ?
|
|
|
01/16/2013, 19:30
|
#8
|
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,403
|
Quote:
Originally Posted by karuka
If i try it doing for s4 league will it work ?????
|
[26.12.2012 21:22:27]  : xtrap reversen ist nicht schwer [26.12.2012 21:22:31]  : kann jeder mit bissl übung
My Translation: - reversing xtrap isn't difficult
- everyone can do it with a little practice
Quote:
Originally Posted by karuka
I mean all i have to do is copy and paste your code in autoit right ?
|
Well you can try it but please don't cry later.
Kind Regards
|
|
|
01/17/2013, 23:50
|
#9
|
elite*gold: 0
Join Date: Jan 2013
Posts: 481
Received Thanks: 296
|
hehehe lölchen wie geil ist das den
|
|
|
04/23/2013, 16:02
|
#10
|
elite*gold: 0
Join Date: Jan 2013
Posts: 426
Received Thanks: 129
|
brauche hilfe! bei mir kommt immer fehler
D:\Programme\AutoIt3\Include\SecurityConstants.au3 (67,39) : ERROR: $TOKEN_QUERY previously declared as a 'Const'.
Global Const $TOKEN_QUERY = 0x00000008
und
D:\Programme\AutoIt3\Include\SecurityConstants.au3 (69,51) : ERROR: $TOKEN_ADJUST_PRIVILEGES previously declared as a 'Const'.
Global Const $TOKEN_ADJUST_PRIVILEGES = 0x00000020
€dit: in der NomadMemory.au3 waren diese Variablen schon deklariert.
|
|
|
04/28/2013, 01:33
|
#11
|
elite*gold: LOCKED
Join Date: Sep 2012
Posts: 1,599
Received Thanks: 255
|
müsste das enumprocesses nicht irgendwie deklariert werden ? und was meinste mit dazu addieren ? , bissl unverständlich das script , ansonsten nice tutorial
|
|
|
05/16/2013, 21:51
|
#12
|
elite*gold: 288
Join Date: Jan 2013
Posts: 415
Received Thanks: 244
|
Ich kappier nicht ganz was man jetzt verändern muss um den bypass zum laufen zu bringen ... (bei mir wird der immer detectet)
|
|
|
05/22/2013, 10:02
|
#13
|
elite*gold: 0
Join Date: May 2013
Posts: 2
Received Thanks: 0
|
can you make english?
|
|
|
05/23/2013, 16:29
|
#14
|
elite*gold: 26
Join Date: Jan 2012
Posts: 3,474
Received Thanks: 18,844
|
Quote:
Originally Posted by *-Elsword_Hacker-*
müsste das enumprocesses nicht irgendwie deklariert werden ? und was meinste mit dazu addieren ? , bissl unverständlich das script , ansonsten nice tutorial
|
enumprocesses ist eine api die in psapi.dll definiert ist. selber brauch man das nicht definieren da man sich einfach die adresse hole kann die dann auf diese funktion zeigt durch getprocadress.
mit dazu addieren meine ich dass du an der adresse die auf enumprocesses zeigt ein paar bytes dazu rechnest um memoryscanner zu umgehen die oftmals nur die ersten 2 bytes einer funktion scannen (muss nicht immer so sein, manche funktionen werden auch komplett geprüft). enumprocesses + 7 wär eine gute stelle da dort der jmp zu K32EnumProcesses ist.
Quote:
Originally Posted by Punkter124
Ich kappier nicht ganz was man jetzt verändern muss um den bypass zum laufen zu bringen ... (bei mir wird der immer detectet)
|
wäre damit jetzt auch beantwortet.
Quote:
Originally Posted by LitleFrog
can you make english?
|
no im lazy D;
|
|
|
05/24/2013, 20:11
|
#15
|
elite*gold: 0
Join Date: Apr 2010
Posts: 71
Received Thanks: 18
|
So the number 90, is every asm nop function, and all you have to do is change the number 90 in the script, to the one that has nop?
like if the nop's were on 96, I had to change it to 96 on the script?
|
|
|
Similar Threads
|
AutoIt Script gegen Xtrap auf lc ger bypassen?
02/23/2011 - Last Chaos - 8 Replies
Heyho,
Ich hab mir in autoit n kleines script geschrieben, auf win 7 64 bit klicke ich einfach im .net trainer antiautoit bypass an und schon kann ichs verwenden ohne dass xtrap meckert.
so jetzt zu meiner frage:
wenn ich es auf 32 bit system verwenden willm da hab ich keinen trainer mit nem bypass.
also wie kann ich den bypass selbst legen das ich es ohne trainer auf 32 und 64 bit nutzen kann? :D
also wenn ich jem. mein script weiter gebe das er es ohne iwelche zusätzlichen progs...
|
All times are GMT +1. The time now is 09:23.
|
|