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

Serious Sam HD: TSE; взлом здоровья


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

default_offtopic.gif Всё Жень понятно. Скрипт полностью не выложил. Если у тебя в скрипте под  соde: находится это

popad
popfd
cmp [esi+00000498],eax

То мне всё ясно. ;)

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

17 минуту назад, LIRW сказал:

Я тут дал тему - не знай смотрел её кто или нету...

Тема для старой игры. А в ней всё просто делается. А ты тему привёл якобы для того, чтобы показать, что мы что-то не правильно делаем.

Гери (я почитал и ту тему и тему где он выложил табличку уже для новой игры) не объясняет каким образом он вышел из адреса НР ( а с ним работают только 4 инструкции - две на запись и две на чтение) на свою инструкцию.

Для старой игры я выкладывал скрипты здесь:

 

 

20 минуты назад, LIRW сказал:

Я этот скрипт давал - смотреть надо было в начале темы..

Я не обратил на него внимания. Хотя скрипт уже именно для новой игры.

21 минуты назад, LIRW сказал:

Да ты щас скажешь подсмотрел мол :lol: да в поиске фильтра так и так бы туда зашел в это смещение...

Не знаю наверное, если бы копался, то нашёл бы, но утверждать не буду. Для старой игры именно такой фильтр использовал в скриптах. Для новой искал в районе адреса НР.

23 минуты назад, LIRW сказал:

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

А зачем готовое, если человек учится. И сам хочет разобраться. Мне например интереснее делать самому раз уж берусь, а смысл лазить и искать готовое.

Вот в той же игре "unepic", которую смотрел для тебя. у меня в скрипте обход защиты другой, нежели, который ты у кого подсмотрел.

24 минуты назад, LIRW сказал:

И всё,а написал в том смысле, мол дал готовое, а они тут сидят на фильтрах гадают до сех пор.

Если ты читал тему, то скрипт на бесконечные НР давно уже написан (и он работает), на фильтрах. (Без разницы что будет в фильтре - Player или ещё какое то значение, главное чтобы фильтр был уникальным и повторяемым.) Мы уже занимались совсем другим - добавлением брони без её подбора. добавлением патронов без подбора оружия и выясняли как это правильно сделать.

32 минуты назад, LIRW сказал:

Не любит Игорь когда дают почти готовое сразу,

Готовое - не люблю.

32 минуты назад, LIRW сказал:

над котором он тут столько сидел...

Да и не сидел я над ней практически, больше пытался выяснить почему она у меня вылетает постоянно ( без СЕ и скриптов), несколько раз пытался переустанавливать её, но так и не разобрался, короче где-то у меня конфликт идёт.

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

 

22 часа назад, Garik66 сказал:

Вопрос не понял, лучше на примере скрипта покажи, что имеешь ввиду.

Имеется AOB-скрипт, есть цепочка байт. Как по этой цепочке выйти на тот участок кода через Memory Viewer, который он изменяет?

 

3 часа назад, LIRW сказал:

Всё фильтра сидят делают. 

В этой игре  за базовый адрес можно взять регистр esi - его даже игра использует на жизни. 

От него в смещении esi + 58 хранятся ID персонажей. Но так как СЕ не может добавить 'PlayerPuppet' за место фильтра, то его перевести надо из текста в какой не будь указатель и поставить сравнение на нем. Это отделит врагов от персонажа. 

Броня хранится в смещении +49С а жизнь в смещении + 488  Всем максимальные характеристики того или иного, хранятся там же. Это сидеть надо и смотреть.

В итоге получается: 

Вот эта инструкция сравнения на HP персонажа, срабатывает при врубления отладчика на жизни персонажа  cmp [esi+00000498],eax  видать сравнение жизни в eax лежит 64 - а то есть в 10_ом 100

Выложи свой скрипт, пожалуйста. Объясни, как ты на эту инструкцию вышел-то? Хотя бы на адрес в игре посмотреть - пробовал то скрипт от Гери - у меня он не работает.

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

32 минуты назад, Garik66 сказал:

Готовое - не люблю.

Игорь - не любишь, тогда делай на фильтрах. Я эту тему дал человеку который попросил о взломе здоровья. Может ему и пригодилось бы. Потом сюда зашел - смотрю, всё делают на фильтрах. Думаю странно, может не поняли что то там... Думаю дай ка я попробую... Ну и исправил скрипт под обнову и работает.  Да и на счет готового - вот ты говоришь человек хочет научится, а сам то не бось в той теме то и не был, там тоже человек один задался вопросом мол, а как ты сделал - ну и он ему предложил уроки на своём сайте... Там о подобной игре как раз темы есть у него.. Щас скажешь там не на русском все, так у нас на форуме книги кто то выложил для учебы, тоже не на русском и не чего:rolleyes: Моё дело было как то подсобить что ли человеку, дал ему тему, а там его уж дело  - учиться там чему либо или нет, из готового делать или самому пробовать - это выбор каждого. Да и заметь - я не писал что мол на вот его скрипт используй в своих целях. Да и  пишешь мне что ты дал готовое, человек ведь хочет научится - там ведь можно научится и не хуже чем тут. Каждый человек сидит то тут, то там, моненько там что то увидит полезно для себя, моненько тут. Только мне кажется вот тот способ и должен его больше интересовать как там сделано. В общем учитесь не мешаю, а то с темами то я суда залез не по делу.

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

26 минуты назад, SergBrNord сказал:

Выложи свой скрипт, пожалуйста. Объясни, как ты на эту инструкцию вышел-то

Я давал вам тему - вы что не смотрели что ли её ??? Я подумал в обще - поковырялись в ней, не чего не поняли (или скрипт не работал из за обновлений игры) и бросили эту затею... Скрипт же не мой, а из темы которую давал.. Я в обще только поковырялся в нем, исправил под обнову его и всё. А ну и добавил новые смещения свои которые нашел в структуре... А как он делал - он там уроки выложил. Они не на русском - у него сайт в обще на немецком что ли :mellow:   

 

Извиняюсь - я скопировал ссылки уже из его темы по Сему :( моя не внимательность Тема 

 

Я ошибаюсь из за того что, я не могу запомнить как тут скрывать текст и копирую его из блокнота :( и видать опять не усмотрел,а думал эту ссылку дал. Надо проверять просто - извиняюсь. 

Я вот вставляю сюда сначала,а потом сюда на сайт из за этого у меня и путаница. А ссылку с которой спутался и выложил тут - это уже из его ответа на вопрос, одному участнику форума был.. 

 

d4a880f3aacdfde4133198390b8c3a96.jpg 

 

Вот скрипт переделанный и добавленный своими смещениями уже... 

У Джери на форуме он старый, а это под обновленную игру и может работать и на вашей игре... Надо только доработать его ещо.

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



[ENABLE]

aobscanmodule(Base,SamHD_TSE.exe,39 86 * * * * 75 * 8B CE E8 * * * * 85 C0 75)
alloc(newmem,$1000)

label(code)
label(return)

newmem:
  push ecx
  mov ecx,[esi+58]
  cmp [ecx],79616C50
  jne code
  mov [esi+00000488],#999 //heath
  mov [esi+00000A10],#200 //ammo shotsgun
  mov [esi+00000A80],#200 // ammo sniper
  mov [esi+0000049C],#999 // Armor

code:
  pop ecx
  cmp [esi+00000498],eax
  jmp return

Base:
  jmp newmem
  nop
return:
registersymbol(Base)

[DISABLE]

Base:
  db 39 86 98 04 00 00

unregistersymbol(Base)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "SamHD_TSE.exe"+6E756

"SamHD_TSE.exe"+6E730: 74 10                 -  je SamHD_TSE.exe+6E742
"SamHD_TSE.exe"+6E732: 83 BE 38 08 00 00 00  -  cmp dword ptr [esi+00000838],00
"SamHD_TSE.exe"+6E739: 74 07                 -  je SamHD_TSE.exe+6E742
"SamHD_TSE.exe"+6E73B: 8B CE                 -  mov ecx,esi
"SamHD_TSE.exe"+6E73D: E8 5E 46 FF FF        -  call SamHD_TSE.exe+62DA0
"SamHD_TSE.exe"+6E742: 8B CE                 -  mov ecx,esi
"SamHD_TSE.exe"+6E744: E8 E7 FB 02 00        -  call SamHD_TSE.exe+9E330
"SamHD_TSE.exe"+6E749: 8D BE 88 04 00 00     -  lea edi,[esi+00000488]
"SamHD_TSE.exe"+6E74F: 8B CF                 -  mov ecx,edi
"SamHD_TSE.exe"+6E751: E8 FA 60 48 00        -  call SamHD_TSE.exe+4F4850
// ---------- INJECTING HERE ----------
"SamHD_TSE.exe"+6E756: 39 86 98 04 00 00     -  cmp [esi+00000498],eax
// ---------- DONE INJECTING  ----------
"SamHD_TSE.exe"+6E75C: 75 0B                 -  jne SamHD_TSE.exe+6E769
"SamHD_TSE.exe"+6E75E: 8B CE                 -  mov ecx,esi
"SamHD_TSE.exe"+6E760: E8 9B 1E 00 00        -  call SamHD_TSE.exe+70600
"SamHD_TSE.exe"+6E765: 85 C0                 -  test eax,eax
"SamHD_TSE.exe"+6E767: 75 19                 -  jne SamHD_TSE.exe+6E782
"SamHD_TSE.exe"+6E769: 8B 16                 -  mov edx,[esi]
"SamHD_TSE.exe"+6E76B: 8B 82 B8 06 00 00     -  mov eax,[edx+000006B8]
"SamHD_TSE.exe"+6E771: 8B CE                 -  mov ecx,esi
"SamHD_TSE.exe"+6E773: FF D0                 -  call eax
"SamHD_TSE.exe"+6E775: 8B CF                 -  mov ecx,edi
}

 

 

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

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

Игорь - не любишь, тогда делай на фильтрах.

Жень, как ты не можешь понять. У Гери скрипт тоже на фильтре, просто он вышел именно на текстовый фильтр "PLay". Для старой игры - я тоже легко вышел на тот же фильтр "Play". Ничего он особенного не сделал.

 

25 минуты назад, SergBrNord сказал:

Объясни, как ты на эту инструкцию вышел-то?

А для новой игры как я думаю Гери выходил на свою инструкцию.

1. Нашёл адрес НР.

2. Сделал анализ структур.

3. Увидел что ниже в структуре лежит предыдущее, про которое ты писал у себя на скрине (или максимальное, точно не знаю не смотрел) значение НР.

4. На этот адрес поставил бряк на чтение и вот таким образом получил инструкцию.

 

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

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

Жень, как ты не можешь понять. У Гери скрипт тоже на фильтре

Игорь я заметил его фильтр только вот в чем... У него за место фильтра стоит id игрока и вот его название... PlayerPuppet  это слово просто переведено из текста в указатель... Или я где то ещо не заметил фильтр ??? Я более не наблюдал вроде как... 

СЕ просто не может большие слова на фильтр принимать ' 344343434ffdsf3232343' вот такое он не примет, а вот если его перевести в указатель - то всё норм :) я если честно даже и не знал, что так можно... 

Я просто сидел и думал, от куда он это взял значение такое на фильтр и оказалось всё просто...Оказывается слово на фильтр использовал, но СЕ его не принимал.. А Джери или Гери - просто перевел его оказывается в указатель и подставил туда... Умно однако...

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

2 минуты назад, LIRW сказал:

Игорь я заметил его фильтр только вот в чем... У него за место фильтра стоит id игрока и вот его название... PlayerPuppet  это слово просто переведено из текста в указатель... Или я где то ещо не заметил фильтр ??? Я более не наблюдал вроде как... 

СЕ просто не может большие слова на фильтр принимать ' 344343434ffdsf3232343' вот такое он не примет, а вот если его перевести в указатель - то всё норм :) я если честно даже и не знал, что так можно...

Жень, что ты мне объясняешь, я в курсе как делаются фильтры. Я тебе уже про них писал, когда что-то вместе лоомали.

 

Я же написал, что наш скрипт только  для НР работает без ошибок и вылетов, раз у тебя игра стоит (затесть его у себя):

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

{ Game   : SamHD_TSE.exe
  Version: 
  Date   : 2016-03-17
  Author : Garik66

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(GodMod,SamHD_TSE.exe,CC 8B 01 33 C1 39 41 04) // should be unique
alloc(newmem,$1000)
label(code)
label(return)
registersymbol(GodMod)

newmem:
  cmp [ecx+A0], 2
  jne code
  cmp [ecx+A4],#45
  jne code
  mov [ecx],#99
  mov eax,[ecx]
  xor eax,ecx
  mov [ecx+04],eax

code:
  mov eax,[ecx]
  xor eax,ecx
  cmp [ecx+04],eax
  jmp return

@@:

  jmp code

GodMod+01:
  jmp newmem
  nop
  nop
return:

[DISABLE]
GodMod+01: // 008EC6EF
  db 8B 01 33 C1 39 41 04

unregistersymbol(GodMod)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "SamHD_TSE.exe"+4EC6F0

"SamHD_TSE.exe"+4EC6DA: 8B 55 08                       -  mov edx,[ebp+08]
"SamHD_TSE.exe"+4EC6DD: 89 01                          -  mov [ecx],eax
"SamHD_TSE.exe"+4EC6DF: 8B 12                          -  mov edx,[edx]
"SamHD_TSE.exe"+4EC6E1: 8B 12                          -  mov edx,[edx]
"SamHD_TSE.exe"+4EC6E3: 33 C1                          -  xor eax,ecx
"SamHD_TSE.exe"+4EC6E5: 89 51 08                       -  mov [ecx+08],edx
"SamHD_TSE.exe"+4EC6E8: 89 41 04                       -  mov [ecx+04],eax
"SamHD_TSE.exe"+4EC6EB: 5D                             -  pop ebp
"SamHD_TSE.exe"+4EC6EC: C2 08 00                       -  ret 0008
"SamHD_TSE.exe"+4EC6EF: CC                             -  int 3 
// ---------- INJECTING HERE ----------
"SamHD_TSE.exe"+4EC6F0: 8B 01                          -  mov eax,[ecx]
"SamHD_TSE.exe"+4EC6F2: 33 C1                          -  xor eax,ecx
"SamHD_TSE.exe"+4EC6F4: 39 41 04                       -  cmp [ecx+04],eax
// ---------- DONE INJECTING  ----------
"SamHD_TSE.exe"+4EC6F7: 74 0A                          -  je SamHD_TSE.exe+4EC703
"SamHD_TSE.exe"+4EC6F9: C7 05 68 A2 F5 00 01 00 00 00  -  mov [SamHD_TSE.exe+B5A268],00000001
"SamHD_TSE.exe"+4EC703: 8B 01                          -  mov eax,[ecx]
"SamHD_TSE.exe"+4EC705: C3                             -  ret 
"SamHD_TSE.exe"+4EC706: CC                             -  int 3 
"SamHD_TSE.exe"+4EC707: CC                             -  int 3 
"SamHD_TSE.exe"+4EC708: CC                             -  int 3 
"SamHD_TSE.exe"+4EC709: CC                             -  int 3 
"SamHD_TSE.exe"+4EC70A: CC                             -  int 3 
"SamHD_TSE.exe"+4EC70B: CC                             -  int 3 
}

 

мы занимались совсем другим.

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

10 минуту назад, Garik66 сказал:

Я же написал, что наш скрипт только  для НР работает без ошибок и вылетов

Я даже Игорь не проверял - ну я в обще только помочь темой по игре хотел и не более того... Щас проверю ваш скрипт... Отпишусь тогда. 

Я просто подумал тему то вам дал со скриптом :( а оказалось в обще не то... Извиняюсь ещо раз.  Жалко вот тут нету на сайте такого кода в который я вставляю ссылки, а то уже второй раз путаюсь.Ну в том смысле нету - что бы нажал и он готовый был,а я только ссылку туда вставил и всё... Хотя может он и есть, но я что то не понимаю... Я и скрытый текст то не знал где - это уж Игорь ты сказал на глазик нажать.. 

У мня скрипт твой Игорь работает тоже.. Но играть не хочу в эту игру. Надо тестировать ведь всё это, мало ли где там вылет будет в другом уровне... Но работает - сразу врубил и 99 жизней стало..

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

19 минуту назад, Garik66 сказал:

А для новой игры как я думаю Гери выходил на свою инструкцию.

1. Нашёл адрес НР.

2. Сделал анализ структур.

3. Увидел что ниже в структуре лежит предыдущее, про которое ты писал у себя на скрине (или максимальное, точно не знаю не смотрел) значение НР.

4. На этот адрес поставил бряк на чтение и вот таким образом получил инструкцию.

 

точно, сейчас поставил бряк на это значение и получил ту инструкцию Гери:

0046BB9F - 8B CF  - mov ecx,edi
0046BBA1 - E8 4A0B4800 - call SamHD_TSE.exe+4EC6F0
0046BBA6 - 39 86 98040000  - cmp [esi+00000498],eax <<
0046BBAC - 75 0B - jne SamHD_TSE.exe+6BBB9
0046BBAE - 8B CE  - mov ecx,esi

EAX=00000063
EBX=67E1AD98
ECX=7AFD8218
EDX=0046E3C0
ESI=7AFD7D90
EDI=7AFD8218
ESP=0019FD38
EBP=0019FD60
EIP=0046BBAC

 

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

Ну вот :rolleyes:  и на этой и на этой инструкции делать можно.... и не думать там о фильрах в большом количестве. Фильтр Игорь прям точный и не изменится - там прям в смещении +58 расписаны имя каждого игрока...  Скрипт который ты дал - работает тоже... Но играть и тестировать дальше его - не хочу... играть лень.

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

Только что, LIRW сказал:

Ну вот :rolleyes:  и на этой и на этой инструкции делать можно.... и не думать там о фильрах в большом количестве. Фильтр Игорь прям точный и не изменится - там прям в смещении +58 расписаны имя каждого игрока... 

Это не важно на какой инструкции. Можно сделать на любой.

Я уже писал, мы занимались добавлением через скрипт, того что ещё в игре не подбирали.

В этом случае инструкция и фильтр Гери не поможет также будет вылет из игры.

Но я кажется разобрался полностью как это можно сделать.

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

5 минут назад, LIRW сказал:

Я даже Игорь не проверял - ну я в обще только помочь темой по игре хотел и не более того... Щас проверю ваш скрипт... Отпишусь тогда. 

Я просто подумал тему то вам дал со скриптом :( а оказалось в обще не то... Извиняюсь ещо раз.  Жалко вот тут нету на сайте такого кода в который я вставляю ссылки, а то уже второй раз путаюсь.

Только предупреждаю - при внедрении в тот участок кода лучше не использовать Серьёзную Пушку (которая ядрами стреляет) - в момент выстрела игра просто крашится. Я так и не смог отловить из-за чего.

 

А за ссылки спасибо - почитал. Одна тема, фактически повтор урока от Xipho с Ютутба; ну а во второй теме посмотрел скрипт на старую версию игры, заодно в ней ссылка на тему туториала есть.

 

Правда, на этом моменте у меня мозг немного переклинило:

Цитата

Now back to the case. If You have clicked on more information, You can see the code that You have examined and the value of the registers. Make sure to remember what is between the [ ] and what is the value of the register. Now click on "Hex" left to the value box in CE, type in the value of the register and search for it. You have found the address of the pointer. Click on "Add address manually". Select pointer, and type in the address of the pointer that You have found. If You have done it right, You have added an address to the table which will "track" the location of Your health, wherever it is. 

 Я не могу сообразить где тут собака зарыта? Мы находим значение регистра. Но смысл? Нет, ну я, конечно, пробовал сделать так в Сэме но получилась чушь в 2к+ адресов, практически не отсеивающаяся.

 

P.S.

Я, наверное, не увидел ответа на вопрос, поэтому повторюсь - как, имея в скрипте цепочку байт (GodMod,SamHD_TSE.exe,CC 8B 01 33 C1 39 41 04 ), по это цепочки в Memory Viewer выйти на нужный участок кода?

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

Вот не которые смещения которые попались. Максимальное значение им не искал, они там тоже есть, но мне лень было сидеть.  

  mov [esi+00000488],#999 //heath
  mov [esi+0000049C],#999 // Armor
  mov [esi+00000A10],#200 //ammo shotsgun
  mov [esi+00000A80],#200 // ammo sniper
  mov [esi+00000A50],#200 // ognemet

 

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

Только что, SergBrNord сказал:

Я, наверное, не увидел ответа на вопрос, поэтому повторюсь - как, имея в скрипте цепочку байт (GodMod,SamHD_TSE.exe,CC 8B 01 33 C1 39 41 04 ), по это цепочки в Memory Viewer выйти на нужный участок кода?

 

 

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

Только что, LIRW сказал:

Вот не которые смещения которые попались. Максимальное значение им не искал, они там тоже есть, но мне лень было сидеть.  

 

вот здесь уже выложены многие из них, но от структуры самого НР

 

 

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

7 минут назад, Garik66 сказал:

вот здесь уже выложены многие из них, но от структуры самого НР

 

 

Гарик, я понял, как Джери вышел на другую инструкцию и собираюсь чуть попозже попробовать самому.

Я имел ввиду, как перейти к месту, изменяемому скриптом. Собственно, какой выход я нашёл:

Открывается Memory Viewer -> Копируется адрес из скрипта ("SamHD_TSE.exe"+4F483A) -> ПКМ -> Вставляется адрес.

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

17 минуту назад, SergBrNord сказал:

P.S.

Я, наверное, не увидел ответа на вопрос, поэтому повторюсь - как, имея в скрипте цепочку байт (GodMod,SamHD_TSE.exe,CC 8B 01 33 C1 39 41 04 ), по это цепочки в Memory Viewer выйти на нужный участок кода?

Я же тебе давал ссылку на   

или ты не знаешь как им воспользоваться?

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

Игорь - там есть инструкция, которая отвечает за все виды оружия,а не только по одной и зависящих от сложности игры.. Вот код комментарии если почитать к нему, то на начале кода выделенного под weapons есть инструкция, затерев или перепрыгнув её - можно сделать бесконечные патроны для всего... Эту игру ещо давненько смотрели и помню вот это... Пока что не когда смотреть игры - у меня табак взошел :)  

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

5 минут назад, SergBrNord сказал:

Не смотрел ещё просто =)

 

Короче если не поймёшь, хотя я там написал подробную инструкцию, то вот посмотри видео с 4 минуты

ЗЫ: хотя нет лучше смотреть с самого начала.

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

 

 

 

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

ну наконец то понял, что ты пишешь для этой игры.

По видимому ты так же как и я - "шмоточник" в играх и любишь проходить по максимуму, т.е. ты хочешь подобрать в игре максимум (всё) снаряжение и за это получить очки опыта. Я так тебя понял?

А так как шмотка подбирается,только если её не максимум, то ты и хочешь, чтобы значение всегда было меньше на 1.

Сейчас дошёл в игре до пирамиды и понял, как это можно сделать.

Нам не обязательно добавлять предметы в скрипте для этого - их лучше в твоём случае подбирать в игре, а вот записывать нужные значения нужно после проверки флага, который мы с тобой нашли, т.е., если во флаге 0, то пока не трогаем значение в скрипте, если 1, то пишем меньше на 1 от максимального.   

Если не справишься, то помогу написать такой скрипт.

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

 

34 минуты назад, LIRW сказал:

Игорь - там есть инструкция, которая отвечает за все виды оружия,а не только по одной и зависящих от сложности игры.. Вот код комментарии если почитать к нему, то на начале кода выделенного под weapons есть инструкция, затерев или перепрыгнув её - можно сделать бесконечные патроны для всего... Эту игру ещо давненько смотрели и помню вот это... Пока что не когда смотреть игры - у меня табак взошел :)  

А как на эту инструкцию выйти? Пробовал посмотреть, что патроны меняет - вылезает та же инструкция что и на ХП.

 

3 минуты назад, Garik66 сказал:

SergBrNord,

ну наконец то понял, что ты пишешь для этой игры.

По видимому ты так же как и я - "шмоточник" в играх и любишь проходить по максимуму, т.е. ты хочешь подобрать в игре максимум (всё) снаряжение и за это получить очки опыта. Я так тебя понял?

А так как шмотка подбирается,только если её не максимум, то ты и хочешь, чтобы значение всегда было меньше на 1.

Сейчас дошёл в игре до пирамиды и понял, как это можно сделать.

Нам не обязательно добавлять предметы в скрипте для этого - их лучше в твоём случае подбирать в игре, а вот записывать нужные значения нужно после проверки флага, который мы с тобой нашли, т.е., если во флаге 0, то пока не трогаем значение в скрипте, если 1, то пишем меньше на 1 от максимального.   

Если не справишься, то помогу написать такой скрипт.

Ну, по сути да. Только там за подбор очки даются и нахождение секретов. И я планировал для начала понять, как правильно замораживать только здоровье. Потом ради интереса подтянулась броня и до кучи - оружие. Теперь и телепорт хочу сделать Только я вот не понимаю, про какой флаг речь?

 

 

Ну и нашёл патроны ко всему оружию:

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

{ Game   : SamHD_TSE.exe
  Version:
  Date   : 2016-03-17
  Author : LIRW

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(Base,SamHD_TSE.exe,39 86 * * * * 75 * 8B CE E8 * * * * 85 C0 75)
alloc(newmem,$1000)

label(code)
label(return)

newmem:
  push ecx
  mov ecx,[esi+58]
  cmp [ecx],79616C50
  jne code
  mov [esi+00000488],#99     //Heath
  mov [esi+0000049C],#98     //Armor
  mov [esi+00000A10],#199    //shotsgun + db shotgun
  mov [esi+00000A20],#998    //tompson + minigan
  mov [esi+00000A30],#99     //rocketlauncher
  mov [esi+00000A40],#99     //grenadegun
  mov [esi+00000A50],#998    //flamethrower
  mov [esi+00000A50],#799    //lasergun
  mov [esi+00000A70],#59     //SBC
  mov [esi+00000A80],#99     //sniper rifle
  mov [esi+00000A90],#4     //bomb


code:
  pop ecx
  cmp [esi+00000498],eax
  jmp return

Base:
  jmp newmem
  nop
return:
registersymbol(Base)

[DISABLE]

Base:
  db 39 86 98 04 00 00

unregistersymbol(Base)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "SamHD_TSE.exe"+6E756

"SamHD_TSE.exe"+6E730: 74 10                 -  je SamHD_TSE.exe+6E742
"SamHD_TSE.exe"+6E732: 83 BE 38 08 00 00 00  -  cmp dword ptr [esi+00000838],00
"SamHD_TSE.exe"+6E739: 74 07                 -  je SamHD_TSE.exe+6E742
"SamHD_TSE.exe"+6E73B: 8B CE                 -  mov ecx,esi
"SamHD_TSE.exe"+6E73D: E8 5E 46 FF FF        -  call SamHD_TSE.exe+62DA0
"SamHD_TSE.exe"+6E742: 8B CE                 -  mov ecx,esi
"SamHD_TSE.exe"+6E744: E8 E7 FB 02 00        -  call SamHD_TSE.exe+9E330
"SamHD_TSE.exe"+6E749: 8D BE 88 04 00 00     -  lea edi,[esi+00000488]
"SamHD_TSE.exe"+6E74F: 8B CF                 -  mov ecx,edi
"SamHD_TSE.exe"+6E751: E8 FA 60 48 00        -  call SamHD_TSE.exe+4F4850
// ---------- INJECTING HERE ----------
"SamHD_TSE.exe"+6E756: 39 86 98 04 00 00     -  cmp [esi+00000498],eax
// ---------- DONE INJECTING  ----------
"SamHD_TSE.exe"+6E75C: 75 0B                 -  jne SamHD_TSE.exe+6E769
"SamHD_TSE.exe"+6E75E: 8B CE                 -  mov ecx,esi
"SamHD_TSE.exe"+6E760: E8 9B 1E 00 00        -  call SamHD_TSE.exe+70600
"SamHD_TSE.exe"+6E765: 85 C0                 -  test eax,eax
"SamHD_TSE.exe"+6E767: 75 19                 -  jne SamHD_TSE.exe+6E782
"SamHD_TSE.exe"+6E769: 8B 16                 -  mov edx,[esi]
"SamHD_TSE.exe"+6E76B: 8B 82 B8 06 00 00     -  mov eax,[edx+000006B8]
"SamHD_TSE.exe"+6E771: 8B CE                 -  mov ecx,esi
"SamHD_TSE.exe"+6E773: FF D0                 -  call eax
"SamHD_TSE.exe"+6E775: 8B CF                 -  mov ecx,edi
}

 

 

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

1 час назад, SergBrNord сказал:

Ну и нашёл патроны ко всему оружию:

Если у тебя не подобрано в игре, то скорее всего будет вылет из игры. Потестируй свой скрипт, например загрузи самое начало игры пока ничего нет, активируй свой скрипт и посмотри, что будет .

А потом потестируй мой (в нём использовал твои смещения, которые ты выкладывал ранее):

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

{ Game   : SamHD_TSE.exe
  Version: 
  Date   : 2016-03-18
  Author : Garik66

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(GodMod,SamHD_TSE.exe,39 86 98 04 00 00) // should be unique
alloc(newmem,$1000)
label(code)
label(return)
registersymbol(GodMod)

newmem:
  mov ecx,[esi+58]
  cmp [ecx],79616C50
  jne code
  mov [esi+00000488],#99   // HP

  cmp [esi+4a4],1
  jne @f
  mov [esi+0000049c],#99   // Armor

@@:
  cmp [esi+a18],1
  jne @f
  mov [esi+00000a10],#199  // дробовик/двустволка

@@:
  cmp [esi+a38],1
  jne @f
  mov [esi+00000a30],#99   // ракеты

@@:
  cmp [esi+a48],1
  jne @f
  mov [esi+00000a40],#99   // гранатомёт

@@:
  cmp [esi+a58],1
  jne @f
  mov [esi+00000a50],#998   // огнемёт

@@:
  cmp [esi+a68],1
  jne @f
  mov [esi+00000a60],#798   // лазерное ружьё

@@:
  cmp [esi+a78],1
  jne @f
  mov [esi+00000a70],#59   // серьёзная пушка

@@:
  cmp [esi+a88],1
  jne @f
  mov [esi+00000a80],#99   // снайперская винтовка

@@:
  cmp [esi+a98],1
  jne @f
  mov [esi+00000a90],#4   // серьёзная бомба

@@:
  cmp [esi+c28],1
  jne @f
  mov [esi+00000c20],#998  // миниган/автомат

@@:

code:
  cmp [esi+00000498],eax
  jmp return

GodMod:
  jmp newmem
  nop
return:


[DISABLE]
GodMod:
  db 39 86 98 04 00 00

unregistersymbol(GodMod)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "SamHD_TSE.exe"+6BBA6

"SamHD_TSE.exe"+6BB80: 74 10                 -  je SamHD_TSE.exe+6BB92
"SamHD_TSE.exe"+6BB82: 83 BE 38 08 00 00 00  -  cmp dword ptr [esi+00000838],00
"SamHD_TSE.exe"+6BB89: 74 07                 -  je SamHD_TSE.exe+6BB92
"SamHD_TSE.exe"+6BB8B: 8B CE                 -  mov ecx,esi
"SamHD_TSE.exe"+6BB8D: E8 1E 46 FF FF        -  call SamHD_TSE.exe+601B0
"SamHD_TSE.exe"+6BB92: 8B CE                 -  mov ecx,esi
"SamHD_TSE.exe"+6BB94: E8 B7 FD 02 00        -  call SamHD_TSE.exe+9B950
"SamHD_TSE.exe"+6BB99: 8D BE 88 04 00 00     -  lea edi,[esi+00000488]
"SamHD_TSE.exe"+6BB9F: 8B CF                 -  mov ecx,edi
"SamHD_TSE.exe"+6BBA1: E8 4A 0B 48 00        -  call SamHD_TSE.exe+4EC6F0
// ---------- INJECTING HERE ----------
"SamHD_TSE.exe"+6BBA6: 39 86 98 04 00 00     -  cmp [esi+00000498],eax
// ---------- DONE INJECTING  ----------
"SamHD_TSE.exe"+6BBAC: 75 0B                 -  jne SamHD_TSE.exe+6BBB9
"SamHD_TSE.exe"+6BBAE: 8B CE                 -  mov ecx,esi
"SamHD_TSE.exe"+6BBB0: E8 2B AE 00 00        -  call SamHD_TSE.exe+769E0
"SamHD_TSE.exe"+6BBB5: 85 C0                 -  test eax,eax
"SamHD_TSE.exe"+6BBB7: 75 19                 -  jne SamHD_TSE.exe+6BBD2
"SamHD_TSE.exe"+6BBB9: 8B 16                 -  mov edx,[esi]
"SamHD_TSE.exe"+6BBBB: 8B 82 B8 06 00 00     -  mov eax,[edx+000006B8]
"SamHD_TSE.exe"+6BBC1: 8B CE                 -  mov ecx,esi
"SamHD_TSE.exe"+6BBC3: FF D0                 -  call eax
"SamHD_TSE.exe"+6BBC5: 8B CF                 -  mov ecx,edi
}

 

 

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

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

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

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