Submarina Опубликовано 28 февраля, 2017 Поделиться Опубликовано 28 февраля, 2017 (изменено) Привет всем, помогите найти урон от оружия, в структуре здоровья смотрел вроде нету,так же смотрел в структуре оружия.я знаю что урон его высчитать можно, я это сделал взял здоровье врага, и увеличил его до 1000 и выстрелил в него, и посмотрел сколько отняло, но где лежит сам урон, я не знаю, я так думаю он рядом где то с жизнями. Есть скрипт на здоровье, если надо. Скрытый текст [ENABLE] aobscanmodule(Health,SniperElite3.exe,0F 2F 84 32 D0 FB FF FF 73) alloc(newmem,2048) label(returnhere) label(originalcode) newmem: mov [edx+esi-00000430],(float)300 originalcode: comiss xmm0,[edx+esi-00000430] jmp returnhere Health: jmp newmem nop nop nop returnhere: registersymbol(Health) [DISABLE] Health: db 0F 2F 84 32 D0 FB FF FF unregistersymbol(Health) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "SniperElite3.exe"+474339 "SniperElite3.exe"+474310: F3 0F 11 86 54 FE FF FF - movss [esi-000001AC],xmm0 "SniperElite3.exe"+474318: 8B 96 8C FB FF FF - mov edx,[esi-00000474] "SniperElite3.exe"+47431E: 8B 42 44 - mov eax,[edx+44] "SniperElite3.exe"+474321: 8D 8E 8C FB FF FF - lea ecx,[esi-00000474] "SniperElite3.exe"+474327: FF D0 - call eax "SniperElite3.exe"+474329: 0F 57 C0 - xorps xmm0,xmm0 "SniperElite3.exe"+47432C: 84 C0 - test al,al "SniperElite3.exe"+47432E: 74 35 - je SniperElite3.exe+474365 "SniperElite3.exe"+474330: 8B 8E 90 FB FF FF - mov ecx,[esi-00000470] "SniperElite3.exe"+474336: 8B 51 08 - mov edx,[ecx+08] // ---------- INJECTING HERE ---------- "SniperElite3.exe"+474339: 0F 2F 84 32 D0 FB FF FF - comiss xmm0,[edx+esi-00000430] // ---------- DONE INJECTING ---------- "SniperElite3.exe"+474341: 73 22 - jae SniperElite3.exe+474365 "SniperElite3.exe"+474343: 83 BE 50 FC FF FF 03 - cmp dword ptr [esi-000003B0],03 "SniperElite3.exe"+47434A: 74 19 - je SniperElite3.exe+474365 "SniperElite3.exe"+47434C: 8D 8E 8C FB FF FF - lea ecx,[esi-00000474] "SniperElite3.exe"+474352: E8 49 2D FF FF - call SniperElite3.exe+4670A0 "SniperElite3.exe"+474357: 8D 8E 8C FB FF FF - lea ecx,[esi-00000474] "SniperElite3.exe"+47435D: E8 EE 2B FF FF - call SniperElite3.exe+466F50 "SniperElite3.exe"+474362: 0F 57 C0 - xorps xmm0,xmm0 "SniperElite3.exe"+474365: F3 0F 10 8E E8 FD FF FF - movss xmm1,[esi-00000218] "SniperElite3.exe"+47436D: 0F 2F C8 - comiss xmm1,xmm0 } Вот скрипт, на точность. Скрытый текст [ENABLE] aobscanmodule(Accuracy,SniperElite3.exe,F3 0F 10 86 C8 00 00 00 F3 0F 5E) alloc(newmem,2048) label(returnhere) label(originalcode) newmem: mov [esi+000000C8],(float)0 originalcode: movss xmm0,[esi+000000C8] jmp returnhere Accuracy: jmp newmem nop nop nop returnhere: registersymbol(Accuracy) [DISABLE] Accuracy: db F3 0F 10 86 C8 00 00 00 unregistersymbol(Accuracy) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "SniperElite3.exe"+52FE72 "SniperElite3.exe"+52FE53: EB 05 - jmp SniperElite3.exe+52FE5A "SniperElite3.exe"+52FE55: B8 01 00 00 00 - mov eax,00000001 "SniperElite3.exe"+52FE5A: 84 C0 - test al,al "SniperElite3.exe"+52FE5C: 74 11 - je SniperElite3.exe+52FE6F "SniperElite3.exe"+52FE5E: 8B 75 D8 - mov esi,[ebp-28] "SniperElite3.exe"+52FE61: B0 01 - mov al,01 "SniperElite3.exe"+52FE63: A2 17 A0 E3 00 - mov [SniperElite3.exe+A3A017],al "SniperElite3.exe"+52FE68: A2 1C A0 E3 00 - mov [SniperElite3.exe+A3A01C],al "SniperElite3.exe"+52FE6D: EB 03 - jmp SniperElite3.exe+52FE72 "SniperElite3.exe"+52FE6F: 8B 75 D8 - mov esi,[ebp-28] // ---------- INJECTING HERE ---------- "SniperElite3.exe"+52FE72: F3 0F 10 86 C8 00 00 00 - movss xmm0,[esi+000000C8] // ---------- DONE INJECTING ---------- "SniperElite3.exe"+52FE7A: F3 0F 5E 05 E4 0D D2 00 - divss xmm0,[SniperElite3.exe+920DE4] "SniperElite3.exe"+52FE82: F3 0F 10 0D F8 8A CE 00 - movss xmm1,[SniperElite3.exe+8E8AF8] "SniperElite3.exe"+52FE8A: F3 0F 59 0D 20 8B B7 00 - mulss xmm1,[SniperElite3.exe+778B20] "SniperElite3.exe"+52FE92: F3 0F 11 05 28 A0 E3 00 - movss [SniperElite3.exe+A3A028],xmm0 "SniperElite3.exe"+52FE9A: F3 0F 5E C1 - divss xmm0,xmm1 "SniperElite3.exe"+52FE9E: F3 0F 11 05 2C A0 E3 00 - movss [SniperElite3.exe+A3A02C],xmm0 "SniperElite3.exe"+52FEA6: 8B 8F E0 02 00 00 - mov ecx,[edi+000002E0] "SniperElite3.exe"+52FEAC: 8B 01 - mov eax,[ecx] "SniperElite3.exe"+52FEAE: 8B 80 A0 00 00 00 - mov eax,[eax+000000A0] "SniperElite3.exe"+52FEB4: 8D 55 E0 - lea edx,[ebp-20] } Изменено 28 февраля, 2017 пользователем Submarina 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 28 февраля, 2017 Поделиться Опубликовано 28 февраля, 2017 (изменено) Ставь бряк на запись на здоровье, а после ищи где новое здоровье рассчитывается. И скорее всего урон будет лежать в отдельной структуре. Изменено 28 февраля, 2017 пользователем partoftheworlD Ссылка на комментарий Поделиться на другие сайты Поделиться
Submarina Опубликовано 1 марта, 2017 Автор Поделиться Опубликовано 1 марта, 2017 (изменено) Вроде нашёл урон оружия, сделал бряк на запись, на здоровья врага, вышел на вот такую инструкцию, поставил nop на эту subss xmm1,xmm7 но в самой инструкции, почему то не адресов, то есть когда просматриваешь эту инструкцию, там почему то не адресов. Поставил nop на инструкцию, и начал стрелять по врагу, здоровья врага не отнималось,также и здоровья игрока тоже не отнималось, поставил мину на землю, и начал по ней стрелять, мина не взрывается. подскажите как правильно написать эту инструкцию, на урон. Скрытый текст [ENABLE] aobscanmodule(INJECT,SniperElite3.exe,F3 0F 5C CF 0F 2F CE F3 0F 11 4B) alloc(newmem,$1000,INJECT) label(code) label(return) newmem: code: subss xmm1,xmm7 comiss xmm1,xmm6 jmp return INJECT: jmp newmem nop nop return: registersymbol(INJECT) [DISABLE] INJECT: db F3 0F 5C CF 0F 2F CE unregistersymbol(INJECT) dealloc(newmem) Изменено 1 марта, 2017 пользователем Submarina Ссылка на комментарий Поделиться на другие сайты Поделиться
Dison Опубликовано 3 марта, 2017 Поделиться Опубликовано 3 марта, 2017 В 01.03.2017в11:25, Submarina сказал: Вроде нашёл урон оружия, сделал бряк на запись, на здоровья врага, вышел на вот такую инструкцию, поставил nop на эту subss xmm1,xmm7 но в самой инструкции, почему то не адресов, то есть когда просматриваешь эту инструкцию, там почему то не адресов. Поставил nop на инструкцию, и начал стрелять по врагу, здоровья врага не отнималось,также и здоровья игрока тоже не отнималось, поставил мину на землю, и начал по ней стрелять, мина не взрывается. подскажите как правильно написать эту инструкцию, на урон. Показать содержимое [ENABLE] aobscanmodule(INJECT,SniperElite3.exe,F3 0F 5C CF 0F 2F CE F3 0F 11 4B) alloc(newmem,$1000,INJECT) label(code) label(return) newmem: code: subss xmm1,xmm7 comiss xmm1,xmm6 jmp return INJECT: jmp newmem nop nop return: registersymbol(INJECT) [DISABLE] INJECT: db F3 0F 5C CF 0F 2F CE unregistersymbol(INJECT) dealloc(newmem) не как, не правильная инструкция... Ссылка на комментарий Поделиться на другие сайты Поделиться
Submarina Опубликовано 5 марта, 2017 Автор Поделиться Опубликовано 5 марта, 2017 Это инструкция отвечает за урон игрока, а не оружия, а инструкцию на урон оружия я так и не нашёл, на СЕ форуме читал что где кординаты оружия, там и урон лежит, я кординаты прицела нашёл, там нет урона, где мене ещё можно поискать урон на оружия, ищу в первые. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 5 марта, 2017 Поделиться Опубликовано 5 марта, 2017 1 минуту назад, Submarina сказал: где мене ещё можно поискать урон на оружия, ищу в первые. Предполагаю, что так: Патроны -> Структура оружия -> Урон оружия. Ссылка на комментарий Поделиться на другие сайты Поделиться
Submarina Опубликовано 5 марта, 2017 Автор Поделиться Опубликовано 5 марта, 2017 (изменено) Привет Игорь я пробовал, но урона на оружия, там нет. Пробывал менял значения пока игра не вылетела, в структурк патронов точно урона не нашёл, где то в другой структуре, находится видимо. Изменено 5 марта, 2017 пользователем Submarina Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 5 марта, 2017 Поделиться Опубликовано 5 марта, 2017 (изменено) 48 минуты назад, Garik66 сказал: Предполагаю, что так: Патроны -> Структура оружия -> Урон оружия. Скорее всего в игре есть структура характеристик патрон как в battlefield, в которых хранятся баллистические показатели пули. 45 минуты назад, Submarina сказал: но урона на оружия, там нет. Чтобы найти урон тебе надо здоровье ковырять в определенный момент ты найдешь вычисление здоровья, структуру в которой хранится урон и много чего еще. Мне кажется навряд ли оружие или патроны на прямую используют характеристики и поэтому маловероятно что ты найдешь через структуры патрон или оружия урон. Изменено 5 марта, 2017 пользователем partoftheworlD Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 5 марта, 2017 Поделиться Опубликовано 5 марта, 2017 16 минуту назад, partoftheworlD сказал: Скорее всего в игре есть структура характеристик патрон как в battlefield, в которых хранятся баллистические показатели пули. Хорошо тогда немного изменю поиск урона именно оружия: Вариант 1 Текущее кол-во патронов в рожке-> Бряк -> Структура характеристик патрон-> Max Кол-во патрон в рожке -> Бряк -> Структура оружия -> Урон оружия (методом научного тыка). Или через НР_ГГ Вариант 2 НР_ГГ -> записывающая инструкция -> выше по игровому коду ищем расчёт нового HP -> смотрим что отнимается от предыдущего значения НР -> выходим на инструкцию работающую с уроном. Ссылка на комментарий Поделиться на другие сайты Поделиться
Submarina Опубликовано 5 марта, 2017 Автор Поделиться Опубликовано 5 марта, 2017 В структуре игрока, есть инструкция значения в ней byte на дак вот, если поставить это значения на 0 и начать стрелять по врагу, то у него жизни не отнимаются, если поставить мину на дорогу, и стрелять в неё, то она не взрывается, но если прибавить значения, то вся нормально, и враги убиваются и мина при попадании в неё взрывается, но урон от это-го не прибавляется. Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 5 марта, 2017 Поделиться Опубликовано 5 марта, 2017 (изменено) 1 час назад, Garik66 сказал: Вариант 2 НР_ГГ -> записывающая инструкция -> выше по игровому коду ищем расчёт нового HP -> смотрим что отнимается от предыдущего значения НР -> выходим на инструкцию работающую с уроном. Я решил посмотреть что там с игрой, правда 2-й частью игры, но тут урон это константа. Т.е если осколки - сносит 0,1 хп, если попадание то 2.5 сносит., граната 5,0 V65 берется из стека. if ( v29 && v30 && sub_185350(v16, &v60) && sub_22CA40(-1773941975, v59) && sub_202E50(-967545528, 0) ) { Damage = v65 - 5.0; v73 = 0; sub_3A24A0(3, &v60, 0); sub_3E0640(v16); dword_750C78 = 0; *(v7 + 112) |= 4u; goto LABEL_66; } Изменено 5 марта, 2017 пользователем partoftheworlD Ссылка на комментарий Поделиться на другие сайты Поделиться
Submarina Опубликовано 5 марта, 2017 Автор Поделиться Опубликовано 5 марта, 2017 (изменено) Понял, сейчас поищу. Изменено 5 марта, 2017 пользователем Submarina Ссылка на комментарий Поделиться на другие сайты Поделиться
Submarina Опубликовано 5 марта, 2017 Автор Поделиться Опубликовано 5 марта, 2017 (изменено) Там всего одна инструкция, вылазить пошарил по коду, выше нашёл subss xmm0,[ebp+08] при обнулении этой инструкции, урон не на носится, но это не та инструкция, так и не пойму где лежит урон. У тебя скрипт есть для sniper elite 2 http://imglink.ru/pictures/06-03-17/23680e2be1aec24d93ca6cf039b6c5af.jpg Изменено 5 марта, 2017 пользователем Submarina Ссылка на комментарий Поделиться на другие сайты Поделиться
Submarina Опубликовано 8 марта, 2017 Автор Поделиться Опубликовано 8 марта, 2017 Не могу найти расчёт нового HP. немерено уже структур про шарил. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 8 марта, 2017 Поделиться Опубликовано 8 марта, 2017 3 часа назад, Submarina сказал: Не могу найти расчёт нового HP. немерено уже структур про шарил. Баракуда, потесть скрипт сам (мне некогда): Скрытый текст { Game : SniperElite3.exe Version: Date : 2017-03-08 Author : Garik66 This script does blah blah blah } [ENABLE] aobscanmodule(damage,SniperElite3.exe,F3 0F 11 46 40 72 0E) // should be unique alloc(newmem,$1000) label(code) label(return) label(plusdamage) registersymbol(damage) newmem: subss xmm0,[plusdamage] code: movss [esi+40],xmm0 jmp return plusdamage: dd (float)5000 damage: jmp newmem return: [DISABLE] damage: db F3 0F 11 46 40 unregistersymbol(damage) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "SniperElite3.exe"+E3027 "SniperElite3.exe"+E300A: 75 50 - jne SniperElite3.exe+E305C "SniperElite3.exe"+E300C: 8B 06 - mov eax,[esi] "SniperElite3.exe"+E300E: 8B 10 - mov edx,[eax] "SniperElite3.exe"+E3010: 8B CE - mov ecx,esi "SniperElite3.exe"+E3012: FF D2 - call edx "SniperElite3.exe"+E3014: D9 5D FC - fstp dword ptr [ebp-04] "SniperElite3.exe"+E3017: F3 0F 10 46 40 - movss xmm0,[esi+40] "SniperElite3.exe"+E301C: F3 0F 5C 45 08 - subss xmm0,[ebp+08] "SniperElite3.exe"+E3021: 0F 57 C9 - xorps xmm1,xmm1 "SniperElite3.exe"+E3024: 0F 2F C8 - comiss xmm1,xmm0 // ---------- INJECTING HERE ---------- "SniperElite3.exe"+E3027: F3 0F 11 46 40 - movss [esi+40],xmm0 // ---------- DONE INJECTING ---------- "SniperElite3.exe"+E302C: 72 0E - jb SniperElite3.exe+E303C "SniperElite3.exe"+E302E: 8B 06 - mov eax,[esi] "SniperElite3.exe"+E3030: 8B 50 44 - mov edx,[eax+44] "SniperElite3.exe"+E3033: 8B CE - mov ecx,esi "SniperElite3.exe"+E3035: F3 0F 11 4E 40 - movss [esi+40],xmm1 "SniperElite3.exe"+E303A: FF D2 - call edx "SniperElite3.exe"+E303C: 8B 06 - mov eax,[esi] "SniperElite3.exe"+E303E: 8B 10 - mov edx,[eax] "SniperElite3.exe"+E3040: 8B CE - mov ecx,esi "SniperElite3.exe"+E3042: FF D2 - call edx } Вот тут: "SniperElite3.exe"+E301C: F3 0F 5C 45 08 - subss xmm0,[ebp+08] по сути и сидит дамаг в [ebp+08]. ЗЫ: Только я не фильтровал, так что у врагов тоже урон увеличин. Ссылка на комментарий Поделиться на другие сайты Поделиться
Submarina Опубликовано 8 марта, 2017 Автор Поделиться Опубликовано 8 марта, 2017 Хорошо сейчас Ссылка на комментарий Поделиться на другие сайты Поделиться
Dison Опубликовано 8 марта, 2017 Поделиться Опубликовано 8 марта, 2017 3 часа назад, Submarina сказал: Хорошо сейчас Хочешь дам совет, забей сходи на форум CE и слепи трейнер, какие проблемы не пойму? У тебя это хорошо получается... // Dison, прочитай правила форума 2.2. Если, у тебя есть какие то доказательства, а не предположения, то нужно разбираться другим способом, а то у тебя уже были бездоказательные наезды на пользователей. Пока устное предупреждение. Garik66 Ссылка на комментарий Поделиться на другие сайты Поделиться
Submarina Опубликовано 8 марта, 2017 Автор Поделиться Опубликовано 8 марта, 2017 (изменено) В каком смысле, хорошо получается. И причём тут CE форум Изменено 8 марта, 2017 пользователем Submarina Ссылка на комментарий Поделиться на другие сайты Поделиться
Dison Опубликовано 10 марта, 2017 Поделиться Опубликовано 10 марта, 2017 Да не я против нечего не имею. Просто может там есть то что он ищет. В плане урона, я даже и не думал на него наезжать. Баракуда без обид.... Ссылка на комментарий Поделиться на другие сайты Поделиться
Submarina Опубликовано 10 марта, 2017 Автор Поделиться Опубликовано 10 марта, 2017 (изменено) Я на тебя и не обижался, а на се форум я почти не захожу, мене лучше здесь помощи попросить, чем сидет и переводить корявым переводчиком, то что там написано. Изменено 10 марта, 2017 пользователем Submarina Ссылка на комментарий Поделиться на другие сайты Поделиться
Dison Опубликовано 10 марта, 2017 Поделиться Опубликовано 10 марта, 2017 16 минуту назад, Submarina сказал: Я на тебя и не обижался, а на се форум я почти не захожу, мене лучше здесь помощи попросить, чем сидет и переводить корявым переводчиком, то что там написано. Ну то что касается переводчика то ты прав. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения