[Beta 0.4] MemoryEngine - Code Tool

03/24/2010 16:02 xWaffeleisen#16
Brauch ich zwar nicht, aber nice gemacht :D
03/24/2010 16:11 RoleS#17
Ich würd mich freuen, wenn du endlich Visual Basic einfügst :).
03/24/2010 19:10 HardCore.1337#18
Hab da so meine Probleme weil ich noch nie mit VB gearbeitet hab und deswegen den Code nicht kenne
04/17/2010 09:53 Banana.Crafts#19
Wirklich nice;D
04/29/2010 10:36 Gugujiji12#20
HAMMA NICE !!! Wow nach so etwas hab ich gesucht , danke!!!
04/29/2010 19:59 HardCore.1337#21
Please Push the Thanks Button ;)
05/03/2010 22:27 roflcopterftw#22
Eine Frage was soll das Programm machen ?

Was für ein Code soll da erzeugt werden ?

Du solltest vielleicht npch dazu schreiben was das Programm machen soll also mir sagt das jetzt mal so gar nix^^


Ok ich hätte es erst runterladen sollen jetzt macht es sinn ^^

Nicht schlecht das Programm aber meine Quelltexte schreibe ich doch noch selber^^
Wobei da sind ja noch viele ander Interessante Funktionen drin gute arbeit =)
05/31/2010 13:38 Fox-#23
NomadMemory.au3 wo bekomm ich die her?
Hat wer einen Download Link?

Mein Virenscanner dreht auch Total ab sobald ich das Ding hier aus dem Thread lade oder auf Platte hab xD

Die Brauch man ja auch für WoW glaub wenn man einen Bot machen will, hatte mal eine gefunden is die so richtig sonst währe ned wenn mir jemand einen link geben könnte.

Code:
#include-once
#region _Memory
;==================================================================================
; AutoIt Version:	3.1.127 (beta)
; Language:			English
; Platform:			All Windows
; Author:			Nomad
; Requirements:		These functions will only work with beta.
;==================================================================================
; Credits:	wOuter - These functions are based on his original _Mem() functions.
;			But they are easier to comprehend and more reliable.  These
;			functions are in no way a direct copy of his functions.  His
;			functions only provided a foundation from which these evolved.
;==================================================================================
;
; Functions:
;
;==================================================================================
; Function:			_MemoryOpen($iv_Pid[, $iv_DesiredAccess[, $iv_InheritHandle]])
; Description:		Opens a process and enables all possible access rights to the
;					process.  The Process ID of the process is used to specify which
;					process to open.  You must call this function before calling
;					_MemoryClose(), _MemoryRead(), or _MemoryWrite().
; Parameter(s):		$iv_Pid - The Process ID of the program you want to open.
;					$iv_DesiredAccess - (optional) Set to 0x1F0FFF by default, which
;										enables all possible access rights to the
;										process specified by the Process ID.
;					$iv_InheritHandle - (optional) If this value is TRUE, all processes
;										created by this process will inherit the access
;										handle.  Set to 1 (TRUE) by default.  Set to 0
;										if you want it FALSE.
; Requirement(s):	None.
; Return Value(s): 	On Success - Returns an array containing the Dll handle and an
;								 open handle to the specified process.
;					On Failure - Returns 0
;					@Error - 0 = No error.
;							 1 = Invalid $iv_Pid.
;							 2 = Failed to open Kernel32.dll.
;							 3 = Failed to open the specified process.
; Author(s):		Nomad
; Note(s):
;==================================================================================
Func _MemoryOpen($iv_Pid, $iv_DesiredAccess = 0x1F0FFF, $iv_InheritHandle = 1)
	
	If Not ProcessExists($iv_Pid) Then
		SetError(1)
        Return 0
	EndIf
	
	Local $ah_Handle[2] = [DllOpen('kernel32.dll')]
	
	If @Error Then
        SetError(2)
        Return 0
    EndIf
	
	Local $av_OpenProcess = DllCall($ah_Handle[0], 'int', 'OpenProcess', 'int', $iv_DesiredAccess, 'int', $iv_InheritHandle, 'int', $iv_Pid)
	
	If @Error Then
        DllClose($ah_Handle[0])
        SetError(3)
        Return 0
    EndIf
	
	$ah_Handle[1] = $av_OpenProcess[0]
	
	Return $ah_Handle
	
EndFunc

;==================================================================================
; Function:			_MemoryRead($iv_Address, $ah_Handle[, $sv_Type])
; Description:		Reads the value located in the memory address specified.
; Parameter(s):		$iv_Address - The memory address you want to read from. It must
;								  be in hex format (0x00000000).
;					$ah_Handle - An array containing the Dll handle and the handle
;								 of the open process as returned by _MemoryOpen().
;					$sv_Type - (optional) The "Type" of value you intend to read.
;								This is set to 'dword'(32bit(4byte) signed integer)
;								by default.  See the help file for DllStructCreate
;								for all types.  An example: If you want to read a
;								word that is 15 characters in length, you would use
;								'char[16]' since a 'char' is 8 bits (1 byte) in size.
; Return Value(s):	On Success - Returns the value located at the specified address.
;					On Failure - Returns 0
;					@Error - 0 = No error.
;							 1 = Invalid $ah_Handle.
;							 2 = $sv_Type was not a string.
;							 3 = $sv_Type is an unknown data type.
;							 4 = Failed to allocate the memory needed for the DllStructure.
;							 5 = Error allocating memory for $sv_Type.
;							 6 = Failed to read from the specified process.
; Author(s):		Nomad
; Note(s):			Values returned are in Decimal format, unless specified as a
;					'char' type, then they are returned in ASCII format.  Also note
;					that size ('char[size]') for all 'char' types should be 1
;					greater than the actual size.
;==================================================================================
Func _MemoryRead($iv_Address, $ah_Handle, $sv_Type = 'dword')
	
	If Not IsArray($ah_Handle) Then
		SetError(1)
        Return 0
	EndIf
	
	Local $v_Buffer = DllStructCreate($sv_Type)
	
	If @Error Then
		SetError(@Error + 1)
		Return 0
	EndIf
	
	DllCall($ah_Handle[0], 'int', 'ReadProcessMemory', 'int', $ah_Handle[1], 'int', $iv_Address, 'ptr', DllStructGetPtr($v_Buffer), 'int', DllStructGetSize($v_Buffer), 'int', '')
	
	If Not @Error Then
		Local $v_Value = DllStructGetData($v_Buffer, 1)
		Return $v_Value
	Else
		SetError(6)
        Return 0
	EndIf
	
EndFunc

;==================================================================================
; Function:			_MemoryWrite($iv_Address, $ah_Handle, $v_Data[, $sv_Type])
; Description:		Writes data to the specified memory address.
; Parameter(s):		$iv_Address - The memory address which you want to write to.
;								  It must be in hex format (0x00000000).
;					$ah_Handle - An array containing the Dll handle and the handle
;								 of the open process as returned by _MemoryOpen().
;					$v_Data - The data to be written.
;					$sv_Type - (optional) The "Type" of value you intend to write.
;								This is set to 'dword'(32bit(4byte) signed integer)
;								by default.  See the help file for DllStructCreate
;								for all types.  An example: If you want to write a
;								word that is 15 characters in length, you would use
;								'char[16]' since a 'char' is 8 bits (1 byte) in size.
; Return Value(s):	On Success - Returns 1
;					On Failure - Returns 0
;					@Error - 0 = No error.
;							 1 = Invalid $ah_Handle.
;							 2 = $sv_Type was not a string.
;							 3 = $sv_Type is an unknown data type.
;							 4 = Failed to allocate the memory needed for the DllStructure.
;							 5 = Error allocating memory for $sv_Type.
;							 6 = $v_Data is not in the proper format to be used with the
;								 "Type" selected for $sv_Type, or it is out of range.
;							 7 = Failed to write to the specified process.
; Author(s):		Nomad
; Note(s):			Values sent must be in Decimal format, unless specified as a
;					'char' type, then they must be in ASCII format.  Also note
;					that size ('char[size]') for all 'char' types should be 1
;					greater than the actual size.
;==================================================================================
Func _MemoryWrite($iv_Address, $ah_Handle, $v_Data, $sv_Type = 'dword')
	
	If Not IsArray($ah_Handle) Then
		SetError(1)
        Return 0
	EndIf
	
	Local $v_Buffer = DllStructCreate($sv_Type)
	
	If @Error Then
		SetError(@Error + 1)
		Return 0
	Else
		DllStructSetData($v_Buffer, 1, $v_Data)
		If @Error Then
			SetError(6)
			Return 0
		EndIf
	EndIf
	
	DllCall($ah_Handle[0], 'int', 'WriteProcessMemory', 'int', $ah_Handle[1], 'int', $iv_Address, 'ptr', DllStructGetPtr($v_Buffer), 'int', DllStructGetSize($v_Buffer), 'int', '')
	
	If Not @Error Then
		Return 1
	Else
		SetError(7)
        Return 0
	EndIf
	
EndFunc

;==================================================================================
; Function:			_MemoryClose($ah_Handle)
; Description:		Closes the process handle opened by using _MemoryOpen().
; Parameter(s):		$ah_Handle - An array containing the Dll handle and the handle
;								 of the open process as returned by _MemoryOpen().
; Return Value(s):	On Success - Returns 1
;					On Failure - Returns 0
;					@Error - 0 = No error.
;							 1 = Invalid $ah_Handle.
;							 2 = Unable to close the process handle.
; Author(s):		Nomad
; Note(s):
;==================================================================================
Func _MemoryClose($ah_Handle)
	
	If Not IsArray($ah_Handle) Then
		SetError(1)
        Return 0
	EndIf
	
	DllCall($ah_Handle[0], 'int', 'CloseHandle', 'int', $ah_Handle[1])
	If Not @Error Then
		DllClose($ah_Handle[0])
		Return 1
	Else
		DllClose($ah_Handle[0])
		SetError(2)
        Return 0
	EndIf
	
EndFunc

;==================================================================================
; Function:			SetPrivilege( $privilege, $bEnable )
; Description:		Enables (or disables) the $privilege on the current process
;                   (Probably) requires administrator privileges to run
;
; Author(s):		Larry (from autoitscript.com's Forum)
; Notes(s):
; http://www.autoitscript.com/forum/index.php?s=&showtopic=31248&view=findpost&p=223999
;==================================================================================

Func SetPrivilege( $privilege, $bEnable )
    Const $TOKEN_ADJUST_PRIVILEGES = 0x0020
    Const $TOKEN_QUERY = 0x0008
    Const $SE_PRIVILEGE_ENABLED = 0x0002
    Local $hToken, $SP_auxret, $SP_ret, $hCurrProcess, $nTokens, $nTokenIndex, $priv
    $nTokens = 1
    $LUID = DLLStructCreate("dword;int")
    If IsArray($privilege) Then    $nTokens = UBound($privilege)
    $TOKEN_PRIVILEGES = DLLStructCreate("dword;dword[" & (3 * $nTokens) & "]")
    $NEWTOKEN_PRIVILEGES = DLLStructCreate("dword;dword[" & (3 * $nTokens) & "]")
    $hCurrProcess = DLLCall("kernel32.dll","hwnd","GetCurrentProcess")
    $SP_auxret = DLLCall("advapi32.dll","int","OpenProcessToken","hwnd",$hCurrProcess[0],   _
            "int",BitOR($TOKEN_ADJUST_PRIVILEGES,$TOKEN_QUERY),"int_ptr",0)
    If $SP_auxret[0] Then
        $hToken = $SP_auxret[3]
        DLLStructSetData($TOKEN_PRIVILEGES,1,1)
        $nTokenIndex = 1
        While $nTokenIndex <= $nTokens
            If IsArray($privilege) Then
                $priv = $privilege[$nTokenIndex-1]
            Else
                $priv = $privilege
            EndIf
            $ret = DLLCall("advapi32.dll","int","LookupPrivilegeValue","str","","str",$priv,   _
                    "ptr",DLLStructGetPtr($LUID))
            If $ret[0] Then
                If $bEnable Then
                    DLLStructSetData($TOKEN_PRIVILEGES,2,$SE_PRIVILEGE_ENABLED,(3 * $nTokenIndex))
                Else
                    DLLStructSetData($TOKEN_PRIVILEGES,2,0,(3 * $nTokenIndex))
                EndIf
                DLLStructSetData($TOKEN_PRIVILEGES,2,DllStructGetData($LUID,1),(3 * ($nTokenIndex-1)) + 1)
                DLLStructSetData($TOKEN_PRIVILEGES,2,DllStructGetData($LUID,2),(3 * ($nTokenIndex-1)) + 2)
                DLLStructSetData($LUID,1,0)
                DLLStructSetData($LUID,2,0)
            EndIf
            $nTokenIndex += 1
        WEnd
        $ret = DLLCall("advapi32.dll","int","AdjustTokenPrivileges","hwnd",$hToken,"int",0,   _
                "ptr",DllStructGetPtr($TOKEN_PRIVILEGES),"int",DllStructGetSize($NEWTOKEN_PRIVILEGES),   _
                "ptr",DllStructGetPtr($NEWTOKEN_PRIVILEGES),"int_ptr",0)
        $f = DLLCall("kernel32.dll","int","GetLastError")
    EndIf
    $NEWTOKEN_PRIVILEGES=0
    $TOKEN_PRIVILEGES=0
    $LUID=0
    If $SP_auxret[0] = 0 Then Return 0
    $SP_auxret = DLLCall("kernel32.dll","int","CloseHandle","hwnd",$hToken)
    If Not $ret[0] And Not $SP_auxret[0] Then Return 0
    return $ret[0]
EndFunc   ;==>SetPrivilege

#endregion
06/09/2010 18:03 Praim#24
Cool hat mir geholfen :)
#thanks
06/12/2010 17:05 SensaCool#25
:D can you translates it into Eng?
06/12/2010 17:20 HardCore.1337#26
Sure, but my english is not the best :D
06/15/2010 20:16 Silversurfer601#27
Also ich fände es toll wenn man irgendwie programme in den code wieder umwandeln könnte also sagen wir wir haben da ein kp.. programm halt das in ähm.. c++ geschriben ist ja das man das fertige programm wieder in den c++(autoit, c,vb usw) code wieder umgewandelt wird.. kent ihr so eins .

Ps : thx für das tolle programm und deine arbeit :) habe dich 3-4 gethankst
06/16/2010 09:02 wurstbrot123#28
@Silversurfer601
Auch wenn ich ein "brauchbares" kennen würde, würde ich es sicherlich
nicht posten :] Wenn du den Code von etwas haben möchtest,
lern die Sprache und schreib es selber ;S
Zum tool:
Da freuen sich die faulen Säcke :)
06/18/2010 14:18 Meetory#29
:D


1. MemoryEngine elitepvpers.rar

[Only registered and activated users can see links. Click Here To Register...]

2. MemoryEngine elitepvpers [0.5].rar

[Only registered and activated users can see links. Click Here To Register...]


3. MemoryEngine elitepvpers [0.6]

[Only registered and activated users can see links. Click Here To Register...]


Code:
Wir haben folgende Archivdateien empfangen:
Datei ID 	 Dateiname 	Größe (Byte) 	Ergebnis
25761982 	 MemoryEngine elit...6].rar 	1.05 MB 	OK

Eine Auflistung der Dateien und Ergebnisse, die in Archiven enthalten waren, sind im folgenden aufgeführt:
Datei ID 	 Dateiname 	Größe (Byte) 	Ergebnis
25761983 	 memory.dll 	 297.5 KB 	 MALWARE
25761984 	 Save.ini 	 125 Byte 	 UNDER ANALYSIS
25761985 	 SciTe.ini 	 56 Byte 	 UNDER ANALYSIS
25761986 	 Setting.ini 	 95 Byte 	 UNDER ANALYSIS
25761987 	 SoftRTV.exe 	 286.78 KB 	 UNDER ANALYSIS
25761988 	 SoftRTVW.exe 	 286.77 KB 	 UNDER ANALYSIS
25761989 	 Start.exe 	 1.12 MB 	 UNDER ANALYSIS


Genaue Ergebnisse für jede Datei finden sie im folgenden Abschnitt:
 Dateiname 	Ergebnis
 memory.dll 	 MALWARE

Die Datei 'memory.dll' wurde als 'MALWARE' eingestuft. Unsere Analytiker haben dieser Bedrohung den Namen TR/Dldr.Delf.yiq gegeben. Bei der Bezeichnung "TR/" handelt es sich um ein Trojanisches Pferd, dass in der Lage ist, ihre Daten auszuspähen, Ihre Privatsphäre zu verletzen und nicht erwünschte Änderungen am System vornehmen kann.
 Dateiname 	Ergebnis
 Save.ini 	 UNDER ANALYSIS

Die Datei 'Save.ini' wurde als 'UNDER ANALYSIS' eingestuft.
 Dateiname 	Ergebnis
 SciTe.ini 	 UNDER ANALYSIS

Die Datei 'SciTe.ini' wurde als 'UNDER ANALYSIS' eingestuft.
 Dateiname 	Ergebnis
 Setting.ini 	 UNDER ANALYSIS

Die Datei 'Setting.ini' wurde als 'UNDER ANALYSIS' eingestuft.
 Dateiname 	Ergebnis
 SoftRTV.exe 	 UNDER ANALYSIS

Die Datei 'SoftRTV.exe' wurde als 'UNDER ANALYSIS' eingestuft.
 Dateiname 	Ergebnis
 SoftRTVW.exe 	 UNDER ANALYSIS

Die Datei 'SoftRTVW.exe' wurde als 'UNDER ANALYSIS' eingestuft.
 Dateiname 	Ergebnis
 Start.exe 	 UNDER ANALYSIS

Die Datei 'Start.exe' wurde als 'UNDER ANALYSIS' eingestuft.
06/18/2010 16:25 HardCore.1337#30
Klar, und wer hatte schon Probleme damit??
Das liegt daran, das auf die Prozesse zugriffen wird und diese Überwacht werden.

Ich lüfte mal das simple Geheimnis der SoftRTV.exe

PHP Code:
#include <NomadMemory.au3>
#NoTrayIcon

$Adresse IniRead ("Setting.ini""Memory""Adresse""")
$Process IniRead ("Setting.ini""Memory""Process""")
$Off iniRead ("Setting.ini""Memory""Offset""")
$TRUE iniRead ("Setting.ini""Memory""Offset""0")

if 
$TRUE "1" Then
    READPOINTER
()
EndIf

if 
$TRUE "0" then
    READ
()
    EndIF


Func READ()
if (
$Adresse "") or ($Process ""Then
    MsgBox 
(16"Error""Keine Werte angegeben!")
    Exit
EndIf

$PID WinExists ($Process)
if 
$PID 0 Then
    MsgBox 
(16"Error""Prozess wurde nicht gefunden!")
EndIf

    
$Open _MemoryOpen($PID)
    
$Read _MemoryRead($Adresse$Open)
    
_MemoryClose($OPEN)
    
InIWrite ("Setting.ini""Value""Value"$Read)
    Exit
EndFunc


Func READPOINTER
()
  if (
$Adresse "") or ($Process ""Then
    MsgBox 
(16"Error""Keine Werte angegeben!")
    Exit
EndIf

$PID WinExists ($Process)
if 
$PID 0 Then
    MsgBox 
(16"Error""Prozess wurde nicht gefunden!")
EndIf

    
$Open _MemoryOpen($PID)
    
$Read _MemoryRead($Adresse$Open)
    
$Pointer "0x" Hex($Read $Off)
    
$ReadP _MemoryRead($Pointer$Open)
    
_MemoryClose($Open)
    
InIWrite ("Setting.ini""Value""Value"$ReadP)
    Exit
EndFunc