Garik66 Опубликовано 3 августа, 2016 Поделиться Опубликовано 3 августа, 2016 (изменено) Пишем скрипт "God Mod + One Hit Kill" для игры "Warcraft 3 Frozen Throne" по заявке пользователя. Скрытый текст { Game : war3.exe Version: Date : 2016-08-03 Author : Garik66 This script does blah blah blah } [ENABLE] aobscanmodule(GodMod,Game.dll,57 8B CE 89 17) // should be unique alloc(newmem,$1000) label(code) label(return) label(flag) registersymbol(flag) registersymbol(GodMod) newmem: cmp byte ptr [edi+13],14 jne @f mov edx,[edi+0C] // GodMod jmp code @@: cmp [flag],1 jne code mov edx,0 // OneHitCill code: push edi mov ecx,esi mov [edi],edx jmp return flag: dd 0 GodMod: jmp newmem return: [DISABLE] GodMod: db 57 8B CE 89 17 unregistersymbol(flag) unregistersymbol(GodMod) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "Game.dll"+4A9304 "Game.dll"+4A92EE: D9 02 - fld dword ptr [edx] "Game.dll"+4A92F0: DE D9 - fcompp "Game.dll"+4A92F2: DF E0 - fnstsw ax "Game.dll"+4A92F4: F6 C4 05 - test ah,05 "Game.dll"+4A92F7: 7B 02 - jnp Game.dll+4A92FB "Game.dll"+4A92F9: 8B D1 - mov edx,ecx "Game.dll"+4A92FB: 8B 12 - mov edx,[edx] "Game.dll"+4A92FD: 6A 00 - push 00 "Game.dll"+4A92FF: 8D 44 24 0C - lea eax,[esp+0C] "Game.dll"+4A9303: 50 - push eax // ---------- INJECTING HERE ---------- "Game.dll"+4A9304: 57 - push edi "Game.dll"+4A9305: 8B CE - mov ecx,esi "Game.dll"+4A9307: 89 17 - mov [edi],edx // ---------- DONE INJECTING ---------- "Game.dll"+4A9309: E8 22 FF FF FF - call Game.dll+4A9230 "Game.dll"+4A930E: 5F - pop edi "Game.dll"+4A930F: 5E - pop esi "Game.dll"+4A9310: 59 - pop ecx "Game.dll"+4A9311: C2 04 00 - ret 0004 "Game.dll"+4A9314: CC - int 3 "Game.dll"+4A9315: CC - int 3 "Game.dll"+4A9316: CC - int 3 "Game.dll"+4A9317: CC - int 3 "Game.dll"+4A9318: CC - int 3 Видео: И табличка: Окончательные скрипты и табличку выложил здесь. Изменено 6 августа, 2016 пользователем Garik66 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
gmz Опубликовано 3 августа, 2016 Поделиться Опубликовано 3 августа, 2016 2 часа назад, Garik66 сказал: И табличка: на v1.27.0.52240 фейл Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 3 августа, 2016 Автор Поделиться Опубликовано 3 августа, 2016 1 минуту назад, gmz сказал: на v1.27.0.52240 фейл На видео видно, что у меня версия игры 1.26a. Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 4 августа, 2016 Поделиться Опубликовано 4 августа, 2016 О, меня на канале тоже просили сделать, но у меня не было на это времени. Молодец, Гарик ) Ссылка на комментарий Поделиться на другие сайты Поделиться
Shan0x228 Опубликовано 4 августа, 2016 Поделиться Опубликовано 4 августа, 2016 Гарик, спасибо вам) 2 часа назад, Xipho сказал: О, меня на канале тоже просили сделать, но у меня не было на это времени. Молодец, Гарик ) Тоже я просил) Ссылка на комментарий Поделиться на другие сайты Поделиться
saiberpro Опубликовано 4 августа, 2016 Поделиться Опубликовано 4 августа, 2016 Молодец Гар, познавательно было. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
krocki Опубликовано 4 августа, 2016 Поделиться Опубликовано 4 августа, 2016 (изменено) Аммм...я уже давно это сделал тут. Изменено 4 августа, 2016 пользователем krocki Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 4 августа, 2016 Автор Поделиться Опубликовано 4 августа, 2016 20 минуты назад, krocki сказал: Аммм...я уже давно это сделал тут. И? А кто-то ещё раньше написал саму игру. 6 часов назад, Xipho сказал: О, меня на канале тоже просили сделать, но у меня не было на это времени. Молодец, Гарик ) 4 часа назад, saiberpro сказал: Молодец Гар, познавательно было. Спасибо на добром слове! Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 4 августа, 2016 Автор Поделиться Опубликовано 4 августа, 2016 (изменено) Warcraft 3 Frozen Throne God Mod and One Hit Kill часть 2 В этом видео меняем фильтр в первом скрипте, добавляем в него InfiniteMana и пишем следующий скрипт Characteristics Hero: где вытаскиваем характеристики героя: опыт, сила, очки улучшений, ловкость и ещё одну. Скрипт "God Mod + One Hit Kill + Infinite Mana": Скрытый текст { Game : war3.exe Version: Date : 2016-08-03 Author : Garik66 This script does blah blah blah } [ENABLE] aobscanmodule(GodMod,Game.dll,57 8B CE 89 17) // should be unique alloc(newmem,$1000) label(code) label(return) label(flag) registersymbol(flag) registersymbol(GodMod) newmem: cmp [edi+68],0 je @f mov edx,[edi+98] // Infinite Mana mov [edi+8C],edx mov edx,[edi+0C] // GodMod jmp code @@: cmp [flag],1 jne code mov edx,0 // OneHitCill code: push edi mov ecx,esi mov [edi],edx jmp return flag: dd 0 GodMod: jmp newmem return: [DISABLE] GodMod: db 57 8B CE 89 17 unregistersymbol(flag) unregistersymbol(GodMod) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "Game.dll"+4A9304 "Game.dll"+4A92EE: D9 02 - fld dword ptr [edx] "Game.dll"+4A92F0: DE D9 - fcompp "Game.dll"+4A92F2: DF E0 - fnstsw ax "Game.dll"+4A92F4: F6 C4 05 - test ah,05 "Game.dll"+4A92F7: 7B 02 - jnp Game.dll+4A92FB "Game.dll"+4A92F9: 8B D1 - mov edx,ecx "Game.dll"+4A92FB: 8B 12 - mov edx,[edx] "Game.dll"+4A92FD: 6A 00 - push 00 "Game.dll"+4A92FF: 8D 44 24 0C - lea eax,[esp+0C] "Game.dll"+4A9303: 50 - push eax // ---------- INJECTING HERE ---------- "Game.dll"+4A9304: 57 - push edi "Game.dll"+4A9305: 8B CE - mov ecx,esi "Game.dll"+4A9307: 89 17 - mov [edi],edx // ---------- DONE INJECTING ---------- "Game.dll"+4A9309: E8 22 FF FF FF - call Game.dll+4A9230 "Game.dll"+4A930E: 5F - pop edi "Game.dll"+4A930F: 5E - pop esi "Game.dll"+4A9310: 59 - pop ecx "Game.dll"+4A9311: C2 04 00 - ret 0004 "Game.dll"+4A9314: CC - int 3 "Game.dll"+4A9315: CC - int 3 "Game.dll"+4A9316: CC - int 3 "Game.dll"+4A9317: CC - int 3 "Game.dll"+4A9318: CC - int 3 } Скрипт "Characteristics Hero": Скрытый текст { Game : war3.exe Version: Date : 2016-08-04 Author : Garik66 This script does blah blah blah } [ENABLE] aobscanmodule(Xar,Game.dll,8B 80 8C 00 00 00 C3) // should be unique alloc(newmem,$1000) label(code) label(return) label(P_Hero) registersymbol(P_Hero) registersymbol(Xar) newmem: mov [P_Hero],eax code: mov eax,[eax+0000008C] jmp return P_Hero: dd 0 Xar: jmp newmem nop return: [DISABLE] Xar: db 8B 80 8C 00 00 00 unregistersymbol(P_Hero) unregistersymbol(Xar) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "Game.dll"+26EB3B "Game.dll"+26EB26: E9 85 90 F9 FF - jmp Game.dll+207BB0 "Game.dll"+26EB2B: CC - int 3 "Game.dll"+26EB2C: CC - int 3 "Game.dll"+26EB2D: CC - int 3 "Game.dll"+26EB2E: CC - int 3 "Game.dll"+26EB2F: CC - int 3 "Game.dll"+26EB30: 8B 81 F0 01 00 00 - mov eax,[ecx+000001F0] "Game.dll"+26EB36: 85 C0 - test eax,eax "Game.dll"+26EB38: 75 01 - jne Game.dll+26EB3B "Game.dll"+26EB3A: C3 - ret // ---------- INJECTING HERE ---------- "Game.dll"+26EB3B: 8B 80 8C 00 00 00 - mov eax,[eax+0000008C] // ---------- DONE INJECTING ---------- "Game.dll"+26EB41: C3 - ret "Game.dll"+26EB42: CC - int 3 "Game.dll"+26EB43: CC - int 3 "Game.dll"+26EB44: CC - int 3 "Game.dll"+26EB45: CC - int 3 "Game.dll"+26EB46: CC - int 3 "Game.dll"+26EB47: CC - int 3 "Game.dll"+26EB48: CC - int 3 "Game.dll"+26EB49: CC - int 3 "Game.dll"+26EB4A: CC - int 3 Видео: Сама табличка: Окончательные скрипты и табличку выложил здесь. Изменено 6 августа, 2016 пользователем Garik66 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
krocki Опубликовано 5 августа, 2016 Поделиться Опубликовано 5 августа, 2016 В 03.08.2016в23:24, Garik66 сказал: по заявке пользователя. Просто кому то лень было воспользоваться поиском! Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 5 августа, 2016 Автор Поделиться Опубликовано 5 августа, 2016 20 минуты назад, krocki сказал: Просто кому то лень было воспользоваться поиском! Человек попросил именно урок, а не готовую таблицу (или трейнер), тем более игра старая и как и таблиц, так и трейнеров в Инете думаю полно. Ссылка на комментарий Поделиться на другие сайты Поделиться
Shan0x228 Опубликовано 5 августа, 2016 Поделиться Опубликовано 5 августа, 2016 1 час назад, krocki сказал: Просто кому то лень было воспользоваться поиском! Как написано выше, мне не нужны таблицы и тд..., меня интересует сам процесс взлома. Я новичок, эта игра вызвала много вопросов, на которые Гарик ответил в своих видео за что ему отдельное спасибо. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
krocki Опубликовано 5 августа, 2016 Поделиться Опубликовано 5 августа, 2016 Ясно! Тогда вот ещё чит...а то в моей старой таблице только карта открывается. Открыть карту и рассеять туман войны. [ENABLE] Game.dll+406B56: db C6 43 10 00 Game.dll+406B5C: db C6 43 14 00 [DISABLE] Game.dll+406B56: db C6 43 10 01 Game.dll+406B5C: db C6 43 14 01 Ссылка на комментарий Поделиться на другие сайты Поделиться
Shan0x228 Опубликовано 5 августа, 2016 Поделиться Опубликовано 5 августа, 2016 Спасибо) 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 6 августа, 2016 Автор Поделиться Опубликовано 6 августа, 2016 (изменено) Warcraft 3 Frozen Throne God Mod and One Hit Kill часть 3 В этом видео немного переделываем скрипты, рассуждаем про фильтры, находим урон, добавляем характеристики для редактирования. Итого скрипты: "God Mod ": Скрытый текст { Game : war3.exe Version: Date : 2016-08-03 Author : Garik66 This script does blah blah blah } [ENABLE] aobscanmodule(GodMod,Game.dll,57 8B CE 89 17) // should be unique alloc(newmem,$1000) label(code) label(return) registersymbol(GodMod) newmem: cmp [edi+28],000061D7 jne @f mov edx,[edi+0C] // GodMod code: push edi mov ecx,esi mov [edi],edx jmp return GodMod: jmp newmem return: [DISABLE] GodMod: db 57 8B CE 89 17 unregistersymbol(GodMod) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "Game.dll"+4A9304 "Game.dll"+4A92EE: D9 02 - fld dword ptr [edx] "Game.dll"+4A92F0: DE D9 - fcompp "Game.dll"+4A92F2: DF E0 - fnstsw ax "Game.dll"+4A92F4: F6 C4 05 - test ah,05 "Game.dll"+4A92F7: 7B 02 - jnp Game.dll+4A92FB "Game.dll"+4A92F9: 8B D1 - mov edx,ecx "Game.dll"+4A92FB: 8B 12 - mov edx,[edx] "Game.dll"+4A92FD: 6A 00 - push 00 "Game.dll"+4A92FF: 8D 44 24 0C - lea eax,[esp+0C] "Game.dll"+4A9303: 50 - push eax // ---------- INJECTING HERE ---------- "Game.dll"+4A9304: 57 - push edi "Game.dll"+4A9305: 8B CE - mov ecx,esi "Game.dll"+4A9307: 89 17 - mov [edi],edx // ---------- DONE INJECTING ---------- "Game.dll"+4A9309: E8 22 FF FF FF - call Game.dll+4A9230 "Game.dll"+4A930E: 5F - pop edi "Game.dll"+4A930F: 5E - pop esi "Game.dll"+4A9310: 59 - pop ecx "Game.dll"+4A9311: C2 04 00 - ret 0004 "Game.dll"+4A9314: CC - int 3 "Game.dll"+4A9315: CC - int 3 "Game.dll"+4A9316: CC - int 3 "Game.dll"+4A9317: CC - int 3 "Game.dll"+4A9318: CC - int 3 } "Characteristics Hero": Скрытый текст { Game : war3.exe Version: Date : 2016-08-04 Author : Garik66 This script does blah blah blah } [ENABLE] aobscanmodule(Xar,Game.dll,8B 80 8C 00 00 00 C3) // should be unique alloc(newmem,$1000) label(code) label(return) label(P_Hero) registersymbol(P_Hero) registersymbol(Xar) newmem: mov [P_Hero],eax code: mov eax,[eax+0000008C] jmp return P_Hero: dd 0 Xar: jmp newmem nop return: [DISABLE] Xar: db 8B 80 8C 00 00 00 unregistersymbol(P_Hero) unregistersymbol(Xar) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "Game.dll"+26EB3B "Game.dll"+26EB26: E9 85 90 F9 FF - jmp Game.dll+207BB0 "Game.dll"+26EB2B: CC - int 3 "Game.dll"+26EB2C: CC - int 3 "Game.dll"+26EB2D: CC - int 3 "Game.dll"+26EB2E: CC - int 3 "Game.dll"+26EB2F: CC - int 3 "Game.dll"+26EB30: 8B 81 F0 01 00 00 - mov eax,[ecx+000001F0] "Game.dll"+26EB36: 85 C0 - test eax,eax "Game.dll"+26EB38: 75 01 - jne Game.dll+26EB3B "Game.dll"+26EB3A: C3 - ret // ---------- INJECTING HERE ---------- "Game.dll"+26EB3B: 8B 80 8C 00 00 00 - mov eax,[eax+0000008C] // ---------- DONE INJECTING ---------- "Game.dll"+26EB41: C3 - ret "Game.dll"+26EB42: CC - int 3 "Game.dll"+26EB43: CC - int 3 "Game.dll"+26EB44: CC - int 3 "Game.dll"+26EB45: CC - int 3 "Game.dll"+26EB46: CC - int 3 "Game.dll"+26EB47: CC - int 3 "Game.dll"+26EB48: CC - int 3 "Game.dll"+26EB49: CC - int 3 "Game.dll"+26EB4A: CC - int 3 } "Infinite Mana": Скрытый текст { Game : war3.exe Version: Date : 2016-08-06 Author : Garik66 This script does blah blah blah } [ENABLE] aobscanmodule(InfiniteMana,Game.dll,8B 3A 8B DF 81 E3 00 00 80 7F) // should be unique alloc(newmem,$1000) label(code) label(return) label(pointer) registersymbol(pointer) registersymbol(InfiniteMana) newmem: cmp [edx+28],000061D7 jne code mov edi,[edx+0c] // Infinite HP mov [edx],edi mov edi,[edx+98] // Infinite Mana mov [edx+8C],edi mov [pointer],edx code: mov edi,[edx] mov ebx,edi and ebx,7F800000 jmp return pointer: dd 0 InfiniteMana: jmp newmem db 90 90 90 90 90 return: [DISABLE] InfiniteMana: db 8B 3A 8B DF 81 E3 00 00 80 7F unregistersymbol(pointer) unregistersymbol(InfiniteMana) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "Game.dll"+6EF005 "Game.dll"+6EEFFB: CC - int 3 "Game.dll"+6EEFFC: CC - int 3 "Game.dll"+6EEFFD: CC - int 3 "Game.dll"+6EEFFE: CC - int 3 "Game.dll"+6EEFFF: CC - int 3 "Game.dll"+6EF000: 51 - push ecx "Game.dll"+6EF001: 53 - push ebx "Game.dll"+6EF002: 55 - push ebp "Game.dll"+6EF003: 56 - push esi "Game.dll"+6EF004: 57 - push edi // ---------- INJECTING HERE ---------- "Game.dll"+6EF005: 8B 3A - mov edi,[edx] "Game.dll"+6EF007: 8B DF - mov ebx,edi "Game.dll"+6EF009: 81 E3 00 00 80 7F - and ebx,7F800000 // ---------- DONE INJECTING ---------- "Game.dll"+6EF00F: 89 4C 24 10 - mov [esp+10],ecx "Game.dll"+6EF013: 74 52 - je Game.dll+6EF067 "Game.dll"+6EF015: 8B 44 24 18 - mov eax,[esp+18] "Game.dll"+6EF019: 8B 00 - mov eax,[eax] "Game.dll"+6EF01B: 8B E8 - mov ebp,eax "Game.dll"+6EF01D: 81 E5 00 00 80 7F - and ebp,7F800000 "Game.dll"+6EF023: 74 69 - je Game.dll+6EF08E "Game.dll"+6EF025: 8B D7 - mov edx,edi "Game.dll"+6EF027: 81 E2 FF FF 7F 00 - and edx,007FFFFF "Game.dll"+6EF02D: 81 CA 00 00 80 00 - or edx,vehdebug-i386.dll } "Damage + 10000": Скрытый текст { Game : war3.exe Version: Date : 2016-08-06 Author : Garik66 This script does blah blah blah } [ENABLE] aobscanmodule(Damage,Game.dll,03 84 BE A0 00 00 00) // should be unique alloc(newmem,$1000) label(code) label(return) label(BonusDamage) registersymbol(Damage) newmem: cmp [esi+0c],000061DE jne code add eax,[BonusDamage] code: add eax,[esi+edi*4+000000A0] jmp return BonusDamage: dd 10000 Damage: jmp newmem db 90 90 return: [DISABLE] Damage: db 03 84 BE A0 00 00 00 unregistersymbol(Damage) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "Game.dll"+C6966 "Game.dll"+C6940: 51 - push ecx "Game.dll"+C6941: 56 - push esi "Game.dll"+C6942: 57 - push edi "Game.dll"+C6943: 68 50 24 DE 02 - push Game.dll+8B2450 "Game.dll"+C6948: 8B F1 - mov esi,ecx "Game.dll"+C694A: 8B BE B8 02 00 00 - mov edi,[esi+000002B8] "Game.dll"+C6950: 68 D1 0F 00 00 - push 00000FD1 "Game.dll"+C6955: 68 38 24 DE 02 - push Game.dll+8B2438 "Game.dll"+C695A: E8 21 15 47 00 - call Game.dll+537E80 "Game.dll"+C695F: 8B 84 BE AC 00 00 00 - mov eax,[esi+edi*4+000000AC] // ---------- INJECTING HERE ---------- "Game.dll"+C6966: 03 84 BE A0 00 00 00 - add eax,[esi+edi*4+000000A0] // ---------- DONE INJECTING ---------- "Game.dll"+C696D: 8B 8C BE 94 00 00 00 - mov ecx,[esi+edi*4+00000094] "Game.dll"+C6974: 8B 94 BE 88 00 00 00 - mov edx,[esi+edi*4+00000088] "Game.dll"+C697B: 83 C4 0C - add esp,0C "Game.dll"+C697E: 68 F4 E4 FD 02 - push Game.dll+AAE4F4 "Game.dll"+C6983: 50 - push eax "Game.dll"+C6984: 51 - push ecx "Game.dll"+C6985: 52 - push edx "Game.dll"+C6986: BA 02 00 00 00 - mov edx,00000002 "Game.dll"+C698B: 8D 4C 24 18 - lea ecx,[esp+18] "Game.dll"+C698F: E8 BC E9 1B 00 - call Game.dll+285350 } Видео: И табличка: war3.CT Изменено 6 августа, 2016 пользователем Garik66 2 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения