• Объявления

    • Garik66

      Пользователям форума   05.11.2017

      Прошу обратить внимание на эту тему (чтобы увидеть ссылку, войдите в объявление - нажмите на заголовок):   
elvis66666

Doom (2016) RapidFire

14 сообщений в этой теме

Подскажите в каком направлении копать, никак не могу сделать RapidFire для DOOM, может кто-то сделал и подскажет?

Пробовал искать значения таймера в момент выстрела. Пробовал перебрать вызванные функции через Ultimap. Пробовал трассировать функцию выстрела, но либо опыта не хватает, либо там ничего нет (

Но имею неделю потраченного времени, кучу крашей. При поиске значений float на увеличение таймера, получил 1000 адресов после 50 отсеиваний, которые перестали уменьшаться, проверил все, ничего не прокнуло(. С таймером в уменьшение в момент выстрела получил 1300 значений, но увы, через каждые 20-100 адресов происходили краши, возможно что-то мог пропустить.

 

P.S. меня не интересует уже готовый скрипт/таблица, мне нужно именно процесс ваших действий, для воспроизведения или совет.

0

Поделиться сообщением


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

Поищи на форуме там есть темы про скорострельность. Можно и поиском в CE найти, но тут надо полагаться на удачу, часто адрес проскакивает. А так все от движка зависит, общее только выход через патроны на функцию выстрела, а в ней уже капаться и искать адрес который приведет к проверке времени выстрела и тут все зависит от движка опять же, игры на одном движке проверяют время выстрела с 0(и тут либо таймер искать, либо в функции капаться), игры с другим движком проверяют время выстрела со временем прошлого выстрела. Второй вариант легче и вроде как часто встречается. Время прошлого выстрела найти очень просто, после выстрела таймер обнуляется и прибавляется до бесконечности каждую секунду.

1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 26.09.2016в02:23, partoftheworlD сказал:

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

Благодарю, вот так еще не пробовал. :) Будем копать.

0

Поделиться сообщением


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

Кто ни будь скорострельность находил. в DOOM 4 скажите с чего начинать, там Float значения или что-то другое.

Изменено пользователем Submarinа
0

Поделиться сообщением


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

float, с патронов начать лучше. При выстреле значение увеличивается от 0, все по стандарту. 

Изменено пользователем partoftheworlD
0

Поделиться сообщением


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

Привет. Точно Float 

Изменено пользователем Submarinа
0

Поделиться сообщением


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

Ты сам для этой игры, взламывал скорострельность. Точно там Float, я уже и так, и сак,не в какую.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Submarinа сказал:

Ты сам для этой игры, взламывал скорострельность. Точно там Float, я уже и так, и сак,не в какую.

Бери оружие с максимальной задержкой после выстрела, а это обычно дробовики, минометы всякие(Гранатометы) и найдя патроны, перейди по адресе в память в отладчике. Далее переведи отображение значений с точкой и смотри после выстрела что там происходит. Если нет не чего рядом, то искать только по времени, но это мне кажется для телепатов :) Лучше тогда найти патроны и поставить на запись BP и трассировать где не будь на тысячи 2 - 3 адресов, а дальше уже смотри сам в ручную. Я обычно так ищу... У каждого как бы способы то разные. Кенг вот на пример раньше любил затирать вызов этой функции - на примере COD1 по моему игры. Подобный способ с затиранием работает и в игре L4D2 но затерев этот call на оружии не будет не урона, не чего... Там как этот call уже идет с характеристиками оружия. 

0

Поделиться сообщением


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

Ты пожалуйста полностью пиши, а то не понятно что такое, BP

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
17 минуту назад, Submarinа сказал:

что такое, BP

breakpoint -  я сокращенно написал bp 

0

Поделиться сообщением


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

Проверти кто ни будь, вроде скорострельность.

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

{ Game   : DOOMx64.exe
  Version: 
  Date   : 2016-12-04
  Author : Silicon Valley

  This script does blah blah blah
}

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

 
 
aobscanmodule(INJECT,DOOMx64.exe,8B BE 2C 05 00 00) // should be unique
alloc(newmem,$1000,"DOOMx64.exe"+190062E5)

label(code)
label(return)

newmem:

code:
  mov edi,[rsi+0000052C]
  jmp return

INJECT:
  jmp newmem
  nop
return:
registersymbol(INJECT)

[DISABLE]
//code from here till the end of the code will be used to disable the cheat
INJECT:
  db 8B BE 2C 05 00 00

unregistersymbol(INJECT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "DOOMx64.exe"+190062E5

"DOOMx64.exe"+190062C4: 8B BC AB B0 14 00 00     -  mov edi,[rbx+rbp*4+000014B0]
"DOOMx64.exe"+190062CB: 85 FF                    -  test edi,edi
"DOOMx64.exe"+190062CD: 75 1C                    -  jne DOOMx64.exe+190062EB
"DOOMx64.exe"+190062CF: 41 38 7C 24 29           -  cmp [r12+29],dil
"DOOMx64.exe"+190062D4: 74 0F                    -  je DOOMx64.exe+190062E5
"DOOMx64.exe"+190062D6: 41 8B 04 24              -  mov eax,[r12]
"DOOMx64.exe"+190062DA: 99                       -  cdq 
"DOOMx64.exe"+190062DB: F7 BE B4 07 00 00        -  idiv [rsi+000007B4]
"DOOMx64.exe"+190062E1: 89 C7                    -  mov edi,eax
"DOOMx64.exe"+190062E3: EB 06                    -  jmp DOOMx64.exe+190062EB
// ---------- INJECTING HERE ----------
"DOOMx64.exe"+190062E5: 8B BE 2C 05 00 00        -  mov edi,[rsi+0000052C]
// ---------- DONE INJECTING  ----------
"DOOMx64.exe"+190062EB: 48 8D 8B 50 08 00 00     -  lea rcx,[rbx+00000850]
"DOOMx64.exe"+190062F2: E8 A9 91 6C FF           -  call DOOMx64.exe+186CF4A0
"DOOMx64.exe"+190062F7: 4C 8B 64 24 60           -  mov r12,[rsp+60]
"DOOMx64.exe"+190062FC: 48 85 C0                 -  test rax,rax
"DOOMx64.exe"+190062FF: 74 38                    -  je DOOMx64.exe+19006339
"DOOMx64.exe"+19006301: 48 8D 8B 50 08 00 00     -  lea rcx,[rbx+00000850]
"DOOMx64.exe"+19006308: 0F 29 74 24 20           -  movaps [rsp+20],xmm6
"DOOMx64.exe"+1900630D: E8 8E 91 6C FF           -  call DOOMx64.exe+186CF4A0
"DOOMx64.exe"+19006312: 66 0F 6E F7              -  movd xmm6,edi
"DOOMx64.exe"+19006316: 48 89 C1                 -  mov rcx,rax
}

 

Толи это скорость анимации, то ли скорострельность оружие.

Изменено пользователем Submarinа
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
16 час назад, partoftheworlD сказал:

float, с патронов начать лучше. При выстреле значение увеличивается от 0, все по стандарту. 

Далеко смешения находится, от патронов.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
44 минуты назад, Submarinа сказал:

Далеко смешения находится, от патронов.

Трудно сказать у всех игр по разному оно находиться.

Я когда искал рапиду делал так...поиск неизвестного значения 2байта (Изменилось - не изменилось), а ещё выстави диапазон поиска памяти типа как у патронов адреса с небольшим запасом, что бы сеять адресов меньше пришлось, да и нагрузки на озу будет меньше.

Наверняка от адреса патронов, адрес рапиды не далеко находиться.

0

Поделиться сообщением


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

В том та и дело, что походу далеко, я структуру проверил на 8000 тысяч адресов, нет скорострельности хоть убей.

Изменено пользователем Submarinа
0

Поделиться сообщением


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

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас