DeadCraft Опубликовано 17 апреля, 2017 Поделиться Опубликовано 17 апреля, 2017 Ну я не на столько деревянный в этом плане =) Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 17 апреля, 2017 Автор Поделиться Опубликовано 17 апреля, 2017 3 минуты назад, DeadCraft сказал: Ну я не на столько деревянный в этом плане =) ну не знаю. Сейчас загрузил игру по новой - у меня всё работает. Короче - дождись видео, поймёшь где ошибаешься. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
DeadCraft Опубликовано 17 апреля, 2017 Поделиться Опубликовано 17 апреля, 2017 Версия игры я так понимаю 1.13c ? 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 17 апреля, 2017 Автор Поделиться Опубликовано 17 апреля, 2017 1 час назад, DeadCraft сказал: Версия игры я так понимаю 1.13c ? Разобрались по скайпу. У DeadCraft 1/13D, у меня скорее всего 1.13c . И как оказалось для разных героев тоже iD героя меняется, так что в следующем видео добавлю ID всех героев и напишу скрипт убийство - уровень, но только для версии 1.13c. А для версии 1.13d можно будет дописать по Скайпу. ЗЫ: Если кто будет тестить и у него версия отличная от моей, то пока замените везде в скрипте, для токого же героя как у меня на видео, 2 на 3: cmp bx,6280 // cmp bx,6380 для версии 1.13d 2 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 23 апреля, 2017 Автор Поделиться Опубликовано 23 апреля, 2017 Эту серию я посвящаю своему первому учителю - keng. Окончательный скрипт: Скрытый текст { Game : Game.exe Version: Date : 2017-04-22 Author : Garik66 This script does blah blah blah } [ENABLE] {$LUA} getAddressList().getMemoryRecordByID(77).Color=0x0008000 PlaySound(findTableFile([[Activate]])) {$ASM} aobscanmodule(GodMod,D2Common.dll,85 FF 89 78 04) // should be unique aobscanmodule(GodMod1,D2Common.dll,01 68 04 75 0A) aobscanmodule(GodMod2,D2Common.dll,10 00 8B 4C 24 1C 85 C9) alloc(newmem,$4000) label(newmem1) label(newmem2) label(code) label(code1) label(code2) label(return) label(return1) label(return2) label(GodMod_Hero) label(GodMod_Hero2) label(Mana) label(Mana1) label(Mana2) label(Stamina) label(Stamina1) label(Stamina2) label(Experience) label(Experience2) label(Cycle_Exp) label(Cycle_Exp2) label(Gold) label(Gold1) label(Gold2) label(Cycle) label(Cycle1) label(Cycle2) label(GodMod_Hero_ENABLE) registersymbol(GodMod_Hero_ENABLE) label(Mana_ENABLE) registersymbol(Mana_ENABLE) label(Stamina_ENABLE) registersymbol(Stamina_ENABLE) label(Experience_ENABLE) registersymbol(Experience_ENABLE) label(Gold_ENABLE) registersymbol(Gold_ENABLE) registersymbol(GodMod) registersymbol(GodMod1) registersymbol(GodMod2) newmem: // Блок проверки ГГ ли это cmp bx,6280 // Для v.1.13c je @f cmp bx,6380 // Для v.1.13d je @f jmp code // Блок проверки какая характеристика ГГ @@: cmp edx,00060000 // ID HP Hero. je GodMod_Hero cmp edx,00080000 // ID маны. je Mana cmp edx,000A0000 // ID выносливости. je Stamina cmp edx,000D0000 // ID опыта. je Experience cmp edx,000E0000 // ID денег. je Gold jmp code // Блок работы с HP Hero GodMod_Hero: cmp [GodMod_Hero_ENABLE],1 // Проверяем активировал ли пользователь скрипт. jne code mov edi,[eax+0C] // Загружаем Max значение HP Hero. jmp code // Блок работы с маной Mana: cmp [Mana_ENABLE],1 // Проверяем активировал ли пользователь скрипт. jne code mov edi,[eax+0C] // Загружаем Max значение маны. jmp code // Блок работы с выносливостью Stamina: cmp [Stamina_ENABLE],1 // Проверяем активировал ли пользователь скрипт. jne code mov edi,[eax+0C] // Загружаем Max значение выносливости. jmp code // Блок работы с опытом Experience: cmp [Experience_ENABLE],1 // Проверяем активировал ли пользователь скрипт. jne code push ecx mov ecx,eax Cycle_Exp: // Для поиска сколько Max опыта до следующего уровня. add ecx,8 cmp [ecx],001E0000 // Проверяем ID Max опыта ГГ это. jne Cycle_Exp // Если нет, то продолжаем цикл. cmp edi,[ecx+04] // Если да, то сравниваем Max опыт с Текущим опытом. jae @f // Если больше и равно, то ничего не делаем. mov edi,[ecx+04] // Если меньше записываем в текущий опыт Max. @@: pop ecx jmp code // Блок работы с деньгами Gold: cmp [Gold_ENABLE],1 // Проверяем активировал ли пользователь скрипт. jne code push ecx mov ecx,eax Cycle: // Для поиска сколько Max денег может быть. sub ecx,8 cmp [ecx],000C0000 // Проверяем ID уровня ГГ это. jne Cycle // Если нет, то продолжаем цикл. mov ecx,[ecx+04] // Если да, то загружаем уровень mov edi,#10000 // Загружаем Max ко-во денег для 1 уровня ГГ. imul edi,ecx // Умножаем на текущий уровень ГГ. pop ecx jmp code code: test edi,edi mov [eax+04],edi jmp return newmem1: // Блок проверки ГГ ли это cmp bx,6280 // Для v.1.13c je @f cmp bx,6380 // Для v.1.13d je @f jmp code1 // Блок проверки какая характеристика ГГ @@: cmp edx,00080000 // ID маны. je Mana1 cmp edx,000A0000 // ID выносливости. je Stamina1 cmp edx,000E0000 // ID денег. je Gold1 jmp code1 // Блок работы с маной Mana1: cmp [Mana_ENABLE],1 // Проверяем активировал ли пользователь скрипт. jne code1 mov ebp,[eax+0C] // Загружаем Max значение маны. mov [eax+04],ebp // в адрес текущей выносливости. jne D2Common.Ordinal11158+52 jmp return1 // Блок работы с выносливостью Stamina1: cmp [Stamina_ENABLE],1 // Проверяем активировал ли пользователь скрипт. jne code1 mov ebp,[eax+0C] // Загружаем Max значение выносливости. mov [eax+04],ebp // в адрес текущей выносливости. jne D2Common.Ordinal11158+52 jmp return1 // Блок работы с деньгами Gold1: cmp [Gold_ENABLE],1 // Проверяем активировал ли пользователь скрипт. jne code1 push ecx mov ecx,eax Cycle1: // Для поиска сколько Max денег может быть. sub ecx,8 cmp [ecx],000C0000 // Проверяем ID уровня ГГ это. jne Cycle1 // Если нет, то продолжаем цикл. mov ecx,[ecx+04] // Если да, то загружаем уровень mov ebp,#10000 // Загружаем Max ко-во денег для 1 уровня ГГ. imul ebp,ecx // Умножаем на текущий уровень ГГ. pop ecx mov [eax+04],ebp jne D2Common.Ordinal11158+52 jmp return1 code1: add [eax+04],ebp jne D2Common.Ordinal11158+52 jmp return1 newmem2: mov ecx,[esp+1C] // Блок проверки ГГ ли это cmp bx,6280 // Для v.1.13c je @f cmp bx,6380 // Для v.1.13d je @f jmp code2 // Блок проверки какая характеристика ГГ @@: cmp edx,00060000 // ID HP Hero. je GodMod_Hero2 cmp edx,00080000 // ID маны. je Mana2 cmp edx,000A0000 // ID выносливости. je Stamina2 cmp edx,000D0000 // ID опыта. je Experience2 cmp edx,000E0000 // ID денег. je Gold2 jmp code2 // Блок работы с HP Hero GodMod_Hero2: cmp [GodMod_Hero_ENABLE],1 // Проверяем активировал ли пользователь скрипт. jne code2 mov ecx,[eax+0C] // Загружаем Max значение HP Hero. jmp code2 // Блок работы с маной Mana2: cmp [Mana_ENABLE],1 // Проверяем активировал ли пользователь скрипт. jne code2 mov ecx,[eax+0C] // Загружаем Max значение маны. jmp code2 // Блок работы с выносливостью Stamina2: cmp [Stamina_ENABLE],1 // Проверяем активировал ли пользователь скрипт. jne code2 mov ecx,[eax+0C] // Загружаем Max значение выносливости. jmp code2 // Блок работы с опытом Experience2: cmp [Experience_ENABLE],1 // Проверяем активировал ли пользователь скрипт. jne code2 push edi mov edi,eax Cycle_Exp2: // Для поиска сколько Max опыта до следующего уровня. add edi,8 cmp [edi],001E0000 // Проверяем ID Max опыта ГГ это. jne Cycle_Exp2 // Если нет, то продолжаем цикл. cmp ecx,[edi+04] // Если да, то сравниваем Max опыт с Текущим опытом. jae @f // Если больше и равно, то ничего не делаем. mov ecx,[edi+04] // Если меньше записываем в текущий опыт Max. @@: pop edi jmp code2 // Блок работы с деньгами Gold2: cmp [Gold_ENABLE],1 // Проверяем активировал ли пользователь скрипт. jne code2 push edi mov edi,eax Cycle2: // Для поиска сколько Max денег может быть. sub edi,8 cmp [edi],000C0000 // Проверяем ID уровня ГГ это. jne Cycle2 // Если нет, то продолжаем цикл. mov edi,[edi+04] // Если да, то загружаем уровень mov ecx,#10000 // Загружаем Max ко-во денег для 1 уровня ГГ. imul ecx,edi // Умножаем на текущий уровень ГГ. pop edi jmp code2 code2: test ecx,ecx jmp return2 GodMod_Hero_ENABLE: dd 0 Mana_ENABLE: dd 0 Stamina_ENABLE: dd 0 Experience_ENABLE: dd 0 Gold_ENABLE: dd 0 GodMod: jmp newmem return: GodMod1: jmp newmem1 return1: GodMod2+02: jmp newmem2 db 90 return2: [DISABLE] {$LUA} getAddressList().getMemoryRecordByID(77).Color=0x00000ff PlaySound(findTableFile([[Deactivate]])) {$ASM} GodMod: db 85 FF 89 78 04 GodMod1: db 01 68 04 75 0A GodMod2+02: db 8B 4C 24 1C 85 C9 unregistersymbol(GodMod_Hero_ENABLE) unregistersymbol(Mana_ENABLE) unregistersymbol(Stamina_ENABLE) unregistersymbol(Experience_ENABLE) unregistersymbol(Gold_ENABLE) unregistersymbol(GodMod) unregistersymbol(GodMod1) unregistersymbol(GodMod2) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "D2Common.dll"+58382 "D2Common.dll"+58367: 8D 04 C1 - lea eax,[ecx+eax*8] "D2Common.dll"+5836A: 85 C0 - test eax,eax "D2Common.dll"+5836C: 75 0A - jne D2Common.dll+58378 "D2Common.dll"+5836E: 8B 13 - mov edx,[ebx] "D2Common.dll"+58370: 52 - push edx "D2Common.dll"+58371: 8B C7 - mov eax,edi "D2Common.dll"+58373: E8 38 FC FF FF - call D2Common.dll+57FB0 "D2Common.dll"+58378: 8B 68 04 - mov ebp,[eax+04] "D2Common.dll"+5837B: 8B 4C 24 14 - mov ecx,[esp+14] "D2Common.dll"+5837F: 8D 3C 29 - lea edi,[ecx+ebp] // ---------- INJECTING HERE ---------- "D2Common.dll"+58382: 85 FF - test edi,edi "D2Common.dll"+58384: 89 78 04 - mov [eax+04],edi // ---------- DONE INJECTING ---------- "D2Common.dll"+58387: 7E 12 - jle D2Common.dll+5839B "D2Common.dll"+58389: 8B 54 24 18 - mov edx,[esp+18] "D2Common.dll"+5838D: 8A 4A 53 - mov cl,[edx+53] "D2Common.dll"+58390: 84 C9 - test cl,cl "D2Common.dll"+58392: 74 07 - je D2Common.dll+5839B "D2Common.dll"+58394: 81 4B 10 00 00 00 20 - or [ebx+10],20000000 "D2Common.dll"+5839B: 8B 48 04 - mov ecx,[eax+04] "D2Common.dll"+5839E: 85 C9 - test ecx,ecx "D2Common.dll"+583A0: 75 15 - jne D2Common.dll+583B7 "D2Common.dll"+583A2: 8B 4C 24 18 - mov ecx,[esp+18] } { // ORIGINAL CODE - INJECTION POINT: "D2Common.dll"+59CE3 "D2Common.dll"+59CCC: 85 C0 - test eax,eax "D2Common.dll"+59CCE: 7C 09 - jl D2Common.dll+59CD9 "D2Common.dll"+59CD0: 8B 0E - mov ecx,[esi] "D2Common.dll"+59CD2: 8D 04 C1 - lea eax,[ecx+eax*8] "D2Common.dll"+59CD5: 85 C0 - test eax,eax "D2Common.dll"+59CD7: 75 0A - jne D2Common.dll+59CE3 "D2Common.dll"+59CD9: 8B 13 - mov edx,[ebx] "D2Common.dll"+59CDB: 52 - push edx "D2Common.dll"+59CDC: 8B C7 - mov eax,edi "D2Common.dll"+59CDE: E8 CD E2 FF FF - call D2Common.dll+57FB0 // ---------- INJECTING HERE ---------- "D2Common.dll"+59CE3: 01 68 04 - add [eax+04],ebp "D2Common.dll"+59CE6: 75 0A - jne D2Common.dll+59CF2 // ---------- DONE INJECTING ---------- "D2Common.dll"+59CE8: 8B 0B - mov ecx,[ebx] "D2Common.dll"+59CEA: 51 - push ecx "D2Common.dll"+59CEB: 8B D0 - mov edx,eax "D2Common.dll"+59CED: E8 1E DE FF FF - call D2Common.dll+57B10 "D2Common.dll"+59CF2: 6A 00 - push 00 "D2Common.dll"+59CF4: 55 - push ebp "D2Common.dll"+59CF5: 8B C3 - mov eax,ebx "D2Common.dll"+59CF7: E8 E4 FB FF FF - call D2Common.dll+598E0 "D2Common.dll"+59CFC: 8B 43 10 - mov eax,[ebx+10] "D2Common.dll"+59CFF: 85 C0 - test eax,eax } { // ORIGINAL CODE - INJECTION POINT: "D2Common.dll"+59C55 "D2Common.dll"+59C43: 55 - push ebp "D2Common.dll"+59C44: 8B 6C 24 1C - mov ebp,[esp+1C] "D2Common.dll"+59C48: 2B E9 - sub ebp,ecx "D2Common.dll"+59C4A: 75 09 - jne D2Common.dll+59C55 "D2Common.dll"+59C4C: 5D - pop ebp "D2Common.dll"+59C4D: 5F - pop edi "D2Common.dll"+59C4E: 5E - pop esi "D2Common.dll"+59C4F: 33 C0 - xor eax,eax "D2Common.dll"+59C51: 5B - pop ebx "D2Common.dll"+59C52: C2 10 00 - ret 0010 // ---------- INJECTING HERE ---------- "D2Common.dll"+59C55: 8B 4C 24 1C - mov ecx,[esp+1C] "D2Common.dll"+59C59: 85 C9 - test ecx,ecx // ---------- DONE INJECTING ---------- "D2Common.dll"+59C5B: 75 0C - jne D2Common.dll+59C69 "D2Common.dll"+59C5D: 8B 0B - mov ecx,[ebx] "D2Common.dll"+59C5F: 51 - push ecx "D2Common.dll"+59C60: 8B D0 - mov edx,eax "D2Common.dll"+59C62: E8 A9 DE FF FF - call D2Common.dll+57B10 "D2Common.dll"+59C67: EB 03 - jmp D2Common.dll+59C6C "D2Common.dll"+59C69: 89 48 04 - mov [eax+04],ecx "D2Common.dll"+59C6C: 6A 00 - push 00 "D2Common.dll"+59C6E: 55 - push ebp "D2Common.dll"+59C6F: 8B C3 - mov eax,ebx } И один из опциональных скриптов (остальные индентичны): "God Mod Numpad 1": Скрытый текст [ENABLE] {$LUA} getAddressList().getMemoryRecordByID(81).Color=0x0008000 PlaySound(findTableFile([[Activate]])) {$ASM} GodMod_Hero_ENABLE: dd 1 [DISABLE] {$LUA} getAddressList().getMemoryRecordByID(81).Color=0x00000ff PlaySound(findTableFile([[Deactivate]])) {$ASM} GodMod_Hero_ENABLE: dd 0 Инфа из блокнота (может кому-нибудь будет нужна): Скрытый текст Diablo II - Lord of Destruction Денюжки (ID - EDX=000E0000), Выносливость (ID - EDX=000A0000) НР (ID - EDX=00060000), ЕХР (ID - EDX=000D0000): Рабочий адрес: 03B12A5C 6FDA8424 - 8B 40 04 - mov eax,[eax+04] // Читающая 6FDA8378 - 8B 68 04 - mov ebp,[eax+04] 6FDA8384 - 89 78 04 - mov [eax+04],edi // Всегда, на запись 6FDA839B - 8B 48 04 - mov ecx,[eax+04] 6FDA837F - 8D 3C 29 - lea edi,[ecx+ebp] 6FDA8382 - 85 FF - test edi,edi 6FDA8384 - 89 78 04 - mov [eax+04],edi << 6FDA8387 - 7E 12 - jle D2Common.Ordinal11140+14B 6FDA8389 - 8B 54 24 18 - mov edx,[esp+18] EAX=03B12A58 EBX=05EE6280 ECX=FFFFFFFF EDX=000E0000 ESI=05EE62C8 EDI=00000013 ESP=0019F50C EBP=00000014 EIP=6FDA8387 Проверяющий адрес: 03B1305C 6FDA9C40 - 8B 48 04 - mov ecx,[eax+04] 6FDA9C69 - 89 48 04 - mov [eax+04],ecx // При выкидывании, выносливость при восстановлении, НР и ЕХР 6FDA9CE3 - 01 68 04 - add [eax+04],ebp // При продаже/покупке, выносливость при трате 6FDA7D64 - 8B 79 04 - mov edi,[ecx+04] 6FDA9C62 - E8 A9DEFFFF - call D2Common.Ordinal10219+A0 6FDA9C67 - EB 03 - jmp D2Common.Ordinal10818+7C 6FDA9C69 - 89 48 04 - mov [eax+04],ecx << //Деньги, выносливость, НР, EXP 6FDA9C6C - 6A 00 - push 00 6FDA9C6E - 55 - push ebp EAX=03B13058 EBX=05EE6280 ECX=00000001 EDX=000E0000 ESI=05EE62A4 EDI=000E0000 ESP=0019F544 EBP=FFFFFFFF 6FDA9CDC - 8B C7 - mov eax,edi 6FDA9CDE - E8 CDE2FFFF - call D2Common.Ordinal10429+120 6FDA9CE3 - 01 68 04 - add [eax+04],ebp << //Деньги, выносливость 6FDA9CE6 - 75 0A - jne D2Common.Ordinal11158+52 6FDA9CE8 - 8B 0B - mov ecx,[ebx] EAX=03B13058 EBX=05EE6280 ECX=03B13000 EDX=000E0000 ESI=05EE62A4 EDI=000E0000 ESP=0019F538 EBP=00000001 EIP=6FDA9CE6 Видео: И табличка: For_lizzmack.CT Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 23 апреля, 2017 Автор Поделиться Опубликовано 23 апреля, 2017 ЗЫ; на версии 1.13d, фильтр по BX, меняется и по-моему меняется ещё что-то, только что посмотрели по Скайпу, Так что для 1.13d скрипт нужно дорабатывать. Если поставить временный BX (на одну загрузку игры), то работают стабильно 3 опции (Мана, выносливость и GodMod), Золото работает плохо, а опыт приводит к вылету. Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 23 апреля, 2017 Поделиться Опубликовано 23 апреля, 2017 Комментарии в табличке что-то задумали.. Скрытый текст Cycle1: // Для РїРѕРёСЃРєР° сколько Max денег может быть. sub ecx,8 cmp [ecx],000C0000 // Проверяем ID СѓСЂРѕРІРЅСЏ ГГ это. jne Cycle1 // Если нет, то продолжаем цикл. mov ecx,[ecx+04] // Если РґР°, то загружаем уровень mov ebp,#10000 // Загружаем Max РєРѕ-РІРѕ денег для 1 СѓСЂРѕРІРЅСЏ ГГ. imul ebp,ecx // Умножаем РЅР° текущий уровень ГГ. Возможно проблема с моей стороны но не уверен . Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 23 апреля, 2017 Поделиться Опубликовано 23 апреля, 2017 (изменено) 1 минуту назад, what228 сказал: Возможно проблема с моей стороны но не уверен Кодировку на UTF-8 поменяй в ANSI такой мусор выводит только. Изменено 23 апреля, 2017 пользователем partoftheworlD Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 23 апреля, 2017 Автор Поделиться Опубликовано 23 апреля, 2017 2 минуты назад, what228 сказал: Комментарии........... к предложению partoftheworlD , ещё можно выучить новый язык: берёшь строчку Для РїРѕРёСЃРєР° сколько Max денег может быть. ,берёшь перевод и учишь, как все полиглоты делают. Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 23 апреля, 2017 Поделиться Опубликовано 23 апреля, 2017 2 минуты назад, Garik66 сказал: ещё можно выучить новый язык Рђ потом РЅР° форуме так Рё общаешься, шифруешься РѕС‚ пользователей Рё спец.служб Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 23 апреля, 2017 Автор Поделиться Опубликовано 23 апреля, 2017 3 минуты назад, partoftheworlD сказал: Рђ потом РЅР° форуме так Рё общаешься, шифруешься РѕС‚ пользователей Рё спец.служб Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 23 апреля, 2017 Поделиться Опубликовано 23 апреля, 2017 17 минуту назад, partoftheworlD сказал: Кодировку на UTF-8 поменяй в ANSI такой мусор выводит только. В CE поменять? Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 23 апреля, 2017 Поделиться Опубликовано 23 апреля, 2017 2 минуты назад, what228 сказал: В CE поменять? я в Notepad++ менял, в CE такого не видел 7 минут назад, Garik66 сказал: "А потом на форуме так и общаешься, шифруешься от пользователей и спец.служб" Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 23 апреля, 2017 Поделиться Опубликовано 23 апреля, 2017 1 минуту назад, partoftheworlD сказал: я в Notepad++ менял, в CE такого не видел "А потом на форуме так и общаешься, шифруешься от пользователей и спец.служб" Дык и так UTF-8 стоит. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 23 апреля, 2017 Автор Поделиться Опубликовано 23 апреля, 2017 1 минуту назад, partoftheworlD сказал: "А потом на форуме так и общаешься, шифруешься от пользователей и спец.служб" Ну да - новый язык GHL Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 23 апреля, 2017 Поделиться Опубликовано 23 апреля, 2017 4 минуты назад, what228 сказал: Дык и так UTF-8 стоит. Уверен? Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 23 апреля, 2017 Поделиться Опубликовано 23 апреля, 2017 (изменено) 15 минуту назад, partoftheworlD сказал: Уверен? Ну я не прям дурак же Скрытый текст Это UTF-8 Это ANSI Изменено 23 апреля, 2017 пользователем what228 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 23 апреля, 2017 Автор Поделиться Опубликовано 23 апреля, 2017 10 минуту назад, what228 сказал: Ну я не прям дурак же Тогда просто скопируй скрипт в СЕ. Ссылка на комментарий Поделиться на другие сайты Поделиться
DeadCraft Опубликовано 24 апреля, 2017 Поделиться Опубликовано 24 апреля, 2017 Сделал максимальное количество золота в сундуке. Значение меняется если в нём есть хотя бы одна монета. Скрытый текст { Game : Game.exe Version: 1.13d + PlugY 11.02 Date : 2017-04-24 Author : DeadCraft This script does blah blah blah } [ENABLE] aobscanmodule(MaxMoneyStash,D2Common.dll,85 F6 8B 40 04) // should be unique aobscanmodule(MaxMoneyStash1,D2Common.dll,01 68 04 75 0A) // should be unique alloc(newmem,$1000) label(newmem1) label(code) label(return) label(code1) label(return1) registersymbol(MaxMoneyStash) registersymbol(MaxMoneyStash1) //////////////////////////////////////////////////////////////////////////////// newmem: cmp edx,000F0000 jne code mov [eax+04],#2500000 code: test esi,esi mov eax,[eax+04] jmp return //////////////////////////////////////////////////////////////////////////////// newmem1: cmp edx,000F0000 jne code1 mov [eax+04],#2500000 mov ebp,0 code1: add [eax+04],ebp jne D2Common.Ordinal11158+52 jmp return1 //////////////////////////////////////////////////////////////////////////////// MaxMoneyStash: jmp newmem return: MaxMoneyStash1: jmp newmem1 return1: //////////////////////////////////////////////////////////////////////////////// [DISABLE] MaxMoneyStash: db 85 F6 8B 40 04 MaxMoneyStash1: db 01 68 04 75 0A unregistersymbol(MaxMoneyStash) unregistersymbol(MaxMoneyStash1) dealloc(newmem) //////////////////////////////////////////////////////////////////////////////// { // ORIGINAL CODE - INJECTION POINT: "D2Common.dll"+58422 "D2Common.dll"+5840C: 7C 09 - jl D2Common.dll+58417 "D2Common.dll"+5840E: 8B 0E - mov ecx,[esi] "D2Common.dll"+58410: 8D 04 C1 - lea eax,[ecx+eax*8] "D2Common.dll"+58413: 85 C0 - test eax,eax "D2Common.dll"+58415: 75 07 - jne D2Common.dll+5841E "D2Common.dll"+58417: 5E - pop esi "D2Common.dll"+58418: 33 C0 - xor eax,eax "D2Common.dll"+5841A: 5D - pop ebp "D2Common.dll"+5841B: C2 04 00 - ret 0004 "D2Common.dll"+5841E: 8B 74 24 0C - mov esi,[esp+0C] // ---------- INJECTING HERE ---------- "D2Common.dll"+58422: 85 F6 - test esi,esi "D2Common.dll"+58424: 8B 40 04 - mov eax,[eax+04] // ---------- DONE INJECTING ---------- "D2Common.dll"+58427: 74 36 - je D2Common.dll+5845F "D2Common.dll"+58429: 8A 56 05 - mov dl,[esi+05] "D2Common.dll"+5842C: 8B 0D E0 D0 DD 6F - mov ecx,[D2Common.dll+8D0E0] "D2Common.dll"+58432: 84 51 08 - test [ecx+08],dl "D2Common.dll"+58435: 74 28 - je D2Common.dll+5845F "D2Common.dll"+58437: 85 ED - test ebp,ebp "D2Common.dll"+58439: 74 24 - je D2Common.dll+5845F "D2Common.dll"+5843B: 8B 4B 44 - mov ecx,[ebx+44] "D2Common.dll"+5843E: 85 C9 - test ecx,ecx "D2Common.dll"+58440: 74 1D - je D2Common.dll+5845F } { // ORIGINAL CODE - INJECTION POINT: "D2Common.dll"+59CE3 "D2Common.dll"+59CCC: 85 C0 - test eax,eax "D2Common.dll"+59CCE: 7C 09 - jl D2Common.dll+59CD9 "D2Common.dll"+59CD0: 8B 0E - mov ecx,[esi] "D2Common.dll"+59CD2: 8D 04 C1 - lea eax,[ecx+eax*8] "D2Common.dll"+59CD5: 85 C0 - test eax,eax "D2Common.dll"+59CD7: 75 0A - jne D2Common.dll+59CE3 "D2Common.dll"+59CD9: 8B 13 - mov edx,[ebx] "D2Common.dll"+59CDB: 52 - push edx "D2Common.dll"+59CDC: 8B C7 - mov eax,edi "D2Common.dll"+59CDE: E8 CD E2 FF FF - call D2Common.dll+57FB0 // ---------- INJECTING HERE ---------- "D2Common.dll"+59CE3: 01 68 04 - add [eax+04],ebp "D2Common.dll"+59CE6: 75 0A - jne D2Common.dll+59CF2 // ---------- DONE INJECTING ---------- "D2Common.dll"+59CE8: 8B 0B - mov ecx,[ebx] "D2Common.dll"+59CEA: 51 - push ecx "D2Common.dll"+59CEB: 8B D0 - mov edx,eax "D2Common.dll"+59CED: E8 1E DE FF FF - call D2Common.dll+57B10 "D2Common.dll"+59CF2: 6A 00 - push 00 "D2Common.dll"+59CF4: 55 - push ebp "D2Common.dll"+59CF5: 8B C3 - mov eax,ebx "D2Common.dll"+59CF7: E8 E4 FB FF FF - call D2Common.dll+598E0 "D2Common.dll"+59CFC: 8B 43 10 - mov eax,[ebx+10] "D2Common.dll"+59CFF: 85 C0 - test eax,eax } //////////////////////////////////////////////////////////////////////////////// Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения