Гость BoratObama Опубликовано 15 марта, 2019 Поделиться Опубликовано 15 марта, 2019 Доброго времени суток. Отчаялся от безуспешных попыток написать фильтр отделяющий своё здоровье от здоровья врага и открытием карты. Прошу помощи. Я новичок в этой сфере, посмотрев все уроки от gamehacklab получилось частично создать парочку скриптов на мапхак , бесконечную энергию , убрать туман войны, но занявшись god_mode обнаружил, что без вашей помощи мне не обойтись. Прикреплю наработки скриптов (сильно не смейтесь, я только учусь, буду рад поправкам и советам) Спойлер \\ Бесконечная энергия [ENABLE] aobscanmodule(ennn,BattleForge.exe,D9 47 54 D9 44 24 14) alloc(newmem,$1000) label(code) label(return) newmem: mov [edi+54],(float)600 mov [edi+58],(float)600 mov [edi+68],(float)300 mov [edi+6C],(float)300 code: fld dword ptr [edi+54] fld dword ptr [esp+14] jmp return ennn: jmp newmem nop nop return: registersymbol(ennn) [DISABLE] ennn: db D9 47 54 D9 44 24 14 unregistersymbol(ennn) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "BattleForge.exe"+1195A2A "BattleForge.exe"+1195A07: 8B 47 60 - mov eax,[edi+60] "BattleForge.exe"+1195A0A: DD 05 10 86 C5 01 - fld qword ptr [BattleForge.exe+1858610] "BattleForge.exe"+1195A10: 85 C0 - test eax,eax "BattleForge.exe"+1195A12: D8 C9 - fmul st(0),st(1) "BattleForge.exe"+1195A14: 89 44 24 28 - mov [esp+28],eax "BattleForge.exe"+1195A18: DB 44 24 28 - fild dword ptr [esp+28] "BattleForge.exe"+1195A1C: 7D 06 - jnl BattleForge.exe+1195A24 "BattleForge.exe"+1195A1E: D8 05 04 93 A6 01 - fadd dword ptr [BattleForge.exe+1669304] "BattleForge.exe"+1195A24: DE F9 - fdivp st(1),st(0) "BattleForge.exe"+1195A26: D9 5C 24 14 - fstp dword ptr [esp+14] // ---------- INJECTING HERE ---------- "BattleForge.exe"+1195A2A: D9 47 54 - fld dword ptr [edi+54] "BattleForge.exe"+1195A2D: D9 44 24 14 - fld dword ptr [esp+14] // ---------- DONE INJECTING ---------- "BattleForge.exe"+1195A31: DE D9 - fcompp "BattleForge.exe"+1195A33: DF E0 - fnstsw ax "BattleForge.exe"+1195A35: F6 C4 01 - test ah,01 "BattleForge.exe"+1195A38: 75 13 - jne BattleForge.exe+1195A4D "BattleForge.exe"+1195A3A: 83 7D 34 13 - cmp dword ptr [ebp+34],13 "BattleForge.exe"+1195A3E: 75 0D - jne BattleForge.exe+1195A4D "BattleForge.exe"+1195A40: 8B CD - mov ecx,ebp "BattleForge.exe"+1195A42: DD D8 - fstp st(0) "BattleForge.exe"+1195A44: E8 F7 4F FB FF - call BattleForge.exe+114AA40 "BattleForge.exe"+1195A49: D9 44 24 24 - fld dword ptr [esp+24] } Спойлер // MapHack [ENABLE] aobscanmodule(maphack,BattleForge.exe,8D 3C 51 33 C9) alloc(newmem,$1000) label(code) label(return) newmem: code: nop nop nop xor ecx,ecx jmp return maphack: jmp code return: registersymbol(maphack) [DISABLE] maphack: db 8D 3C 51 33 C9 unregistersymbol(maphack) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "BattleForge.exe"+BC175F "BattleForge.exe"+BC173D: 39 46 58 - cmp [esi+58],eax "BattleForge.exe"+BC1740: 89 54 24 20 - mov [esp+20],edx "BattleForge.exe"+BC1744: D9 6C 24 18 - fldcw [esp+18] "BattleForge.exe"+BC1748: 89 44 24 44 - mov [esp+44],eax "BattleForge.exe"+BC174C: 76 59 - jna BattleForge.exe+BC17A7 "BattleForge.exe"+BC174E: 8B 4C 24 20 - mov ecx,[esp+20] "BattleForge.exe"+BC1752: 8D 14 08 - lea edx,[eax+ecx] "BattleForge.exe"+BC1755: 0F AF 53 04 - imul edx,[ebx+04] "BattleForge.exe"+BC1759: 03 54 24 1C - add edx,[esp+1C] "BattleForge.exe"+BC175D: 8B 0B - mov ecx,[ebx] // ---------- INJECTING HERE ---------- "BattleForge.exe"+BC175F: 8D 3C 51 - lea edi,[ecx+edx*2] "BattleForge.exe"+BC1762: 33 C9 - xor ecx,ecx // ---------- DONE INJECTING ---------- "BattleForge.exe"+BC1764: 39 4E 54 - cmp [esi+54],ecx "BattleForge.exe"+BC1767: 76 32 - jna BattleForge.exe+BC179B "BattleForge.exe"+BC1769: 0F B7 54 24 28 - movzx edx,word ptr [esp+28] "BattleForge.exe"+BC176E: 8B FF - mov edi,edi "BattleForge.exe"+BC1770: 0F B7 07 - movzx eax,word ptr [edi] "BattleForge.exe"+BC1773: F7 D8 - neg eax "BattleForge.exe"+BC1775: 8D 1C 02 - lea ebx,[edx+eax] "BattleForge.exe"+BC1778: C1 F8 10 - sar eax,10 "BattleForge.exe"+BC177B: C1 FB 10 - sar ebx,10 "BattleForge.exe"+BC177E: 24 3F - and al,3F } Спойлер // Туман войны [ENABLE] aobscanmodule(fog,BattleForge.exe,24 3F 0A D8 88 5D 00) alloc(newmem,$1000) label(code) label(return) newmem: code: nop nop or bl,al mov [ebp+00],bl jmp return fog: jmp code nop nop return: registersymbol(fog) [DISABLE] fog: db 24 3F 0A D8 88 5D 00 unregistersymbol(fog) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "BattleForge.exe"+BC177E "BattleForge.exe"+BC1762: 33 C9 - xor ecx,ecx "BattleForge.exe"+BC1764: 39 4E 54 - cmp [esi+54],ecx "BattleForge.exe"+BC1767: 76 32 - jna BattleForge.exe+BC179B "BattleForge.exe"+BC1769: 0F B7 54 24 28 - movzx edx,word ptr [esp+28] "BattleForge.exe"+BC176E: 8B FF - mov edi,edi "BattleForge.exe"+BC1770: 0F B7 07 - movzx eax,word ptr [edi] "BattleForge.exe"+BC1773: F7 D8 - neg eax "BattleForge.exe"+BC1775: 8D 1C 02 - lea ebx,[edx+eax] "BattleForge.exe"+BC1778: C1 F8 10 - sar eax,10 "BattleForge.exe"+BC177B: C1 FB 10 - sar ebx,10 // ---------- INJECTING HERE ---------- "BattleForge.exe"+BC177E: 24 3F - and al,3F "BattleForge.exe"+BC1780: 0A D8 - or bl,al "BattleForge.exe"+BC1782: 88 5D 00 - mov [ebp+00],bl // ---------- DONE INJECTING ---------- "BattleForge.exe"+BC1785: 83 C1 01 - add ecx,01 "BattleForge.exe"+BC1788: 83 C7 02 - add edi,02 "BattleForge.exe"+BC178B: 83 C5 01 - add ebp,01 "BattleForge.exe"+BC178E: 3B 4E 54 - cmp ecx,[esi+54] "BattleForge.exe"+BC1791: 72 DD - jb BattleForge.exe+BC1770 "BattleForge.exe"+BC1793: 8B 5C 24 2C - mov ebx,[esp+2C] "BattleForge.exe"+BC1797: 8B 44 24 44 - mov eax,[esp+44] "BattleForge.exe"+BC179B: 83 C0 01 - add eax,01 "BattleForge.exe"+BC179E: 3B 46 58 - cmp eax,[esi+58] "BattleForge.exe"+BC17A1: 89 44 24 44 - mov [esp+44],eax } Спойлер // GodMode [ENABLE] aobscanmodule(BRANNOK,BattleForge.exe,D9 40 50 EB 02 D9 EE D9) alloc(newmem,$1000) label(code) label(return) newmem: push dword ptr [eax+54] pop dword ptr [eax+50] code: fld dword ptr [eax+50] jmp BattleForge.exe+DBB903 jmp return BRANNOK: jmp newmem return: registersymbol(BRANNOK) [DISABLE] BRANNOK: db D9 40 50 EB 02 unregistersymbol(BRANNOK) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "BattleForge.exe"+DBB8FC "BattleForge.exe"+DBB8E0: 83 7E 34 01 - cmp dword ptr [esi+34],01 "BattleForge.exe"+DBB8E4: 75 2D - jne BattleForge.exe+DBB913 "BattleForge.exe"+DBB8E6: 6A 08 - push 08 "BattleForge.exe"+DBB8E8: 8B CE - mov ecx,esi "BattleForge.exe"+DBB8EA: E8 41 F8 35 00 - call BattleForge.exe+111B130 "BattleForge.exe"+DBB8EF: 85 C0 - test eax,eax "BattleForge.exe"+DBB8F1: 74 0E - je BattleForge.exe+DBB901 "BattleForge.exe"+DBB8F3: 6A 08 - push 08 "BattleForge.exe"+DBB8F5: 8B CE - mov ecx,esi "BattleForge.exe"+DBB8F7: E8 04 F8 35 00 - call BattleForge.exe+111B100 // ---------- INJECTING HERE ---------- "BattleForge.exe"+DBB8FC: D9 40 50 - fld dword ptr [eax+50] "BattleForge.exe"+DBB8FF: EB 02 - jmp BattleForge.exe+DBB903 // ---------- DONE INJECTING ---------- "BattleForge.exe"+DBB901: D9 EE - fldz "BattleForge.exe"+DBB903: D9 5C 24 10 - fstp dword ptr [esp+10] "BattleForge.exe"+DBB907: D9 44 24 10 - fld dword ptr [esp+10] "BattleForge.exe"+DBB90B: D8 44 24 0C - fadd dword ptr [esp+0C] "BattleForge.exe"+DBB90F: D9 5C 24 0C - fstp dword ptr [esp+0C] "BattleForge.exe"+DBB913: 83 C7 04 - add edi,04 "BattleForge.exe"+DBB916: 3B 7B 04 - cmp edi,[ebx+04] "BattleForge.exe"+DBB919: 75 B5 - jne BattleForge.exe+DBB8D0 "BattleForge.exe"+DBB91B: 5E - pop esi "BattleForge.exe"+DBB91C: D9 44 24 08 - fld dword ptr [esp+08] } Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 16 марта, 2019 Поделиться Опубликовано 16 марта, 2019 Привет, трассировку кода пробовал? У меня есть в одном из видео, как я с помощью трассировки определяю, где код расходится для игрока и врагов, и там я делаю инъекцию, чтобы работало только для игрока. Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость BoratObama Опубликовано 17 марта, 2019 Поделиться Опубликовано 17 марта, 2019 (изменено) В 16.03.2019 в 14:36, Xipho сказал: Привет, трассировку кода пробовал? У меня есть в одном из видео, как я с помощью трассировки определяю, где код расходится для игрока и врагов, и там я делаю инъекцию, чтобы работало только для игрока. Если вы про урок Staple Intersection на примере игры "серьёзный сэм" , то да, пробовал, и через экранное значение, ничего не вышло(опыта маловато). Спойлер (это экранное значение) складывается ощущение, что собственное здоровье и здоровье врагов в разных регистрах, но инструкция обрабатывает их одна. Спойлер Изменено 17 марта, 2019 пользователем BoratObama Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 17 марта, 2019 Поделиться Опубликовано 17 марта, 2019 3 часа назад, BoratObama сказал: Если вы про урок Staple Intersection на примере игры "серьёзный сэм" Посмотри еще вот этот урок Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения