[Open Source] Name Changer (VB.net)

08/19/2016 20:28 anonymous-29742#1
Guten Tag ^^

Da viele danach gefragt haben, gibt es nun hier den Source
für den "Name Changer" in "Visual Basic.net".


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

Selber updaten ? // Update your self ?
[Only registered and activated users can see links. Click Here To Register...]

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

Quote:
Originally Posted by [Beatrice] View Post
$address = findpattern......
$readaddydec = ReadProcessMemory($Handle,$address + 5,"dword")
$Address = "0x" & Hex($readaddydec,8)

For getting that address from the pattern.
C++ (DLL)
Code:
memcpy((uintptr_t*)dwBaseAddr + 0xA4E820, "\x90\x90", 2); // NOP x2
ZeroMemory((uintptr_t*)dwBaseAddr + 0x14AB9BD, 200);
strcpy((char*)dwBaseAddr + 0x14AB9BD, "Name");
AutoIT
Code:
#cs ----------------------------------------------------------------------------

 AutoIt Version: 3.3.14.2
 Author:         Zyntex

 Script Function:
	Simple, old self-updating name changer script
	small updated for release - 20.08.2016
	- please dont flame me for using nomadmemory here

#ce ----------------------------------------------------------------------------

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include "NomadMemory.au3" ;requires nomadmemory
#RequireAdmin

$ac_stat = False
$pattern = "85 C9 75 07 B8 ?? ?? ?? ?? EB 62"
$ini = [MENTION=2621560]appdata[/MENTION]Dir & "\Namechanger.ini"
$orig_byte = "0x7507"
$len = "char[200]"

If Not ProcessExists("S4Client.exe") Then
	MsgBox(16, "error", "Open me ingame.")
EndIf

$pid = ProcessExists("S4Client.exe")
$handle = _MemoryOpen($pid)

If Not FileExists($ini) Then Create()
$name = IniRead($ini, "SETTINGS", "name", "")

$Form_main = GUICreate("Name Changer", 284, 85)
$Input_name = GUICtrlCreateInput($name, 8, 8, 265, 21)
$Button_set_name = GUICtrlCreateButton("Set name", 112, 40, 75, 25)
$Button_disable = GUICtrlCreateButton("Disable", 156, 40, 75, 25)
GUICtrlSetState(-1, $GUI_HIDE)
GUISetState(@SW_SHOW)

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			_Exit()
		Case $Button_set_name
			ChangeName()
		Case $Button_disable
			Disable()
	EndSwitch
WEnd

Func Create()
	$base = _MemoryModuleGetBaseAddress($pid, "S4Client.exe")
	$player_name = _MemoryRead($base + 0x016EB588, $handle) + 0x0
	$player_name = "0x" & Hex($player_name, StringLen($player_name))
	$player_name_read = _MemoryRead($player_name, $handle, "char[255]")

	IniWrite($ini, "SETTINGS", "name", $player_name_read)
EndFunc   ;==>Create

Func _Exit()
	If $ac_stat = True And ProcessExists("S4Client.exe") Then
		If MsgBox(64 + 4, "", "Would you like to turn off the name changer before exiting?") = 6 Then
			_MemoryWrite($adr + 2, $handle, $orig_byte, "Byte[2]")
		EndIf
	EndIf

	Exit
EndFunc   ;==>_Exit

Func Disable()
	_MemoryWrite($adr + 2, $handle, $orig_byte, "Byte[2]")
	If [MENTION=2544426]Error T[/MENTION]hen
		MsgBox(16, "error", "error: " & [MENTION=299637]ErRoR[/MENTION] & [MENTION=3576271]CRLF[/MENTION] & "(Memory-writing)")
		Exit
	EndIf
	$ac_stat = False
	GUICtrlSetState($Button_disable, $GUI_HIDE)
	ControlMove("Name Changer", "", $Button_set_name, 112, 40)
EndFunc   ;==>Disable

Func ChangeName()
	If $ac_stat = False Then
		Global $adr = _MemoryScan($handle, $pattern)
		If [MENTION=2544426]Error T[/MENTION]hen
			MsgBox(16, "error", "error: " & [MENTION=299637]ErRoR[/MENTION] & [MENTION=3576271]CRLF[/MENTION] & "(Pattern-scanning)")
			Exit
		EndIf
		_MemoryWrite($adr + 2, $handle, "0x9090", "Byte[2]")
		Global $name_address = _MemoryRead($adr + 5, $handle, "dword")
		$name_address = "0x" & Hex($name_address, StringLen($name_address))
		$ac_stat = True
		GUICtrlSetState($Button_disable, $GUI_SHOW)
		ControlMove("Name Changer", "", $Button_set_name, 56, 40)
	EndIf

	$read = GUICtrlRead($Input_name)
	_MemoryWrite($name_address, $handle, $read, "char[" & StringLen($read) + 1 & "]")
	If [MENTION=2544426]Error T[/MENTION]hen
		MsgBox(16, "error", "error: " & [MENTION=299637]ErRoR[/MENTION] & [MENTION=3576271]CRLF[/MENTION] & "(Memory-writing)")
		Exit
	EndIf
	IniWrite($ini, "SETTINGS", "name", $read)
EndFunc   ;==>ChangeName

Func _MemoryScan($ah_Handle, $pattern, $after = False, $iv_addrStart = 0x00000000, $iv_addrEnd = 0X0FFFFFFF, $step = 51200)

	$pattern = StringReplace($pattern, " ", "")

	$pattern = StringReplace($pattern, "??", "..")

	If Not IsArray($ah_Handle) Then
		SetError(1)
		Return -1
	EndIf
	$pattern = StringRegExpReplace($pattern, "[^0123456789ABCDEFabcdef.]", "")
	If StringLen($pattern) = 0 Then
		SetError(2)
		Return -2
	EndIf
	For $addr = $iv_addrStart To $iv_addrEnd Step $step - (StringLen($pattern) / 2)
		StringRegExp(_MemoryRead($addr, $ah_Handle, "byte[" & $step & "]"), $pattern, 1, 2)
		If Not [MENTION=2544426]Error T[/MENTION]hen
			If $after Then
				Return StringFormat("0x%.8X", $addr + ((@extended - 2) / 2))
			Else
				Return StringFormat("0x%.8X", $addr + ((@extended - StringLen($pattern) - 2) / 2))
			EndIf
		EndIf
	Next
	SetError(3)
	Return -3
EndFunc   ;==>_MemoryScan

Func _MemoryModuleGetBaseAddress($iPID, $sModule)
	If Not ProcessExists($iPID) Then Return SetError(1, 0, 0)

	If Not IsString($sModule) Then Return SetError(2, 0, 0)

	Local $PSAPI = DllOpen("psapi.dll")

	;Get Process Handle
	Local $hProcess
	Local $PERMISSION = BitOR(0x0002, 0x0400, 0x0008, 0x0010, 0x0020) ; CREATE_THREAD, QUERY_INFORMATION, VM_OPERATION, VM_READ, VM_WRITE

	If $iPID > 0 Then
		Local $hProcess = DllCall("kernel32.dll", "ptr", "OpenProcess", "dword", $PERMISSION, "int", 0, "dword", $iPID)
		If $hProcess[0] Then
			$hProcess = $hProcess[0]
		EndIf
	EndIf

	;EnumProcessModules
	Local $Modules = DllStructCreate("ptr[1024]")
	Local $aCall = DllCall($PSAPI, "int", "EnumProcessModules", "ptr", $hProcess, "ptr", DllStructGetPtr($Modules), "dword", DllStructGetSize($Modules), "dword*", 0)
	If $aCall[4] > 0 Then
		Local $iModnum = $aCall[4] / 4
		Local $aTemp
		For $i = 1 To $iModnum
			$aTemp = DllCall($PSAPI, "dword", "GetModuleBaseNameW", "ptr", $hProcess, "ptr", Ptr(DllStructGetData($Modules, 1, $i)), "wstr", "", "dword", 260)
			If $aTemp[3] = $sModule Then
				DllClose($PSAPI)
				Return Ptr(DllStructGetData($Modules, 1, $i))
			EndIf
		Next
	EndIf

	DllClose($PSAPI)
	Return SetError(-1, 0, 0)

EndFunc   ;==>_MemoryModuleGetBaseAddress

Enjoy
08/19/2016 20:29 Tetsuya-kun#2
Nice, danke du hast vielen vb.net Programmierer geholfen.
08/19/2016 20:37 Syc.#3
Danke dir bro, danke dir das du überhaubt sowas releast, darauf wäre ich nie gekommen muss so einiges lernen ^^
08/19/2016 20:49 CodeNero#4
Nices teil!
08/19/2016 23:01 xKemya#5
Thanks for the simple but lovely release <3 :)
08/19/2016 23:58 TheMokkо#6
Thx bro,
can I include it in my trainer and release it with credits for you?
08/20/2016 00:00 anonymous-29742#7
Quote:
Originally Posted by elementax View Post
Thx bro,
can I include it in my trainer and release it with credits for you?
Sure why not :)
08/20/2016 01:15 [Beatrice]#8
$address = findpattern......
$readaddydec = ReadProcessMemory($Handle,$address + 5,"dword")
$Address = "0x" & Hex($readaddydec,8)

For getting that address from the pattern.
08/20/2016 12:40 gοd#9
here my old, "self-updating" name changer script for autoit.
feel free to use it
source included ofc.
08/20/2016 13:30 Ethan.#10
Quote:
Originally Posted by [Beatrice] View Post
$address = findpattern......
$readaddydec = ReadProcessMemory($Handle,$address + 5,"dword")
$Address = "0x" & Hex($readaddydec,8)

For getting that address from the pattern.
Yeh look at bea acting like a pro.(lucas)
08/20/2016 13:35 Xonivion#11
Quote:
Originally Posted by Ethan. View Post
Yeh look at bea acting like a pro.(lucas)
He rlly is. ;)
08/20/2016 15:22 Linnéa..#12
Thank you c:
08/20/2016 15:39 ZexferYT#13
p

a
08/20/2016 15:46 bidjus#14
Thanks
08/24/2016 23:25 aaaa3333#15
,.,<3