Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 15:08

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

Advertisement



AutoIt Script mit nomadMemory geht nicht. Und HWID Frage

Discussion on AutoIt Script mit nomadMemory geht nicht. Und HWID Frage within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
Cr41s3''s Avatar
 
elite*gold: 504
The Black Market: 288/0/0
Join Date: Jul 2010
Posts: 7,771
Received Thanks: 510
AutoIt Script mit nomadMemory geht nicht. Und HWID Frage

Hallo Lute,

Ich habe eine Frage ich will für mich einen Hack erstellen,

aber leider verändert er die Values wohl nicht, da nix passiert.

Hier das Script:

Code:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <WindowsConstants.au3>
#include <NomadMemory.au3>
#include <EditConstants.au3>
#include <String.au3>
#include "GetHWID.au3"
#include <WinAPI.au3>
#include <Memory.au3>
#include <GDIPlus.au3>
#RequireAdmin
Global Const $RT_BITMAP = 2
Global Const $RT_RCDATA = 10


$hGui = GUICreate("Form1", 700, 349, 272, 167)
$Group1 = GUICtrlCreateGroup("Player", 8, 120, 145, 225)
$SPR = GUICtrlCreateCheckbox("SP Refill", 24, 176, 97, 17)
$SP = GUICtrlCreateCheckbox("Inf. SP", 24, 203, 97, 17)
$GOD = GUICtrlCreateCheckbox("Godmode", 24, 150, 97, 17)
$AMMO = GUICtrlCreateCheckbox("Inf. Ammo", 24, 130, 97, 17)
;$Pic = GUICtrlCreatePic("", 70, 0, 500, 500)
;_SetImagefromResource($Pic, "jcm", @ScriptDir & "\jcm.dll", 2)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group2 = GUICtrlCreateGroup("Group2", 160, 120, 169, 225)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group3 = GUICtrlCreateGroup("Group3", 336, 120, 153, 225)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group4 = GUICtrlCreateGroup("Credits", 496, 128, 113, 41)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#cs
Do
	$Msg = GUIGetMsg()
	If $Msg == $Pic Then ShellExecute("s4.de.alaplaya.net")
	Sleep(50)
Until $Msg == -3
#ce
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case -3
			Exit
			If ProcessExists("S4Client.exe") <> 0 Then
				_Werte_Aendern()
			EndIf
	EndSwitch
WEnd

Func _Werte_Aendern()
	$PID = ProcessExists("S4Client.exe")
	$Open = _MemoryOpen($PID)
	If GUICtrlRead($SPR) = 1 Then
		_MemoryWrite(0x********, $Open, "4", "Byte")
	EndIf
; Hier habe ich alles lieber rausgenomen.
	_MemoryClose($Open)
	Exit
EndFunc   ;==>_Werte_Aendern

Func _SetImageFromResource($CtrlID, $Resname, $Resfile = -1, $ResType = 10)
	;Diese Funktion basiert auf der UDF von  und Code von 
	Local Const $IMAGE_BITMAP = 0
	Local Const $STM_SETIMAGE = 0x0172
	Local $hmod, $hwnd, $InfoBlock, $ResSize, $Mem, $pMem, $dll, $dll2, $hData, $pData, $pStream, $ret, $hBitmap, $pBitmap
	If $Resfile = -1 Then
		$hmod = _WinAPI_GetModuleHandle("")
	Else
		$hmod = _WinAPI_LoadLibrary($Resfile)
	EndIf
	If $ResType = $RT_BITMAP Then
		$hBitmap = _WinAPI_LoadImage($hmod, $Resname, $IMAGE_BITMAP, 0, 0, 0)
		If @error Then Return SetError(1, 0, 0)
		$hwnd = GUICtrlGetHandle($CtrlID)
		If $hwnd = 0 Then Return SetError(2, 0, 0)
		DllCall("user32.dll", "hwnd", "SendMessage", "hwnd", $hwnd, "int", $STM_SETIMAGE, "int", $IMAGE_BITMAP, "int", $hBitmap)
		If @error Then Return SetError(3, 0, 0)
	Else
		$InfoBlock = DllCall("kernel32.dll", "int", "FindResourceA", "int", $hmod, "str", $Resname, "long", $ResType)
		If @error Then Return SetError(4, 0, 0)
		$InfoBlock = $InfoBlock[0]
		If $InfoBlock = 0 Then Return SetError(5, 0, 0)
		$ResSize = DllCall("kernel32.dll", "dword", "SizeofResource", "int", $hmod, "int", $InfoBlock)
		If @error Then Return SetError(6, 0, 0)
		$ResSize = $ResSize[0]
		If $ResSize = 0 Then Return SetError(7, 0, 0)
		$Mem = DllCall("kernel32.dll", "int", "LoadResource", "int", $hmod, "int", $InfoBlock)
		If @error Then Return SetError(8, 0, 0)
		$Mem = $Mem[0]
		If $Mem = 0 Then Return SetError(9, 0, 0)
		$pMem = DllCall("kernel32.dll", "int", "LockResource", "int", $Mem)
		If @error Then Return SetError(8, 0, 0)
		$pMem = $pMem[0]
		If $pMem = 0 Then Return SetError(10, 0, 0)
		If $Resfile <> -1 Then DllCall("Kernel32.dll", "int", "FreeLibrary", "str", $hmod)
		$hData = _MemGlobalAlloc($ResSize, 2)
		$pData = _MemGlobalLock($hData)
		_MemMoveMemory($pMem, $pData, $ResSize)
		_MemGlobalUnlock($hData)
		$ret = DllCall("ole32.dll", "int", "CreateStreamOnHGlobal", "int", $hData, "long", 1, "Int*", 0)
		$pStream = $ret[3]
		_GDIPlus_Startup()
		$pBitmap = DllCall($ghGDIPDll, "int", "GdipCreateBitmapFromStream", "ptr", $pStream, "int*", 0)
		$pBitmap = $pBitmap[2]
		$hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($pBitmap)
		$hwnd = GUICtrlGetHandle($CtrlID)
		If $hwnd = 0 Then Return SetError(11, 0, 0)
		DllCall("user32.dll", "hwnd", "SendMessage", "hwnd", $hwnd, "int", $STM_SETIMAGE, "int", $IMAGE_BITMAP, "int", $hBitmap)
		If @error Then Return SetError(12, 0, 0)
		_GDIPlus_BitmapDispose($pBitmap)
		_GDIPlus_Shutdown()
		$dll = DllStructCreate("Uint", $pStream)
		$dll2 = DllStructCreate("uInt", DllStructGetData($dll, 1) + 8)
		DllCall("", "UInt", DllStructGetData($dll2, 1), "UInt", $pStream)
		_WinAPI_DeleteObject($pStream)
		$pStream = 0
		_MemGlobalFree($hData)
	EndIf
EndFunc   ;==>_SetImageFromResource


Danke Slyzze
Cr41s3' is offline  
Old 01/14/2012, 16:28   #2
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
So etwas sieht man immer gerne. Hilfe wollen und dann die Möglichkeit ausschließen anderen zu helfen, indem relevantes gelöscht oder zensiert wird.

Fängt schon damit an, dass du zu viele unnötige Includes in deinem Script hast. Dein wirkliches Problem lässt sich aber einfach erklären: Um die Werte zu ändern muss die Funktion "_Werte_Aendern()" aufgerufen werden. Diese Funktion wird aber nie aufgerufen, da sich der einzige Funktionsaufruf unter dem "Exit" beim schließen des Fensters befindet. Das "Exit" am Ende der Funktion hat dort auch nicht wirklich etwas verloren.

Richtig wäre und besser wäre es z. B. so:
PHP Code:
While Sleep(50)
    
$nMsg GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit
    EndSwitch

    
$ProcessId ProcessExists("S4Client.exe")
    If 
$ProcessId 0 Then _Werte_Aendern($ProcessId)
WEnd

Func _Werte_Aendern
($ProcessId)
    
$Handle _MemoryOpen($ProcessId)
    If 
Not @error Then
        
If BitAND(GUICtrlRead($SPR), $GUI_CHECKEDThen
            
;_MemoryWrite()
        EndIf

        If 
BitAND(GUICtrlRead($SP), $GUI_CHECKEDThen
            
;_MemoryWrite()
        EndIf

        If 
BitAND(GUICtrlRead($GOD), $GUI_CHECKEDThen
            
;_MemoryWrite()
        EndIf

        If 
BitAND(GUICtrlRead($AMMO), $GUI_CHECKEDThen
            
;_MemoryWrite()
        EndIf

        
_MemoryClose($Handle)
    Else
        ;
Fehlermeldung
    
EndIf
EndFunc 
Allerdings habe ich starke Zweifel daran, dass das ohne Pointer mit _MemoryWrite() funktioniert. Falls du also die Frage hast, wieso es immer noch nicht funktioniert → such die Pointer. Und wenn es dann immer noch nicht funktioniert, würde ich es mal auf XTrap, HackShield oder was auch immer S4 verwendet schieben. Mehr kann ich dazu nicht sagen.



Zu guter Letzt deine Frage bezüglich des HWID Systems. Aber erst möchte ich etwas anmerken. Du schreibst, dass du den Hack für dich machen möchtest, sollte das der Wahrheit entsprechen, wäre das HWID System nur lästig und unnötig. Realistischer ist es, dass du dich an einem Hack probieren möchtest um diesen am Ende auch zu releasen.
Falls du dir die Frage stellst, warum ich es schreibe, obwohl du diese Frage bereits durch das editieren deines Beitrags gelöscht hast: Du musst nicht unnötigerweise einen neuen Thread öffnen.

Zu lösen ist es ganz einfach, benutze einfach meine UDF:


PHP Code:
#include <GetHWID.au3>

$Info _GetHWIDData()
If 
Not @error Then
    
If $Info[3] > 99 And $Info[4] > 49 Then ;If posts 99 And thanks 49 Then
        
;...
    EndIf
EndIf 
KDeluxe is offline  
Thanks
1 User
Old 01/14/2012, 16:33   #3
 
Cr41s3''s Avatar
 
elite*gold: 504
The Black Market: 288/0/0
Join Date: Jul 2010
Posts: 7,771
Received Thanks: 510
Danke,

sorry ich habe das rausgenommen weil sont jeder die Values hat und jemand hat mir die Anvertraut.
Ich versuchs mal.

Das mit dem HWID hat sich schon erledigt.

Also muss ich unter MemoryWrite die ADressen packen?
Ich checks gerade nicht ganz.

Mein Fehler hab's in Ruhe durchgelesen.
Teste alles gleichmal.

Wofür ist de Variable $GUI_CHECKED?
Cr41s3' is offline  
Old 01/14/2012, 16:44   #4
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Zum überprüfen, ob die Checkbox ausgewählt wurde.

In deinem Script hast du doch selbst _MemoryWrite() verwendet, was verstehst du daran nicht? Du hast die Informationen gelöscht oder zensiert, also habe ich einen Kommentar hinzugefügt, dass dort deine _MemoryWrite() Befehle hingehören.
KDeluxe is offline  
Old 01/14/2012, 16:49   #5
 
Cr41s3''s Avatar
 
elite*gold: 504
The Black Market: 288/0/0
Join Date: Jul 2010
Posts: 7,771
Received Thanks: 510
Ja,

ich weiß ich habe zu schnell gelsen

Noch eine Frage erstmal.
Wie kann ich das machen, dass man ein Thanks bei dem Release geben muss.
Also kein Thanks = Kein Programm ( falls ich es Release )
Cr41s3' is offline  
Old 01/14/2012, 17:01   #6
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Das ist zwar ganz einfach, aber ich werde dir dafür kein Script geben. Jeder der selbst etwas vernünftiges releasen kann, kann auch so eine einfache Überprüfung durchführen.

Die benötigten Funktionen kann ich dir sagen:
_GetHWIDData()
InetRead()
_StringBetween()
StringInStr()
KDeluxe is offline  
Old 01/14/2012, 17:12   #7
 
Cr41s3''s Avatar
 
elite*gold: 504
The Black Market: 288/0/0
Join Date: Jul 2010
Posts: 7,771
Received Thanks: 510
Hm,

ALso MemoryWrite habe ich die Adresse die ist richtig und will die Value Byte in 1 ändern das klappt aber nicht -.-"

Oke voon Strings habe ich noch keine AHnung aber egal.
Cr41s3' is offline  
Old 01/15/2012, 17:24   #8
 
Cr41s3''s Avatar
 
elite*gold: 504
The Black Market: 288/0/0
Join Date: Jul 2010
Posts: 7,771
Received Thanks: 510
BUMP.

Hilfe
Cr41s3' is offline  
Old 01/15/2012, 21:31   #9
 
Diablo_'s Avatar
 
elite*gold: 5
Join Date: Sep 2010
Posts: 9,927
Received Thanks: 4,387
1. Warum sind dir Thanks so wichtig? Einen Hack gegen Thanks releasen habe ich noch nie gesehen und halte es auch für schwachsinnig. Thanks bringen dich nicht weiter. Dann nimm lieber Geld.

2. Ich bin kein AutoIt Profi aber es gibt die HTTP Webrequest Methode, mit der man soetwas (Thanks) abfragen kann. In VisualBasic.Net würde ich das schnell hinkriegen, die Befehle dafür in AutoIt kenne ich nicht.

Sonst suche mal nach den Befehlen, die KillerDeluxe dir gegeben hat im Internet, vieleicht verstehst du es dann. Mit Strings kann man gut arbeiten und es ist eigentlich ziemlich leicht.

3. Dein Script kann garnicht so funktionieren, wie du es gerne hättest. KillerDeluxe hat es schon richtig geschrieben, du brauchst die Pointer (Bzw. Offsets) für S4League. Die Adresse die du da jetzt hast ist schon lange nicht mehr gültig. Die gilt nur für das eine Mal, wenn du S4 startest. Nach Neustart ist die Adresse für die HP Beispielsweise wieder anders.

Da kommen die Pointer und Offsets in's Spiel. Die zu suchen ist schon kniffliger.

Grüße
Diablo_ is offline  
Thanks
1 User
Old 01/16/2012, 14:56   #10
 
Cr41s3''s Avatar
 
elite*gold: 504
The Black Market: 288/0/0
Join Date: Jul 2010
Posts: 7,771
Received Thanks: 510
Nur ist das egal Ich will nur wissen wieso das mit memorywrite nicht geht Oo
Cr41s3' is offline  
Old 01/16/2012, 16:30   #11
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
wenn du über winapis den speicher modifizieren möchtest, musst du zunächst schauen, ob dein zielprozess eventuell geschützt wird. davon abgesehen sind für den zugriff auf den speicher anderer programme adminrechte notwendig.

wenn du dir ganz sicher bist, das der prozess nicht geschützt ist, und die notwendigen rechte vorliegen, und der wert wird dennoch nicht gesetzt, kannst du anfangen die rückgabewerte der winapis zu analysieren.
  • wurde openprocess mit den benötigten rechten ausgeführt?
  • was gibt openprocess aus?
  • handelt es sich wirklich um ein handle?
  • setzt ReadProcessMemory irgendwelche fehlerflags?
  • wenn ja welche, und warum?
lolkop is offline  
Old 01/16/2012, 17:26   #12
 
Diablo_'s Avatar
 
elite*gold: 5
Join Date: Sep 2010
Posts: 9,927
Received Thanks: 4,387
Quote:
Originally Posted by .Downkalypse View Post
Nur ist das egal Ich will nur wissen wieso das mit memorywrite nicht geht Oo
Hast du meinen Beitrag überhaupt vollständig gelesen? Es kann so nicht funktionieren. Die Adresse die du da hast funktioniert nicht.

Damit dein Trainer auch in Zukunft bis zum nächsten Patch funktioniert, brauchst du Pointer und Offsets.
Diablo_ is offline  
Old 01/18/2012, 18:31   #13
 
Cr41s3''s Avatar
 
elite*gold: 504
The Black Market: 288/0/0
Join Date: Jul 2010
Posts: 7,771
Received Thanks: 510
Echt.

Nur leider gehen sie

Es geht nun alles Danke an RealFreak.
#clsrq
Cr41s3' is offline  
Old 01/18/2012, 18:51   #14
 
Diablo_'s Avatar
 
elite*gold: 5
Join Date: Sep 2010
Posts: 9,927
Received Thanks: 4,387
Quote:
Originally Posted by .Downkalypse View Post
Echt.

Nur leider gehen sie

Es geht nun alles Danke an RealFreak.
#clsrq
Du hast die Sachen nicht selber zusammengesucht, hast einen Code von irgendwo kopiert und weißt dann nichtmal wie man das benutzt. Dann will ich dir erklären, dass es so nicht funktioniert und du zeigst mir eine Facepalm?

Entweder werden bei S4 die Adressen nicht geändert (was ich aber nicht glaube) oder es stand etwas Relevantes in deinem zensierten Code, was ich natürlich dann nicht lesen kann.

Adressen alleine reichen halt nicht.
Diablo_ is offline  
Thanks
4 Users
Reply


Similar Threads Similar Threads
Autoit Script als nicht Autoit erkennbar machen
02/22/2013 - AutoIt - 22 Replies
Hallo es haben wiele bestimmt schon gesehn das w0uter mal eine Anleitung gepostet hat wie man ein Autoit script so umbaut das es keins mehr ist. Die anleitung ist aber leider weg :( Dann habe ich mich selber rangesetz und was ausprobiert aber hat nichts gebracht. Dann habe ich geguckt bis wohin sein script geht als ... (kA wie man das nent halt das im hex editor ganz links diese 0x zahlen) und davor habe ich ein ha genauso eins gemacht und verglichen. Am anfang habe ich bemerkt es fengt...
Kann mir jemand ein autoit script schreiben oder sagen wie das geht?
05/13/2011 - Rift - 4 Replies
Huhu ich hätte gerne ein autoit script für rift und zwar soll er wenn ich rift minimiert habe, die ganze zeit die Taste "W" gedrückt halten und alle 2sekunden "Leertaste" drücken, dazu dann noch alle 3 sekunden "tab" und alle 1 sekunden eine random taste von 1-9 sowas geht doch eigl raltiv einfach oder?, soll dazu dienen das man nicht ausm bg fliegt wenn man mal afk muss, das geht in rift nämlich echt schnell



All times are GMT +1. The time now is 15:08.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

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