Goblin Опубликовано 2 июля, 2016 Поделиться Опубликовано 2 июля, 2016 Как ни старался не смог найти длину (дистанцию поражения) ножа в игре Return to Castle Wolfenstein, выручайте Ссылка на комментарий Поделиться на другие сайты Поделиться
2zolo2 Опубликовано 2 июля, 2016 Поделиться Опубликовано 2 июля, 2016 Goblin, ну рассказывай как искал, что пробовал? Ссылка на комментарий Поделиться на другие сайты Поделиться
Goblin Опубликовано 2 июля, 2016 Автор Поделиться Опубликовано 2 июля, 2016 Пробовал искать через структуру персонажа, пробовал найти характеристики автомата и уже отталкиваясь от них искать, может где то не далеко лежат и характеристики ножа, в итоге безуспешно просадил на поиск весь день Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 3 июля, 2016 Поделиться Опубликовано 3 июля, 2016 18 час назад, Goblin сказал: Пробовал искать через структуру персонажа, пробовал найти характеристики автомата и уже отталкиваясь от них искать, может где то не далеко лежат и характеристики ножа, в итоге безуспешно просадил на поиск весь день Предложу такой вариант: 1. Выход на структуру инвентаря (вещмешок, сундук или что там у тебя в игре) - через стакающиеся (которые складываются) предметы. (Пример) Можно использовать тот же автомат (через кол-во патронов), но структура инвентаря будет выше структуры самого автомата. 2. Находим поинтеры предметов в инвентаре (используй тот же автомат). 3. По аналогии с автоматом, теперь уже находим нож и выходим на структуру самого ножа. 4. Исследуем структуру ножа и выходим на дистанцию поражения. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Goblin Опубликовано 3 июля, 2016 Автор Поделиться Опубликовано 3 июля, 2016 (изменено) 8 часов назад, Garik66 сказал: Предложу такой вариант: 1. Выход на структуру инвентаря (вещмешок, сундук или что там у тебя в игре) - через стакающиеся (которые складываются) предметы. (Пример) Можно использовать тот же автомат (через кол-во патронов), но структура инвентаря будет выше структуры самого автомата. 2. Находим поинтеры предметов в инвентаре (используй тот же автомат). 3. По аналогии с автоматом, теперь уже находим нож и выходим на структуру самого ножа. 4. Исследуем структуру ножа и выходим на дистанцию поражения. Ладно, сейчас будем пробовать, спасибо за совет Изменено 3 июля, 2016 пользователем Goblin Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 4 июля, 2016 Поделиться Опубликовано 4 июля, 2016 Ну в игре то по моему инвентаря нету. От патроны он на вряд ли выйдет в структуре на нож. Так как пусть даже смещение то и одинаковое будет, но сама структура то разная для каждого вида оружия, а то есть сами адреса. Вот на пример взять мр40 и пистолет кольт. Они расположены пусть даже под одним смещением, но с разными адресами. Он будет искать сам даже не зная чего. Когда ищешь точность какую либо, то уже отталкиваешься от самого прицела - пусть даже он и визуальный, но начало от чего оттолкнуться есть. А вот нож это уже трудно - только в Иде код смотреть, либо сидеть с недельку, другую пока не надоест искать. В ассемблерных инструкциях он может где и рядом, но он же их не прочтет. Можно попробовать ещо в Олли комментарии посмотреть и уже от них выйти. А так искать - не зная даже чего, без толку. Конечно он ищет адрес, но какой он ? их там миллионы, а самое главное с адресом наверное не чего и не происходит. Даже если и искать анимацию этого ножа - на вряд ли она чем то поможет. Так что только либо в Иде либо в Оли, а по другому это пустая трата времени. Вот если бы я решил за подобное взяться, я бы начал с комментариев - по тому как по другому искать, я даже ну не могу предположить как. Но я говорю за себя - может кому что в голову то и по умнее придет. Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 4 июля, 2016 Поделиться Опубликовано 4 июля, 2016 (изменено) ID оружия найти и выйти на структуру ножа или искать HEX неизвестное изменилось/не изменилось при смене оружия сразу найти указатель на адрес структуры оружия?. Черт, не прочитал первый пост, вообще дистанция поражения может находится вообще не в структуре оружия, а например в где-нибудь в характеристиках ГГ которое будет статичным значением подгружаемым при загрузке игры. Если есть рукопашная атака, нож, топор меняй их и ищи float изменилось/не изменилось, есть вероятность что у них разный радиус действия. Как вариант через наносимый урон выйти на функцию primaryAttack которая работает со всем оружием и после уже используя нож пройтись отладчиком. Изменено 4 июля, 2016 пользователем partoftheworlD Ссылка на комментарий Поделиться на другие сайты Поделиться
Goblin Опубликовано 4 июля, 2016 Автор Поделиться Опубликовано 4 июля, 2016 28 минуты назад, partoftheworlD сказал: ID оружия найти и выйти на структуру ножа или искать HEX неизвестное изменилось/не изменилось при смене оружия сразу найти указатель на адрес структуры оружия?. Черт, не прочитал первый пост, вообще дистанция поражения может находится вообще не в структуре оружия, а например в где-нибудь в характеристиках которое будет статичным значением которое подгружается при загрузке игры. Если есть рукопашная атака, нож, топор меняй их и ищи float изменилось/не изменилось, есть вероятность что у них разный радиус действия. Кроме ножа нету другого оружия ближнего боя Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 4 июля, 2016 Поделиться Опубликовано 4 июля, 2016 (изменено) Качнул игру, у меня версия Скрытый текст Version: [R.G._Mechanics]_Return_to_Castle_Wolfenstein.torrent Версия игры - v 1.42c Вырезан мультиплеер Ничего не перекодировано Русификатор текста/звука от Фаргус/7Wolf/Русский проект Русификаторы адаптированы под последнюю версию игры (by spider91) Возможность выбора сочетания текста и озвучки Быренько посмотрел (пока время было) структурку: Патроны по смещению +0298. Адрес патронов статичный qagamex86.dll+6E3378 или 206E3378. ID (враг/герой) по смещению +060с (у нашего WolfPlay). По смещению +5e4 поинтер на активное оружие ( у пистолета P->00020000, у ножа P->00010000). Думаю что вот здесь и нужно копать дальше. Изменено 4 июля, 2016 пользователем Garik66 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 4 июля, 2016 Поделиться Опубликовано 4 июля, 2016 Короче ломает копать, но вроде всё в одной структуре, все адреса статичные (зелёные). Вот два скриптика написал, пока лазил: 1. Infinite ammo Скрытый текст { Game : WolfSP.exe Version: [R.G._Mechanics]_Return_to_Castle_Wolfenstein.torrent Версия игры - v 1.42c Вырезан мультиплеер Ничего не перекодировано Русификатор текста/звука от Фаргус/7Wolf/Русский проект Русификаторы адаптированы под последнюю версию игры (by spider91) Возможность выбора сочетания текста и озвучки Date : 2016-07-04 Author : Garik66 This script does blah blah blah } [ENABLE] aobscanmodule(Ammo,qagamex86.dll,FC 89 84 8A 90 02 00 00) // should be unique alloc(newmem,$1000) label(code) label(return) registersymbol(Ammo) newmem: //cmp ecx,02 // пистолет //jne code mov eax,[edx+ecx*4+00000290] code: mov [edx+ecx*4+00000290],eax jmp return Ammo+01: jmp newmem db 90 90 return: [DISABLE] Ammo+01: db 89 84 8A 90 02 00 00 unregistersymbol(Ammo) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "qagamex86.dll"+45747 "qagamex86.dll"+4571F: 75 07 - jne qagamex86.dll+45728 "qagamex86.dll"+45721: C7 45 FC 0B 00 00 00 - mov [ebp-04],0000000B "qagamex86.dll"+45728: A1 F0 C7 72 20 - mov eax,[qagamex86.dll+72C7F0] "qagamex86.dll"+4572D: 8B 08 - mov ecx,[eax] "qagamex86.dll"+4572F: 8B 55 FC - mov edx,[ebp-04] "qagamex86.dll"+45732: 8B 84 91 90 02 00 00 - mov eax,[ecx+edx*4+00000290] "qagamex86.dll"+45739: 2B 45 0C - sub eax,[ebp+0C] "qagamex86.dll"+4573C: 8B 0D F0 C7 72 20 - mov ecx,[qagamex86.dll+72C7F0] "qagamex86.dll"+45742: 8B 11 - mov edx,[ecx] "qagamex86.dll"+45744: 8B 4D FC - mov ecx,[ebp-04] // ---------- INJECTING HERE ---------- "qagamex86.dll"+45747: 89 84 8A 90 02 00 00 - mov [edx+ecx*4+00000290],eax // ---------- DONE INJECTING ---------- "qagamex86.dll"+4574E: 5F - pop edi "qagamex86.dll"+4574F: 5E - pop esi "qagamex86.dll"+45750: 5B - pop ebx "qagamex86.dll"+45751: 8B E5 - mov esp,ebp "qagamex86.dll"+45753: 5D - pop ebp "qagamex86.dll"+45754: C3 - ret "qagamex86.dll"+45755: CC - int 3 "qagamex86.dll"+45756: CC - int 3 "qagamex86.dll"+45757: CC - int 3 "qagamex86.dll"+45758: CC - int 3 } Адрес Ammo - qagamex86.dll+6E3378. 2. God Mod Скрытый текст { Game : WolfSP.exe Version: Version: [R.G._Mechanics]_Return_to_Castle_Wolfenstein.torrent Версия игры - v 1.42c Вырезан мультиплеер Ничего не перекодировано Русификатор текста/звука от Фаргус/7Wolf/Русский проект Русификаторы адаптированы под последнюю версию игры (by spider91) Возможность выбора сочетания текста и озвучки Date : 2016-07-04 Author : Garik66 This script does blah blah blah } [ENABLE] aobscanmodule(HP,qagamex86.dll,89 8A D8 03 00 00 8B 45 08 83 B8 A8) // should be unique alloc(newmem,$1000) label(code) label(return) registersymbol(HP) newmem: mov eax,[edx+0450] cmp [eax],'play' jne code mov ecx,[edx+000003D8] code: mov [edx+000003D8],ecx jmp return HP: jmp newmem db 90 return: [DISABLE] HP: db 89 8A D8 03 00 00 unregistersymbol(HP) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "qagamex86.dll"+5BD7D "qagamex86.dll"+5BD52: 8B 45 08 - mov eax,[ebp+08] "qagamex86.dll"+5BD55: 8B 88 A8 02 00 00 - mov ecx,[eax+000002A8] "qagamex86.dll"+5BD5B: 8B 55 24 - mov edx,[ebp+24] "qagamex86.dll"+5BD5E: 89 91 08 07 00 00 - mov [ecx+00000708],edx "qagamex86.dll"+5BD64: 83 7D F8 00 - cmp dword ptr [ebp-08],00 "qagamex86.dll"+5BD68: 0F 84 1B 02 00 00 - je qagamex86.dll+5BF89 "qagamex86.dll"+5BD6E: 8B 45 08 - mov eax,[ebp+08] "qagamex86.dll"+5BD71: 8B 88 D8 03 00 00 - mov ecx,[eax+000003D8] "qagamex86.dll"+5BD77: 2B 4D F8 - sub ecx,[ebp-08] "qagamex86.dll"+5BD7A: 8B 55 08 - mov edx,[ebp+08] // ---------- INJECTING HERE ---------- "qagamex86.dll"+5BD7D: 89 8A D8 03 00 00 - mov [edx+000003D8],ecx // ---------- DONE INJECTING ---------- "qagamex86.dll"+5BD83: 8B 45 08 - mov eax,[ebp+08] "qagamex86.dll"+5BD86: 83 B8 A8 02 00 00 00 - cmp dword ptr [eax+000002A8],00 "qagamex86.dll"+5BD8D: 74 33 - je qagamex86.dll+5BDC2 "qagamex86.dll"+5BD8F: 83 7D 24 20 - cmp dword ptr [ebp+24],20 "qagamex86.dll"+5BD93: 74 2D - je qagamex86.dll+5BDC2 "qagamex86.dll"+5BD95: 8B 45 10 - mov eax,[ebp+10] "qagamex86.dll"+5BD98: 3B 45 0C - cmp eax,[ebp+0C] "qagamex86.dll"+5BD9B: 75 25 - jne qagamex86.dll+5BDC2 "qagamex86.dll"+5BD9D: 8B 45 08 - mov eax,[ebp+08] "qagamex86.dll"+5BDA0: 83 B8 D8 03 00 00 D8 - cmp dword ptr [eax+000003D8],-28 } адрес HP - qagamex86.dll+579118. Ну и табличка: WolfSP.CT Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 6 июля, 2016 Поделиться Опубликовано 6 июля, 2016 В 02.07.2016в12:43, Goblin сказал: Как ни старался не смог найти длину (дистанцию поражения) ножа в игре Return to Castle Wolfenstein, выручайте Если ещё тема актуальна, то записал видео-урок по писку дистанции поражения но на другой игре - Fallout2 (Accuracy - 95 %; Distance defeat MAX and No reload).. Ссылка на комментарий Поделиться на другие сайты Поделиться
Goblin Опубликовано 10 июля, 2016 Автор Поделиться Опубликовано 10 июля, 2016 Garik66, огромное спасибо за видеоурок! Очень полезный. А не подскажите по какому принципу искать дистанцию на которой я могу взаимодействовать с предметами? (Обыскать тело, нажать рычаг, открыть дверь, подобрать предмет) 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 11 июля, 2016 Поделиться Опубликовано 11 июля, 2016 (изменено) 20 часа назад, Goblin сказал: Garik66, огромное спасибо за видеоурок! Очень полезный. За это и от меня спасибо!!! 20 часа назад, Goblin сказал: А не подскажите по какому принципу искать дистанцию на которой я могу взаимодействовать с предметами? (Обыскать тело, нажать рычаг, открыть дверь, подобрать предмет) Я этого никогда не делал, но предположу, что в этом случае дистанция до нужного предмета будет расчётным значением, т.е. находиться в регистрах (стеке может быть) и просто поиском значения ты на него не выйдешь (нужно исследовать код). На код в данном случае выходить скорее всего придётся из координат героя, т.е. начинать нужно с поиска координат. Изменено 11 июля, 2016 пользователем Garik66 Ссылка на комментарий Поделиться на другие сайты Поделиться
Goblin Опубликовано 11 июля, 2016 Автор Поделиться Опубликовано 11 июля, 2016 1 минуту назад, Garik66 сказал: За это и от меня спасибо!!! Я этого никогда не делал, но предположу, что в этом случае дистанция до нужного предмета будет расчётным значением, т.е. находиться в регистрах (стеке может быть) и просто поиском значения ты на него не выйдешь (нужно исследовать код). На код в данном случае выходить скорее всего придётся из координат героя, т.е. начинать нужно с поиска координат. Еще раз большое спасибо! Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения