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

Рекомендуемые сообщения

Начал потихоньку осваиваться в "обмане игр". Как правило мысли обгоняют слова, поэтому могу написать бред.

Вообщем написал я на GTA:SA  2 скрипта. 1) Поднимая деньги с трупа получаем +10 000$ 2) получаем "бессмертие".

 

 Хотелось бы просить, как можно "модернезировать" эти скрипты,например, активируя скрипт получаем 20 000 и они не тратятся(смешное слово). Писать для кажого действия скрипт(прибавились\отнялись деньги),наверное,это глупо. Идем дальше, о бессмертии - т.е я просто каждый раз перезаписываю макс.кол-во жизней(смотрел в структуре) и скачет полоска и как по мне,это " По детски"[ На каком собственно я и  уровне..].  скрипты ниже, есть еще вопросы,но всё постепенно, как "Доделаю" эти 2) и сформулирую след.вопросы... 

Скрытый текст

{ Game   : gta_sa.exe
  Version: 
  Date   : 2016-06-10
  Author : ????

  This script does blah blah blah
}

[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat

 
 
aobscanmodule(INJECT,gta_sa.exe,01 15 50 CE B7 00) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:
add [gta_sa.exe+77CE50],#10000
code:
  add [gta_sa.exe+77CE50],edx
  jmp return

INJECT:
  jmp newmem // crash
  nop
return:
registersymbol(INJECT)

[DISABLE]
//code from here till the end of the code will be used to disable the cheat
INJECT:
  db 01 15 50 CE B7 00

unregistersymbol(INJECT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "gta_sa.exe"+5805B

"gta_sa.exe"+58035: 6A 00                 -  push 00
"gta_sa.exe"+58037: 6A 06                 -  push 06
"gta_sa.exe"+58039: B9 90 BC B6 00        -  mov ecx,gta_sa.exe+76BC90
"gta_sa.exe"+5803E: E8 5D EE 0A 00        -  call gta_sa.exe+106EA0
"gta_sa.exe"+58043: 8B CB                 -  mov ecx,ebx
"gta_sa.exe"+58045: C6 44 24 13 01        -  mov byte ptr [esp+13],01
"gta_sa.exe"+5804A: E8 71 D6 FF FF        -  call gta_sa.exe+556C0
"gta_sa.exe"+5804F: E9 A9 06 00 00        -  jmp gta_sa.exe+586FD
"gta_sa.exe"+58054: 8B 4C 24 14           -  mov ecx,[esp+14]
"gta_sa.exe"+58058: 8B 51 08              -  mov edx,[ecx+08]
// ---------- INJECTING HERE ----------
"gta_sa.exe"+5805B: 01 15 50 CE B7 00     -  add [gta_sa.exe+77CE50],edx
// ---------- DONE INJECTING  ----------
"gta_sa.exe"+58061: C6 44 24 13 01        -  mov byte ptr [esp+13],01
"gta_sa.exe"+58066: E8 55 D6 FF FF        -  call gta_sa.exe+556C0
"gta_sa.exe"+5806B: 68 00 00 80 3F        -  push 3F800000
"gta_sa.exe"+58070: 6A 00                 -  push 00
"gta_sa.exe"+58072: 6A 07                 -  push 07
"gta_sa.exe"+58074: B9 90 BC B6 00        -  mov ecx,gta_sa.exe+76BC90
"gta_sa.exe"+58079: E8 22 EE 0A 00        -  call gta_sa.exe+106EA0
"gta_sa.exe"+5807E: 8B 4C 24 64           -  mov ecx,[esp+64]
"gta_sa.exe"+58082: 6A 00                 -  push 00
"gta_sa.exe"+58084: 6A 00                 -  push 00
}

 

 

Скрытый текст

 Game   : gta_sa.exe
  Version: 
  Date   : 2016-06-10
  Author : ????

  This script does blah blah blah
}

[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat

 
 
aobscanmodule(INJECT,gta_sa.exe,00 00 8B 4E 10 D9 81 40 05 00 00) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:
mov dword ptr [ecx+00000540],(float)150
code:
  fld dword ptr [ecx+00000540]
  jmp return

INJECT+05:
  jmp newmem
  nop
return:
registersymbol(INJECT)

[DISABLE]
//code from here till the end of the code will be used to disable the cheat
INJECT+05:
  db D9 81 40 05 00 00

unregistersymbol(INJECT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "gta_sa.exe"+22637E

"gta_sa.exe"+22635E: 84 C0                    -  test al,al
"gta_sa.exe"+226360: 0F 84 6D 06 00 00        -  je gta_sa.exe+2269D3
"gta_sa.exe"+226366: 8B 16                    -  mov edx,[esi]
"gta_sa.exe"+226368: 55                       -  push ebp
"gta_sa.exe"+226369: 8B CE                    -  mov ecx,esi
"gta_sa.exe"+22636B: FF 52 24                 -  call dword ptr [edx+24]
"gta_sa.exe"+22636E: E9 F3 06 00 00           -  jmp gta_sa.exe+226A66
"gta_sa.exe"+226373: A8 08                    -  test al,08
"gta_sa.exe"+226375: 0F 85 52 01 00 00        -  jne gta_sa.exe+2264CD
"gta_sa.exe"+22637B: 8B 4E 10                 -  mov ecx,[esi+10]
// ---------- INJECTING HERE ----------
"gta_sa.exe"+22637E: D9 81 40 05 00 00        -  fld dword ptr [ecx+00000540]
// ---------- DONE INJECTING  ----------
"gta_sa.exe"+226384: D8 1D 50 8B 85 00        -  fcomp dword ptr [gta_sa.exe+458B50]
"gta_sa.exe"+22638A: DF E0                    -  fnstsw ax
"gta_sa.exe"+22638C: F6 C4 41                 -  test ah,41
"gta_sa.exe"+22638F: 0F 8A A6 00 00 00        -  jp gta_sa.exe+22643B
"gta_sa.exe"+226395: 8B 4E 08                 -  mov ecx,[esi+08]
"gta_sa.exe"+226398: 8B 01                    -  mov eax,[ecx]
"gta_sa.exe"+22639A: 6A 00                    -  push 00
"gta_sa.exe"+22639C: 6A 01                    -  push 01
"gta_sa.exe"+22639E: 55                       -  push ebp
"gta_sa.exe"+22639F: FF 50 18                 -  call dword ptr [eax+18]
}

 

 

Ссылка на комментарий
Поделиться на другие сайты

23 часа назад, krassdanek сказал:

,например, активируя скрипт получаем 20 000 и они не тратятся

krassdanek, у тебя на деньги инструкция скорее всего на запись. а для скрипта, который ты написал лучше взять часто читающую инструкцию (инструкцию на чтение).

Но попробуй вот так:

Скрытый текст

{ Game   : gta_sa.exe
  Version: 
  Date   : 2016-06-10
  Author : ????

  This script does blah blah blah
}

[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat

 
 
aobscanmodule(INJECT,gta_sa.exe,01 15 50 CE B7 00) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:
//add [gta_sa.exe+77CE50],#10000
code:
  //add [gta_sa.exe+77CE50],edx
  mov [gta_sa.exe+77CE50],#20000
  jmp return

INJECT:
  jmp newmem // crash
  nop
return:
registersymbol(INJECT)

[DISABLE]
//code from here till the end of the code will be used to disable the cheat
INJECT:
  db 01 15 50 CE B7 00

unregistersymbol(INJECT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "gta_sa.exe"+5805B

"gta_sa.exe"+58035: 6A 00                 -  push 00
"gta_sa.exe"+58037: 6A 06                 -  push 06
"gta_sa.exe"+58039: B9 90 BC B6 00        -  mov ecx,gta_sa.exe+76BC90
"gta_sa.exe"+5803E: E8 5D EE 0A 00        -  call gta_sa.exe+106EA0
"gta_sa.exe"+58043: 8B CB                 -  mov ecx,ebx
"gta_sa.exe"+58045: C6 44 24 13 01        -  mov byte ptr [esp+13],01
"gta_sa.exe"+5804A: E8 71 D6 FF FF        -  call gta_sa.exe+556C0
"gta_sa.exe"+5804F: E9 A9 06 00 00        -  jmp gta_sa.exe+586FD
"gta_sa.exe"+58054: 8B 4C 24 14           -  mov ecx,[esp+14]
"gta_sa.exe"+58058: 8B 51 08              -  mov edx,[ecx+08]
// ---------- INJECTING HERE ----------
"gta_sa.exe"+5805B: 01 15 50 CE B7 00     -  add [gta_sa.exe+77CE50],edx
// ---------- DONE INJECTING  ----------
"gta_sa.exe"+58061: C6 44 24 13 01        -  mov byte ptr [esp+13],01
"gta_sa.exe"+58066: E8 55 D6 FF FF        -  call gta_sa.exe+556C0
"gta_sa.exe"+5806B: 68 00 00 80 3F        -  push 3F800000
"gta_sa.exe"+58070: 6A 00                 -  push 00
"gta_sa.exe"+58072: 6A 07                 -  push 07
"gta_sa.exe"+58074: B9 90 BC B6 00        -  mov ecx,gta_sa.exe+76BC90
"gta_sa.exe"+58079: E8 22 EE 0A 00        -  call gta_sa.exe+106EA0
"gta_sa.exe"+5807E: 8B 4C 24 64           -  mov ecx,[esp+64]
"gta_sa.exe"+58082: 6A 00                 -  push 00
"gta_sa.exe"+58084: 6A 00                 -  push 00
}

 

 

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

Спасибо, скрипт действительно работает. Хотелось бы по подробнее узнать,за что отвечает:[ я не умею заносить под " Показать содержимое"]

Цитата

code:
  add [gta_sa.exe+77CE50],edx
  mov [gta_sa.exe+77CE50],#99999999
  jmp return

 

Ссылка на комментарий
Поделиться на другие сайты

8 минут назад, krassdanek сказал:

Хотелось бы по подробнее узнать,за что отвечает

Вопрос не понял.

Давай прокомментирую  часть скрипта, который ты выложил:

Скрытый текст

code:
  add [gta_sa.exe+77CE50],edx       // Оригинальная инструкция игры, прибавляет к деньгам значение в регистре edx (значение скорее всего может быть как положительным - например при продаже чего-нибудь, так и отрицательным, например при покупке чего-нибудь). В данном случае она не нужна, так как следующая инструкция перезаписывает значение денюжков.
  mov [gta_sa.exe+77CE50],#99999999 // Твоя инструкция инъекции - перезаписывает значение денюжков в адресе.
  jmp return                        // Возврат в код игры из нашей инъекции.

 

 

 

15 минуту назад, krassdanek сказал:

:[ я не умею заносить под " Показать содержимое"]

Читаем внимательно FAQNullAlex. всё давно уже прописал для новичков. 

В твоём случае нужно прочитать     и   

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

В 10.06.2016в16:15, Garik66 сказал:

Вопрос не понял.

Давай прокомментирую  часть скрипта, который ты выложил:

  Скрыть содержимое


code:
  add [gta_sa.exe+77CE50],edx       // Оригинальная инструкция игры, прибавляет к деньгам значение в регистре edx (значение скорее всего может быть как положительным - например при продаже чего-нибудь, так и отрицательным, например при покупке чего-нибудь). В данном случае она не нужна, так как следующая инструкция перезаписывает значение денюжков.
  mov [gta_sa.exe+77CE50],#99999999 // Твоя инструкция инъекции - перезаписывает значение денюжков в адресе.
  jmp return                        // Возврат в код игры из нашей инъекции.

 

 

 

Читаем внимательно FAQNullAlex. всё давно уже прописал для новичков. 

В твоём случае нужно прочитать   [Инструкция] Как использовать специальный тег "code"  и   [Инструкция] Как использовать тег спойлера

Тогда если  mov [gta_sa.exe+77CE50],#99999999 - перезаписывает наше значение,зачем нам писать :

 newmem:
 add [gta_sa.exe+77CE50],#999999999

 

Ссылка на комментарий
Поделиться на другие сайты

В 10.06.2016в14:14, Garik66 сказал:

Вот ещё видео заснял - посмотри.

 Спасибо за видео). Вопросик по теме: я хочу сделать бессмертие в GTA:SA . Ссылаюсь на способ:  но есть одно НО( Сталкивался уже,не знаю,как решить). В структуре адресс текущегоздоровья лежит по смещению(или как его там...)  00 [скриншот прилагается], а макс. здоровье : 00004. Как мне осуществить это в скрипте?!

Скрытый текст

 f8fc283dbec7.jpg

 

Ссылка на комментарий
Поделиться на другие сайты

6 минут назад, krassdanek сказал:

Вопросик по теме: я хочу сделать бессмертие в GTA:SA .

Выложи СЕ- шный АА-скрипт. Предварительно посмотри

Ссылка на комментарий
Поделиться на другие сайты

Скрытый текст

{ Game   : gta_sa.exe
  Version: 
  Date   : 2016-06-10
  Author : ????

  This script does blah blah blah
}

[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat

 
 
aobscanmodule(Helth,gta_sa.exe,00 00 8B 4E 10 D9 81 40 05 00 00) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:
mov dword ptr [ecx+00000540],(float)150
code:
  fld dword ptr [ecx+00000540]
  jmp return

Helth+05:
  jmp newmem
  nop
return:
registersymbol(Helth)

[DISABLE]
//code from here till the end of the code will be used to disable the cheat
Helth+05:
  db D9 81 40 05 00 00

unregistersymbol(Helth)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "gta_sa.exe"+22637E

"gta_sa.exe"+22635E: 84 C0                    -  test al,al
"gta_sa.exe"+226360: 0F 84 6D 06 00 00        -  je gta_sa.exe+2269D3
"gta_sa.exe"+226366: 8B 16                    -  mov edx,[esi]
"gta_sa.exe"+226368: 55                       -  push ebp
"gta_sa.exe"+226369: 8B CE                    -  mov ecx,esi
"gta_sa.exe"+22636B: FF 52 24                 -  call dword ptr [edx+24]
"gta_sa.exe"+22636E: E9 F3 06 00 00           -  jmp gta_sa.exe+226A66
"gta_sa.exe"+226373: A8 08                    -  test al,08
"gta_sa.exe"+226375: 0F 85 52 01 00 00        -  jne gta_sa.exe+2264CD
"gta_sa.exe"+22637B: 8B 4E 10                 -  mov ecx,[esi+10]
// ---------- INJECTING HERE ----------
"gta_sa.exe"+22637E: D9 81 40 05 00 00        -  fld dword ptr [ecx+00000540]
// ---------- DONE INJECTING  ----------
"gta_sa.exe"+226384: D8 1D 50 8B 85 00        -  fcomp dword ptr [gta_sa.exe+458B50]
"gta_sa.exe"+22638A: DF E0                    -  fnstsw ax
"gta_sa.exe"+22638C: F6 C4 41                 -  test ah,41
"gta_sa.exe"+22638F: 0F 8A A6 00 00 00        -  jp gta_sa.exe+22643B
"gta_sa.exe"+226395: 8B 4E 08                 -  mov ecx,[esi+08]
"gta_sa.exe"+226398: 8B 01                    -  mov eax,[ecx]
"gta_sa.exe"+22639A: 6A 00                    -  push 00
"gta_sa.exe"+22639C: 6A 01                    -  push 01
"gta_sa.exe"+22639E: 55                       -  push ebp
"gta_sa.exe"+22639F: FF 50 18                 -  call dword ptr [eax+18]
}

тест,если что, удалю.

 

Ссылка на комментарий
Поделиться на другие сайты

Попробуй (почитай комментарии в скрипте):

Скрытый текст

{ Game   : gta_sa.exe
  Version: 
  Date   : 2016-06-10
  Author : ????

  This script does blah blah blah
}

[ENABLE]
aobscanmodule(Helth,gta_sa.exe,00 00 8B 4E 10 D9 81 40 05 00 00) // should be unique
alloc(newmem,$1000)
label(code)
label(return)
registersymbol(Helth)

newmem:
  fld dword ptr [ecx+00000544]  // выгрузка Max HP из памяти в стек (fld аналог опкода push для FPU)
  fstp dword ptr [ecx+00000540] // выгрузка Max НР из стека в память с одновременным сдвигом стека назад  (fstp аналог опкода pop для FPU)

code:
  fld dword ptr [ecx+00000540]
  jmp return

Helth+05:
  jmp newmem
  nop
return:

[DISABLE]
Helth+05:
  db D9 81 40 05 00 00

unregistersymbol(Helth)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "gta_sa.exe"+22637E

"gta_sa.exe"+22635E: 84 C0                    -  test al,al
"gta_sa.exe"+226360: 0F 84 6D 06 00 00        -  je gta_sa.exe+2269D3
"gta_sa.exe"+226366: 8B 16                    -  mov edx,[esi]
"gta_sa.exe"+226368: 55                       -  push ebp
"gta_sa.exe"+226369: 8B CE                    -  mov ecx,esi
"gta_sa.exe"+22636B: FF 52 24                 -  call dword ptr [edx+24]
"gta_sa.exe"+22636E: E9 F3 06 00 00           -  jmp gta_sa.exe+226A66
"gta_sa.exe"+226373: A8 08                    -  test al,08
"gta_sa.exe"+226375: 0F 85 52 01 00 00        -  jne gta_sa.exe+2264CD
"gta_sa.exe"+22637B: 8B 4E 10                 -  mov ecx,[esi+10]
// ---------- INJECTING HERE ----------
"gta_sa.exe"+22637E: D9 81 40 05 00 00        -  fld dword ptr [ecx+00000540]
// ---------- DONE INJECTING  ----------
"gta_sa.exe"+226384: D8 1D 50 8B 85 00        -  fcomp dword ptr [gta_sa.exe+458B50]
"gta_sa.exe"+22638A: DF E0                    -  fnstsw ax
"gta_sa.exe"+22638C: F6 C4 41                 -  test ah,41
"gta_sa.exe"+22638F: 0F 8A A6 00 00 00        -  jp gta_sa.exe+22643B
"gta_sa.exe"+226395: 8B 4E 08                 -  mov ecx,[esi+08]
"gta_sa.exe"+226398: 8B 01                    -  mov eax,[ecx]
"gta_sa.exe"+22639A: 6A 00                    -  push 00
"gta_sa.exe"+22639C: 6A 01                    -  push 01
"gta_sa.exe"+22639E: 55                       -  push ebp
"gta_sa.exe"+22639F: FF 50 18                 -  call dword ptr [eax+18]
}

 

 

Ссылка на комментарий
Поделиться на другие сайты

Версия игры: 1.01

Я взломал её так...некоторые функц. без выделения памяти...

 

Бессмертие:

Скрытый текст

[ENABLE]
gta_sa.exe+B32AC:
db 75


[DISABLE]
gta_sa.exe+B32AC:
db 74

 

 

Вечные деньги:

Скрытый текст

[ENABLE]
GTA_SA.exe+171C21:
db B8


[DISABLE]
GTA_SA.exe+171C21:
db 3D

 

 

Вечные оружия:

Скрытый текст

[ENABLE]
GTA_SA.exe+3402AC:
db 74
GTA_SA.exe+3430D6:
db 74


[DISABLE]
GTA_SA.exe+3402AC:
db 75
GTA_SA.exe+3430D6:
db 75

 

 

Вечный бег:

Скрытый текст

[ENABLE]

GTA_SA.exe+20AD9C:
db 74


[DISABLE]
GTA_SA.exe+20AD9C:
db 75

 

 

Вечный воздух:

Скрытый текст

[ENABLE]
gta_sa.exe+20B102:
db 74


[DISABLE]
gta_sa.exe+20B102:
db 75

 

 

Ссылка на комментарий
Поделиться на другие сайты

20 часа назад, krassdanek сказал:

В структуре адресс текущегоздоровья лежит по смещению(или как его там...)  00 [скриншот прилагается], а макс. здоровье : 00004. Как мне осуществить это в скрипте?!

krassdanek, ты не ответил сработал ли мой скрипт.

Просто на форуме принято отвечать, так как тему читают и другие пользователи. 

Ссылка на комментарий
Поделиться на другие сайты

Согласен, когда ВООБЩЕ ничего не понимал - пытался assaultCube взломать на бессмертие... а там инструкция на всех игроков)) А что такое фильтр и т.п - даже представить не мог( да и сейчас так же..)

Ссылка на комментарий
Поделиться на другие сайты

Фильтры разные есть...

есть указатель много уров.

можно анализ даты\структуры использовать...по сути тоже указатель только со значением.

можно регистры значений использовать...

По форуму пошарь...долножно где то быть инструкция или описания.

Ссылка на комментарий
Поделиться на другие сайты

Вот тебе простой пример фильтра...анализ даты\структуры...

 

Скрытый текст

[ENABLE]
alloc(newmem,64)
label(returnhere)


newmem:
test eax,eax
cmp byte ptr [esi+372],01
je Game.exe+1D3E68
mov [esi+6C],eax
jmp returnhere


Game.exe+1D3E63:
jmp newmem
returnhere:


[DISABLE]
dealloc(newmem)
Game.exe+1D3E63:
test eax,eax
mov [esi+6C],eax

 

 

Ссылка на комментарий
Поделиться на другие сайты

9 минут назад, krassdanek сказал:

Это я знаю, я не знаю как это осуществить в скрипте и не ищу т.к пока мне это не нужно)

 

Вот почитай на форуме интересные статьи для себя:

http://forum.gamehacklab.ru/index.php?/forum/5-%D1%81%D1%82%D0%B0%D1%82%D1%8C%D0%B8-%D0%B4%D0%BB%D1%8F-%D0%BD%D0%BE%D0%B2%D0%B8%D1%87%D0%BA%D0%BE%D0%B2/

Ссылка на комментарий
Поделиться на другие сайты

Спасибо, Dison, но я на форуме не первый месяц и всё что можно посмотрел)) Просто с недавнего момента начал учится и пользоваться материалом с форума. Если кто и дает полезную информ. то в идеале хотелось бы, что бы эта инф. была с другого источника, а не с форума)) Но спасибо большое всё равно.

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

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

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