Посл.ответ |
Сообщение |
Ранг: 78.3 (постоянный) Активность: 0.03↘0 Статус: Участник
|
Создано: 31 июля 2007 00:49 · Поправил: fakit · Личное сообщение · #1
с помощью артмани в игре я нахожу одно значение, но оно всегда по разным адресам, как тогда напистаь трэйнер что бы автоматически находить нужное значение и изменять ? (понятно что по read/writeprocessmemory но как узнать адрес ?)
| Сообщение посчитали полезным: |
|
Ранг: 221.3 (наставник), 135thx Активность: 0.19↘0.07 Статус: Участник
|
Создано: 31 июля 2007 00:57 · Поправил: v0id2k · Личное сообщение · #2
fakit
Кури team-x.ru/guru-exe/path=Magazines%2FGHBook/
[ADDED]
Почитай руководство к ArtMoney, там дельно написано.
Глава 'Использование указателей и "Авто изменение адресов"'
[/ADDED]
----- xchg dword [eax], eax | Сообщение посчитали полезным: |
Ранг: 58.1 (постоянный) Активность: 0.03↘0 Статус: Участник
|
Создано: 31 июля 2007 00:58 · Личное сообщение · #3
Можно попробовать посмотреть вокруг этого адреса, какие-нибудь статичные данные, искать их через ReadProcessMemory, потом соответственно находить нужный нам адрес.
| Сообщение посчитали полезным: |
Ранг: 78.3 (постоянный) Активность: 0.03↘0 Статус: Участник
|
Создано: 31 июля 2007 02:22 · Личное сообщение · #4
v0id2k tnx
| Сообщение посчитали полезным: |
Ранг: 387.4 (мудрец) Активность: 0.17↘0 Статус: Участник системщик
|
Создано: 31 июля 2007 02:28 · Личное сообщение · #5
fakit, думаю что тебе надо разобраться в самой проге. Анализ дизасма покажет тебе что и где создаётся и как оно хранится. Например, где-нить будет глобальная переменная (или instance) в которой будет указатель на что-то выделенное динамически, и т.д. В итоге, ты можешь написать прогу которая найдёт нужные тебе данные в адресном пространстве проги. Но есть эому цена - много времяни убъёшь на анализ и отладку.
| Сообщение посчитали полезным: |
Ранг: 214.1 (наставник) Активность: 0.13↘0 Статус: Участник
|
Создано: 31 июля 2007 10:59 · Личное сообщение · #6
fakit
есть более кульный способ - артмоней находишь адрес в игре где лежит значение, подключаешся олей к игре, ставешь бряк на запись (может потребоваться на чтение если замутишь подругому), брякаешся на месте где значение например отнимается, нопишь отнимание и например бабло всегда только растет..
| Сообщение посчитали полезным: |
Ранг: 78.3 (постоянный) Активность: 0.03↘0 Статус: Участник
|
Создано: 31 июля 2007 12:29 · Личное сообщение · #7
по способу из GHBook не получается,
имеется такой код
...
759a2f CC int3
00759a30 55 push ebp
00759a31 8BEC mov ebp,esp
00759a33 8B4508 mov eax,[ebp+0x8]
00759a36 56 push esi
00759a37 8BF1 mov esi,ecx
00759a39 F7464000200000 test dword ptr [esi+0x40],0x2000
00759a40 7404 je short 0x00759A46
00759a42 85C0 test eax,eax
00759a44 740C je short 0x00759A52
00759a46 50 push eax
00759a47 E8B4F7FFFF call 0x00759200 // а этот адресс константа
00759a4c D99E84000000 fstp dword ptr [esi+0x84] //<---- это нада изменить и заморозить
00759a52 5E pop esi
00759a53 5D pop ebp
00759a54 C20400 retn 0x4
00759a57 CC int3
...
В самой ф-ции 759200 esi тоже мутный, там его не вытянуть на константу.
| Сообщение посчитали полезным: |
Ранг: 214.1 (наставник) Активность: 0.13↘0 Статус: Участник
|
Создано: 31 июля 2007 17:40 · Личное сообщение · #8
исправь je на jmp в 759a44 и je на nop в 759a40 и значение будет константой.
| Сообщение посчитали полезным: |
Ранг: 78.3 (постоянный) Активность: 0.03↘0 Статус: Участник
|
Создано: 31 июля 2007 18:40 · Поправил: fakit · Личное сообщение · #9
gegter ну если на то пошло, то я в fstp dword ptr [esi+0x84] лучше сразу забью свою константу, но это же трейнер зачем патчить сам файл ? а если в памяти это все делать - дисасэмблить и т.д. - то это гемор.
| Сообщение посчитали полезным: |
Ранг: 147.7 (ветеран), 50thx Активность: 0.12↘0 Статус: Участник sv_cheats 1
|
Создано: 01 августа 2007 06:47 · Поправил: SER[G]ANT · Личное сообщение · #10
Укажи хоть что за игра и что именно ты хочешь сделать ?
Исходя из вопроса заданном в первом посте, на мой взгляд, тебе лучше переводить DMA адрес в статический
| Сообщение посчитали полезным: |
Ранг: 214.1 (наставник) Активность: 0.13↘0 Статус: Участник
|
Создано: 02 августа 2007 05:50 · Личное сообщение · #11
fakit
а трэйнер разве не патчит память или если тебе угодно - разве не может патчить память... это называется заморозка значения. вот и сделай чтобы трейнер подменил тебе пару байт в памяти при нажатии например горячей клавиши.
| Сообщение посчитали полезным: |
Ранг: 72.4 (постоянный), 33thx Активность: 0.05↘0.03 Статус: Участник
|
Создано: 02 августа 2007 06:34 · Личное сообщение · #12
я делал так:
Можно попробовать посмотреть вокруг этого адреса, какие-нибудь статичные данные, искать их через ReadProcessMemory, потом соответственно находить нужный нам адрес.
Но можно просто этот адрес пропатчить на статический и юзать его. можно аж трейнером пропатчить
| Сообщение посчитали полезным: |
Ранг: 147.7 (ветеран), 50thx Активность: 0.12↘0 Статус: Участник sv_cheats 1
|
Создано: 02 августа 2007 07:10 · Личное сообщение · #13
fakit пишет:
00759a4c D99E84000000 fstp dword ptr [esi+0x84] //<---- это нада изменить и заморозить
вот накатал скрипт для --> TSearch<-- http://team-x.ru/guru-exe/Tools/Gamehacking/Memory%20Scanners/TSearch/TSearch%20v1.6b.zip
offset 00759a4c
jmp CODE-CAVE
nop
offset 00759a4c
mov dword ptr [esi+0x84],0xXXX (XXX - значение)
fstp dword ptr [esi+0x84]
jmp 00759a51
т.е. значение и изменилось и заморозилось как ты и хотел при условии что ты нашел правильную инструкцию.
А вообще... задавай вопросы более подробно.. а то в 1 сообщении ты хочешь одно.. в следующем.. совсем другое
| Сообщение посчитали полезным: |