Перейти к содержанию

rom4i

Стажёры
  • Постов

    5
  • Зарегистрирован

  • Посещение

Репутация

0 Навыки не прокачены

Контакты

  • Сайт
    http://arma2dayz.ru/
  • Skype
    r0m4u123

Информация

  • Пол
    Мужчина
  • Город
    Москва
  • Интересы
    Взлом игр.
  1. Да, это легко оказывается. Просто в видео с Кенгом использовалась старая версия 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/
  2. 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
  3. Огромное спасибо. У Кенга я такого не нашел, можно ссылку на статью/урок (можно англоязычный)? Сам додумался. Через Point Scan. Кому надо - пишите, напишу как сделать.
  4. Спасибо за ответ. Не является характеристикой игрока. Не знаю как объяснить. Допустим есть игровой текст Hello world, адрес которого мы нашли без проблем (он динамический). Он никак не меняется внутри игры и отловить его статический адрес как я понял невозможно?
  5. Всем привет. Сразу хочу поблагодарить Кенга за его видео, всё отлично! Только что сделал трейнер на GTA SA - проблем не возникло, однако хочу сделать трейнер на новую игрушку, тут уже проблема одна. Как найти DMA адрес, если нельзя поменять в игре его значение? Т.е. нашел я адрес (черный, не зеленый), мне надо найти его статический адрес (зеленый), однако чтобы это сделать надо выполнить "Find out what accesses this adress". Так вот, проблема в том что этот адрес по сути в игре никак не меняется, отловить в "Find out what accesses this adress" не получится. Что делать, мои друзья хакеры?)
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.