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

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

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

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

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

 

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

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

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

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

В 26.09.2016в02:23, partoftheworlD сказал:

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

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

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

  • 2 месяца спустя...

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

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

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

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

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

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

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

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

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

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

{ 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а
Ссылка на комментарий
Поделиться на другие сайты

16 час назад, partoftheworlD сказал:

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

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

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

44 минуты назад, Submarinа сказал:

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

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

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

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

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

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

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

  • 1 год спустя...
×
×
  • Создать...

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

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