Что нового

[GTA SA:MP] Работаем с памятью

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
Всем привет :smile:
При сканировании памяти и поисков оффсетов и базовых адресов столкнулся с такой проблемой, точнее неизвесном мне значении: "gta_sa.exe+3471D4" - Вверху чит енжине когда я выбрал процесс появилось около названия процесса: "00000EB0-gta_sa.exe". Я думаю что значение "00000EB0" и есть то что мне нужно... Как получить это значение средствами AutoIt? Если я ошибаюсь, то направте или подскажите как получить из этого: "gta_sa.exe+3471D4" В простое значение памяти...
 
Автор
Ganibal95

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
Re: [Процессы] Gta SA:MP Взламываем память игры

UP :smile:
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Re: [Процессы] Gta SA:MP Взламываем память игры

Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Данные правила могут пополняться локальными правилами раздела.
Как правильно называть темы

"[Процессы] Gta SA:MP Взламываем память игры" - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, Модератор раздела.
 
Автор
Ganibal95

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
Все нашол, это означает что адрес СТАТИЧЕСКИЙ. Я проверил на 3х компах и 4 виндовсах. Адрес не изменился :smile:
 

winstan

Эксплотатор)
Сообщения
406
Репутация
79
Ganibal95 [?]
"gta_sa.exe+3471D4" В простое значение памяти...
http://autoit-script.ru/index.php/topic,1600.0.html


Добавлено:
Сообщение автоматически объединено:

Пример в краце
Код:
$modul='gta_sa.exe'
$ofset=0x3471D4
$pid=ProcessExists('gta_sa.exe')

$adres=_MemoryModuleGetBaseAddress($pid,$modul)+$ofset

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
 
Верх