Garik66 Опубликовано 4 апреля, 2016 Поделиться Опубликовано 4 апреля, 2016 Времени на уточнение, какие скрипты проверял и как, не имею к сожалению. Думаю вылет связан именно со сверкой с шифрованным значением, как будет время, попробую переписать скрипт, чтобы ты его потестил. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 4 апреля, 2016 Поделиться Опубликовано 4 апреля, 2016 SergBrNord, переписал скрипт (пока только для НР = 99), в самом начале побегал, по подбирал аптечки - вылетов нет. Потесть теперь уже сам (у меня времени нет этим заниматься), если вылетов не будет и у тебя, то добавим в скрипт патроны и всё оружие. Скрытый текст { Game : SamHD_TSE.exe Version: Date : 2016-04-04 Author : Garik66 This script does blah blah blah } [ENABLE] aobscanmodule(player,SamHD_TSE.exe,39 86 98 04 00 00) // should be unique aobscanmodule(GodMod1,SamHD_TSE.exe,CC 8B 01 33 C1 39 41 04) alloc(newmem,$1000) label(newmem1) label(code) label(code1) label(return) label(return1) label(p_player) registersymbol(p_player) registersymbol(player) registersymbol(GodMod1) newmem: mov ecx,[esi+58] cmp [ecx],79616C50 // Проверенный фильтр - "play". jne code mov [p_player],esi // указатель на начала структуры ГГ code: cmp [esi+00000498],eax jmp return newmem1: cmp [p_player],0 // на всякий случай (чтобы не было вылетов), если вторая инструкция сработает раньше, чем первая. je code1 mov eax,[p_player] lea eax,[eax+488] cmp ecx,eax // Если инструкция работает со структурой ГГ в данный момент, то записываем в адрес здоровья #99. jne code1 mov [ecx],#99 mov eax,[ecx] xor eax,ecx // XORируем значение НР через адрес НР и mov [ecx+04],eax // Записываем его в нужный адрес (в следующий адрес после адреса НР, через 4 байта). code1: mov eax,[ecx] xor eax,ecx cmp [ecx+04],eax jmp return1 p_player: dd 0 player: jmp newmem nop return: GodMod1+01: jmp newmem1 nop nop return1: [DISABLE] player: db 39 86 98 04 00 00 GodMod1+01: db 8B 01 33 C1 39 41 04 unregistersymbol(p_player) unregistersymbol(player) unregistersymbol(GodMod1) 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 } { // 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 } 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
SergBrNord Опубликовано 10 апреля, 2016 Автор Поделиться Опубликовано 10 апреля, 2016 В 04.04.2016в19:25, Garik66 сказал: SergBrNord, переписал скрипт (пока только для НР = 99), в самом начале побегал, по подбирал аптечки - вылетов нет. Проверил - падает. Проблема не в фильтрах или скрипте. Проблема в достаточно нестабильном движке. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 11 апреля, 2016 Поделиться Опубликовано 11 апреля, 2016 23 часа назад, SergBrNord сказал: Проверил - падает. Проблема не в фильтрах или скрипте. Проблема в достаточно нестабильном движке. Ну да. Говорили уже об недоделанном репаке раньше. Нужна лицензия. Я почитал сообщения репака, ссылку на который мне дал SergBrNord. Там пишут, что разработчики специально поломали некоторые файлы игры (борьба против пиратов), и только после обновления со Стим эти файлы принимают нормальный вид. Так что, как делали репакеры я не знаю (по-видимому не очень справились), но ошибка явно специально деланная разработчиками. Ссылка на комментарий Поделиться на другие сайты Поделиться
SergBrNord Опубликовано 12 апреля, 2016 Автор Поделиться Опубликовано 12 апреля, 2016 Гарик, у меня лицензия =) Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения