

rom4i
Стажёры-
Постов
5 -
Зарегистрирован
-
Посещение
Репутация
0 Навыки не прокаченыКонтакты
-
Сайт
http://arma2dayz.ru/
-
Skype
r0m4u123
Информация
-
Пол
Мужчина
-
Город
Москва
-
Интересы
Взлом игр.
-
Да, это легко оказывается. Просто в видео с Кенгом использовалась старая версия CE. Однако для моей ситуации работает только Поинт Скан, если я не ошибаюсь. p.s. у меня новая проблема, знатакам vb.net - http://forum.gamehacklab.ru/topic/1961-%D1%87%D1%82%D0%BE-%D0%BD%D0%B5-%D1%82%D0%B0%D0%BA-vbnet-cheat-engine-tutorial-step-8/
-
Что не так? VB.net Cheat Engine Tutorial Step 8
rom4i опубликовал тема в Низкоуровневое программирование
Imports System.Text Imports System.Runtime.InteropServices Public Class Form1 <DllImport("kernel32.dll")> _ Public Shared Function WriteProcessMemory( _ ByVal hProcess As IntPtr, _ ByVal IpBaseAdress As IntPtr, _ ByVal IpBuffer As Byte(), _ ByVal nSize As UInt32, _ ByRef IpNumberOfBytesWritten As UInt32) As Boolean End Function <DllImport("kernel32.dll", SetLastError:=True)> _ Public Shared Function ReadProcessMemory( _ ByVal hProcess As IntPtr, _ ByVal lpBaseAddress As IntPtr, _ <Out()> ByVal lpBuffer() As Byte, _ ByVal dwSize As Integer, _ ByRef lpNumberOfBytesRead As Integer) As Boolean End Function Private Function FindAddress(ByVal pHandle As IntPtr, ByVal BaseAddress As IntPtr, ByVal StaticPointer As IntPtr, ByVal Offsets() As IntPtr) As IntPtr Dim tmp(IntPtr.Size - 1) As Byte Dim Address As IntPtr = BaseAddress If IntPtr.Size = 4 Then Address = New IntPtr(Address.ToInt32 + StaticPointer.ToInt32) Else Address = New IntPtr(Address.ToInt64 + StaticPointer.ToInt64) End If For i As Integer = 0 To Offsets.Length - 1 ReadProcessMemory(pHandle, Address, tmp, IntPtr.Size, 0) If IntPtr.Size = 4 Then Address = BitConverter.ToInt32(tmp, 0) + Offsets(i).ToInt32() Else Address = BitConverter.ToInt64(tmp, 0) + Offsets(i).ToInt64() End If Next Return Address End Function Public Shared Function StrToByteArray(ByVal str As String) As Byte() Dim encoding As New System.Text.ASCIIEncoding() Return encoding.GetBytes(str) End Function Dim hProcess As Process() = Process.GetProcessesByName("Tutorial-i386") Dim Written As Boolean = False Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim pID As IntPtr = hProcess(0).Handle Dim base As IntPtr = hProcess(0).MainModule.BaseAddress ' Our static pointer... Dim sptr As IntPtr = &H2903B0 ' And our offsets... Dim offsets() As IntPtr = {&HC, &H14, &H0, &H18} Dim addr As IntPtr = FindAddress(pID, base, sptr, offsets) Try WriteProcessMemory(hProcess(0).Handle, addr, New Byte() {0}, 99, 0) WriteProcessMemory(hProcess(0).Handle, addr, не доделано (5 тыщ), 99, 0) MsgBox("SUCCESS") Catch ex As Exception MsgBox("ERROR") End Try End Sub End Class -
Всем привет. Сразу хочу поблагодарить Кенга за его видео, всё отлично! Только что сделал трейнер на GTA SA - проблем не возникло, однако хочу сделать трейнер на новую игрушку, тут уже проблема одна. Как найти DMA адрес, если нельзя поменять в игре его значение? Т.е. нашел я адрес (черный, не зеленый), мне надо найти его статический адрес (зеленый), однако чтобы это сделать надо выполнить "Find out what accesses this adress". Так вот, проблема в том что этот адрес по сути в игре никак не меняется, отловить в "Find out what accesses this adress" не получится. Что делать, мои друзья хакеры?)