Tzeentch Опубликовано 2 января, 2019 Поделиться Опубликовано 2 января, 2019 Решил покопать стародобрые Казаки и обнаружил замудрённую систему шифрования. Нашёл инструкции которые обращаются к указателю. Но не знаю как скрипт оформить и как расшифровать значение. Инструкции 1 Спойлер https://drive.google.com/open?id=1k_1svY8JYpMvD_olFJHMBcUKAMxUnfd4 2 Спойлер https://drive.google.com/open?id=1xc_QiBBP8k3ntPOTMcGSaL74Lok56X6- Скрипты с кодом 1 Спойлер [ENABLE] aobscanmodule(GoldTry,dmcr.exe,8B 2C 85 D0 61 1C 02) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: {mov ebp,[eax*4+dmcr.exe+1DC61D0]} jmp return GoldTry: jmp newmem nop nop return: registersymbol(GoldTry) [DISABLE] GoldTry: db 8B 2C 85 D0 61 1C 02 unregistersymbol(GoldTry) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "dmcr.exe"+B350F "dmcr.exe"+B34E7: 81 E3 FF 00 00 00 - and ebx,000000FF "dmcr.exe"+B34ED: 8B 04 BE - mov eax,[esi+edi*4] "dmcr.exe"+B34F0: 8B 0C 9E - mov ecx,[esi+ebx*4] "dmcr.exe"+B34F3: 89 44 24 34 - mov [esp+34],eax "dmcr.exe"+B34F7: 8B 44 24 2C - mov eax,[esp+2C] "dmcr.exe"+B34FB: 89 4C 24 10 - mov [esp+10],ecx "dmcr.exe"+B34FF: 25 FF 00 00 00 - and eax,000000FF "dmcr.exe"+B3504: 89 44 24 2C - mov [esp+2C],eax "dmcr.exe"+B3508: 8D 04 C1 - lea eax,[ecx+eax*8] "dmcr.exe"+B350B: 89 44 24 30 - mov [esp+30],eax // ---------- INJECTING HERE ---------- "dmcr.exe"+B350F: 8B 2C 85 D0 61 1C 02 - mov ebp,[eax*4+dmcr.exe+1DC61D0] // ---------- DONE INJECTING ---------- "dmcr.exe"+B3516: 8B 44 24 38 - mov eax,[esp+38] "dmcr.exe"+B351A: 81 F5 7D 0D 02 00 - xor ebp,00020D7D "dmcr.exe"+B3520: 3B E8 - cmp ebp,eax "dmcr.exe"+B3522: 7D 04 - jnl dmcr.exe+B3528 "dmcr.exe"+B3524: 89 6C 24 38 - mov [esp+38],ebp "dmcr.exe"+B3528: DB 44 24 38 - fild dword ptr [esp+38] "dmcr.exe"+B352C: DD 5C 24 20 - fstp qword ptr [esp+20] "dmcr.exe"+B3530: DD 44 24 20 - fld qword ptr [esp+20] "dmcr.exe"+B3534: DC 8C DE 8C 00 00 00 - fmul qword ptr [esi+ebx*8+0000008C] "dmcr.exe"+B353B: DC 74 FE 5C - fdiv qword ptr [esi+edi*8+5C] } 2 Спойлер [ENABLE] aobscanmodule(GoldTry2,dmcr.exe,89 2C 8D D0 61 1C 02 8B 4C) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: {mov [ecx*4+dmcr.exe+1DC61D0],ebp} jmp return GoldTry2: jmp newmem nop nop return: registersymbol(GoldTry2) [DISABLE] GoldTry2: db 89 2C 8D D0 61 1C 02 unregistersymbol(GoldTry2) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "dmcr.exe"+B355C "dmcr.exe"+B3530: DD 44 24 20 - fld qword ptr [esp+20] "dmcr.exe"+B3534: DC 8C DE 8C 00 00 00 - fmul qword ptr [esi+ebx*8+0000008C] "dmcr.exe"+B353B: DC 74 FE 5C - fdiv qword ptr [esi+edi*8+5C] "dmcr.exe"+B353F: E8 5C EC 0B 00 - call dmcr.exe+1721A0 "dmcr.exe"+B3544: 8B 54 24 38 - mov edx,[esp+38] "dmcr.exe"+B3548: 8B 4C 24 30 - mov ecx,[esp+30] "dmcr.exe"+B354C: 2B EA - sub ebp,edx "dmcr.exe"+B354E: 8B 54 24 2C - mov edx,[esp+2C] "dmcr.exe"+B3552: 81 F5 7D 0D 02 00 - xor ebp,00020D7D "dmcr.exe"+B3558: 89 44 24 18 - mov [esp+18],eax // ---------- INJECTING HERE ---------- "dmcr.exe"+B355C: 89 2C 8D D0 61 1C 02 - mov [ecx*4+dmcr.exe+1DC61D0],ebp // ---------- DONE INJECTING ---------- "dmcr.exe"+B3563: 8B 4C 24 34 - mov ecx,[esp+34] "dmcr.exe"+B3567: DB 44 24 18 - fild dword ptr [esp+18] "dmcr.exe"+B356B: 8D 0C D1 - lea ecx,[ecx+edx*8] "dmcr.exe"+B356E: 8B 2C 8D D0 61 1C 02 - mov ebp,[ecx*4+dmcr.exe+1DC61D0] "dmcr.exe"+B3575: 81 F5 7D 0D 02 00 - xor ebp,00020D7D "dmcr.exe"+B357B: 03 E8 - add ebp,eax "dmcr.exe"+B357D: 81 F5 7D 0D 02 00 - xor ebp,00020D7D "dmcr.exe"+B3583: 89 2C 8D D0 61 1C 02 - mov [ecx*4+dmcr.exe+1DC61D0],ebp "dmcr.exe"+B358A: 8B CA - mov ecx,edx "dmcr.exe"+B358C: C1 E1 04 - shl ecx,04 } mov ebp,[eax*4+dmcr.exe+1DC61D0] - я не понимаю что делать с [eax*4+dmcr.exe+1DC61D0]. Он даже в таблицу CE не компилируется. Думаю для многих скорее это понятно. Дайте совет, пожалуйста. P.S. В данном случае я искал золото. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 2 января, 2019 Поделиться Опубликовано 2 января, 2019 19 минут назад, Tzeentch сказал: Инструкции 1 картинок не видно Ссылка на комментарий Поделиться на другие сайты Поделиться
Tzeentch Опубликовано 2 января, 2019 Автор Поделиться Опубликовано 2 января, 2019 (изменено) 3 минуты назад, Garik66 сказал: картинок не видно Ясно. Всё поправил Изменено 2 января, 2019 пользователем Tzeentch Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 2 января, 2019 Поделиться Опубликовано 2 января, 2019 17 минут назад, Tzeentch сказал: Ясно. Всё поправил Выложи СЕ-ный скрипт из вот этой инструкции: "dmcr.exe"+B3552: 81 F5 7D 0D 02 00 - xor ebp,00020D7D попробуем помочь. только не затягивай, у меня не много времени есть. Ссылка на комментарий Поделиться на другие сайты Поделиться
Tzeentch Опубликовано 2 января, 2019 Автор Поделиться Опубликовано 2 января, 2019 18 минут назад, Garik66 сказал: Выложи СЕ-ный скрипт из вот этой инструкции: Вот Спойлер [ENABLE] aobscanmodule(XorGold,dmcr.exe,81 F5 7D 0D 02 00 3B E8) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: xor ebp,00020D7D jmp return XorGold: jmp newmem nop return: registersymbol(XorGold) [DISABLE] XorGold: db 81 F5 7D 0D 02 00 unregistersymbol(XorGold) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "dmcr.exe"+B351A "dmcr.exe"+B34F0: 8B 0C 9E - mov ecx,[esi+ebx*4] "dmcr.exe"+B34F3: 89 44 24 34 - mov [esp+34],eax "dmcr.exe"+B34F7: 8B 44 24 2C - mov eax,[esp+2C] "dmcr.exe"+B34FB: 89 4C 24 10 - mov [esp+10],ecx "dmcr.exe"+B34FF: 25 FF 00 00 00 - and eax,000000FF "dmcr.exe"+B3504: 89 44 24 2C - mov [esp+2C],eax "dmcr.exe"+B3508: 8D 04 C1 - lea eax,[ecx+eax*8] "dmcr.exe"+B350B: 89 44 24 30 - mov [esp+30],eax "dmcr.exe"+B350F: 8B 2C 85 D0 61 1C 02 - mov ebp,[eax*4+dmcr.exe+1DC61D0] "dmcr.exe"+B3516: 8B 44 24 38 - mov eax,[esp+38] // ---------- INJECTING HERE ---------- "dmcr.exe"+B351A: 81 F5 7D 0D 02 00 - xor ebp,00020D7D // ---------- DONE INJECTING ---------- "dmcr.exe"+B3520: 3B E8 - cmp ebp,eax "dmcr.exe"+B3522: 7D 04 - jnl dmcr.exe+B3528 "dmcr.exe"+B3524: 89 6C 24 38 - mov [esp+38],ebp "dmcr.exe"+B3528: DB 44 24 38 - fild dword ptr [esp+38] "dmcr.exe"+B352C: DD 5C 24 20 - fstp qword ptr [esp+20] "dmcr.exe"+B3530: DD 44 24 20 - fld qword ptr [esp+20] "dmcr.exe"+B3534: DC 8C DE 8C 00 00 00 - fmul qword ptr [esi+ebx*8+0000008C] "dmcr.exe"+B353B: DC 74 FE 5C - fdiv qword ptr [esi+edi*8+5C] "dmcr.exe"+B353F: E8 5C EC 0B 00 - call dmcr.exe+1721A0 "dmcr.exe"+B3544: 8B 54 24 38 - mov edx,[esp+38] } Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 2 января, 2019 Поделиться Опубликовано 2 января, 2019 1 минуту назад, Tzeentch сказал: Вот Не из этой а из нижней, она такая же, но ниже по коду. после sub "вmcr.exe"+B354C: 2B EA - sub ebp,edx "dmcr.exe"+B354E: 8B 54 24 2C - mov edx,[esp+2C] "dmcr.exe"+B3552: 81 F5 7D 0D 02 00 - xor ebp,00020D7D ЗЫ: обрати внимание на адрес инструкции, которую я дал "dmcr.exe"+B3552 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Tzeentch Опубликовано 2 января, 2019 Автор Поделиться Опубликовано 2 января, 2019 12 минут назад, Garik66 сказал: Не из этой а из нижней, она такая же, но ниже по коду. после sub Эта? Спойлер [ENABLE] aobscanmodule(Res,dmcr.exe,8B 54 24 2C 81 F5 7D 0D 02 00) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: mov edx,[esp+2C] xor ebp,00020D7D jmp return Res: jmp newmem nop nop nop nop nop return: registersymbol(Res) [DISABLE] Res: db 8B 54 24 2C 81 F5 7D 0D 02 00 unregistersymbol(Res) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "dmcr.exe"+B354E "dmcr.exe"+B3524: 89 6C 24 38 - mov [esp+38],ebp "dmcr.exe"+B3528: DB 44 24 38 - fild dword ptr [esp+38] "dmcr.exe"+B352C: DD 5C 24 20 - fstp qword ptr [esp+20] "dmcr.exe"+B3530: DD 44 24 20 - fld qword ptr [esp+20] "dmcr.exe"+B3534: DC 8C DE 8C 00 00 00 - fmul qword ptr [esi+ebx*8+0000008C] "dmcr.exe"+B353B: DC 74 FE 5C - fdiv qword ptr [esi+edi*8+5C] "dmcr.exe"+B353F: E8 5C EC 0B 00 - call dmcr.exe+1721A0 "dmcr.exe"+B3544: 8B 54 24 38 - mov edx,[esp+38] "dmcr.exe"+B3548: 8B 4C 24 30 - mov ecx,[esp+30] "dmcr.exe"+B354C: 2B EA - sub ebp,edx // ---------- INJECTING HERE ---------- "dmcr.exe"+B354E: 8B 54 24 2C - mov edx,[esp+2C] "dmcr.exe"+B3552: 81 F5 7D 0D 02 00 - xor ebp,00020D7D // ---------- DONE INJECTING ---------- "dmcr.exe"+B3558: 89 44 24 18 - mov [esp+18],eax "dmcr.exe"+B355C: 89 2C 8D D0 61 1C 02 - mov [ecx*4+dmcr.exe+1DC61D0],ebp "dmcr.exe"+B3563: 8B 4C 24 34 - mov ecx,[esp+34] "dmcr.exe"+B3567: DB 44 24 18 - fild dword ptr [esp+18] "dmcr.exe"+B356B: 8D 0C D1 - lea ecx,[ecx+edx*8] "dmcr.exe"+B356E: 8B 2C 8D D0 61 1C 02 - mov ebp,[ecx*4+dmcr.exe+1DC61D0] "dmcr.exe"+B3575: 81 F5 7D 0D 02 00 - xor ebp,00020D7D "dmcr.exe"+B357B: 03 E8 - add ebp,eax "dmcr.exe"+B357D: 81 F5 7D 0D 02 00 - xor ebp,00020D7D "dmcr.exe"+B3583: 89 2C 8D D0 61 1C 02 - mov [ecx*4+dmcr.exe+1DC61D0],ebp } Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 2 января, 2019 Поделиться Опубликовано 2 января, 2019 1 минуту назад, Tzeentch сказал: Эта? Ниже на одну, ну да ладно сойдет. И обрати внимание на правила: 3. Если тема создается с вопросом по какой-то конкретно игре, название этой игры (в английском варианте) должно обязательно присутствовать в начале названия темы в квадратных скобках. Например, так: [Assassin's Creed III] Вопрос по взлому мультиплеера. Попробуй скрипт; Спойлер [ENABLE] aobscanmodule(Res,dmcr.exe,8B 54 24 2C 81 F5 7D 0D 02 00) // should be unique alloc(newmem,$1000) label(code) label(return) registersymbol(Res) newmem: mov ebp,#666 code: mov edx,[esp+2C] xor ebp,00020D7D jmp return Res: jmp newmem db 90 90 90 90 90 return: [DISABLE] Res: db 8B 54 24 2C 81 F5 7D 0D 02 00 unregistersymbol(Res) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "dmcr.exe"+B354E "dmcr.exe"+B3524: 89 6C 24 38 - mov [esp+38],ebp "dmcr.exe"+B3528: DB 44 24 38 - fild dword ptr [esp+38] "dmcr.exe"+B352C: DD 5C 24 20 - fstp qword ptr [esp+20] "dmcr.exe"+B3530: DD 44 24 20 - fld qword ptr [esp+20] "dmcr.exe"+B3534: DC 8C DE 8C 00 00 00 - fmul qword ptr [esi+ebx*8+0000008C] "dmcr.exe"+B353B: DC 74 FE 5C - fdiv qword ptr [esi+edi*8+5C] "dmcr.exe"+B353F: E8 5C EC 0B 00 - call dmcr.exe+1721A0 "dmcr.exe"+B3544: 8B 54 24 38 - mov edx,[esp+38] "dmcr.exe"+B3548: 8B 4C 24 30 - mov ecx,[esp+30] "dmcr.exe"+B354C: 2B EA - sub ebp,edx // ---------- INJECTING HERE ---------- "dmcr.exe"+B354E: 8B 54 24 2C - mov edx,[esp+2C] "dmcr.exe"+B3552: 81 F5 7D 0D 02 00 - xor ebp,00020D7D // ---------- DONE INJECTING ---------- "dmcr.exe"+B3558: 89 44 24 18 - mov [esp+18],eax "dmcr.exe"+B355C: 89 2C 8D D0 61 1C 02 - mov [ecx*4+dmcr.exe+1DC61D0],ebp "dmcr.exe"+B3563: 8B 4C 24 34 - mov ecx,[esp+34] "dmcr.exe"+B3567: DB 44 24 18 - fild dword ptr [esp+18] "dmcr.exe"+B356B: 8D 0C D1 - lea ecx,[ecx+edx*8] "dmcr.exe"+B356E: 8B 2C 8D D0 61 1C 02 - mov ebp,[ecx*4+dmcr.exe+1DC61D0] "dmcr.exe"+B3575: 81 F5 7D 0D 02 00 - xor ebp,00020D7D "dmcr.exe"+B357B: 03 E8 - add ebp,eax "dmcr.exe"+B357D: 81 F5 7D 0D 02 00 - xor ebp,00020D7D "dmcr.exe"+B3583: 89 2C 8D D0 61 1C 02 - mov [ecx*4+dmcr.exe+1DC61D0],ebp } 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Tzeentch Опубликовано 2 января, 2019 Автор Поделиться Опубликовано 2 января, 2019 5 минут назад, Garik66 сказал: Ниже Понял. Вот на всякий. Спойлер [ENABLE] aobscanmodule(GoldX,dmcr.exe,81 F5 7D 0D 02 00 89 44) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: xor ebp,00020D7D jmp return GoldX: jmp newmem nop return: registersymbol(GoldX) [DISABLE] GoldX: db 81 F5 7D 0D 02 00 unregistersymbol(GoldX) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "dmcr.exe"+B3552 "dmcr.exe"+B3528: DB 44 24 38 - fild dword ptr [esp+38] "dmcr.exe"+B352C: DD 5C 24 20 - fstp qword ptr [esp+20] "dmcr.exe"+B3530: DD 44 24 20 - fld qword ptr [esp+20] "dmcr.exe"+B3534: DC 8C DE 8C 00 00 00 - fmul qword ptr [esi+ebx*8+0000008C] "dmcr.exe"+B353B: DC 74 FE 5C - fdiv qword ptr [esi+edi*8+5C] "dmcr.exe"+B353F: E8 5C EC 0B 00 - call dmcr.exe+1721A0 "dmcr.exe"+B3544: 8B 54 24 38 - mov edx,[esp+38] "dmcr.exe"+B3548: 8B 4C 24 30 - mov ecx,[esp+30] "dmcr.exe"+B354C: 2B EA - sub ebp,edx "dmcr.exe"+B354E: 8B 54 24 2C - mov edx,[esp+2C] // ---------- INJECTING HERE ---------- "dmcr.exe"+B3552: 81 F5 7D 0D 02 00 - xor ebp,00020D7D // ---------- DONE INJECTING ---------- "dmcr.exe"+B3558: 89 44 24 18 - mov [esp+18],eax "dmcr.exe"+B355C: 89 2C 8D D0 61 1C 02 - mov [ecx*4+dmcr.exe+1DC61D0],ebp "dmcr.exe"+B3563: 8B 4C 24 34 - mov ecx,[esp+34] "dmcr.exe"+B3567: DB 44 24 18 - fild dword ptr [esp+18] "dmcr.exe"+B356B: 8D 0C D1 - lea ecx,[ecx+edx*8] "dmcr.exe"+B356E: 8B 2C 8D D0 61 1C 02 - mov ebp,[ecx*4+dmcr.exe+1DC61D0] "dmcr.exe"+B3575: 81 F5 7D 0D 02 00 - xor ebp,00020D7D "dmcr.exe"+B357B: 03 E8 - add ebp,eax "dmcr.exe"+B357D: 81 F5 7D 0D 02 00 - xor ebp,00020D7D "dmcr.exe"+B3583: 89 2C 8D D0 61 1C 02 - mov [ecx*4+dmcr.exe+1DC61D0],ebp } Кстати как нашли шифрующую инструкцию. Стало хоть понятнее)) Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 2 января, 2019 Поделиться Опубликовано 2 января, 2019 Только что, Tzeentch сказал: Вот на всякий. Да уже не нужно - скрипт проверь в предыдущем сообщении. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Tzeentch Опубликовано 2 января, 2019 Автор Поделиться Опубликовано 2 января, 2019 11 минут назад, Garik66 сказал: Попробуй скрипт Да! Работает Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 2 января, 2019 Поделиться Опубликовано 2 января, 2019 8 минут назад, Tzeentch сказал: Да! Работает Не нужно копировать все цитируемое сообщение, достаточно одной строчки, а то отправлю "В угол" . Garik66 Надеюсь, ты понял как я это сделал? Первая выложенная тобой инструкция (которая выше по коду), там значение расшифровывается, А вы нижнем наоборот зашифровывается, Я записал значение в расшифрованное и она потом зашифровываясь, записывается в адрес ресурсов. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Tzeentch Опубликовано 2 января, 2019 Автор Поделиться Опубликовано 2 января, 2019 Почти понял. Но можно ли эти функции подписать/обозначить для наглядности) А так мне понятно Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 2 января, 2019 Поделиться Опубликовано 2 января, 2019 9 минут назад, Tzeentch сказал: Почти понял. Но можно ли эти функции подписать/обозначить для наглядности) Верхняя: Спойлер "dmcr.exe"+B350F: 8B 2C 85 D0 61 1C 02 - mov ebp,[eax*4+dmcr.exe+1DC61D0] // из твоего адреса зашифрованное значение передается в ebp "dmcr.exe"+B3516: 8B 44 24 38 - mov eax,[esp+38] // ---------- INJECTING HERE ---------- "dmcr.exe"+B351A: 81 F5 7D 0D 02 00 - xor ebp,00020D7D // после этой строчки, в ebp расшифрованное значение и нижняя: Спойлер "dmcr.exe"+B354C: 2B EA - sub ebp,edx // здесь от ресурсов отымается, то что ты потратил в игре "dmcr.exe"+B354E: 8B 54 24 2C - mov edx,[esp+2C] // ---------- INJECTING HERE ---------- "dmcr.exe"+B3552: 81 F5 7D 0D 02 00 - xor ebp,00020D7D // здесь значение снова зашифровывается. "dmcr.exe"+B3558: 89 44 24 18 - mov [esp+18],eax "dmcr.exe"+B355C: 89 2C 8D D0 61 1C 02 - mov [ecx*4+dmcr.exe+1DC61D0],ebp // и здесь записывается в твой адрес // так как мы меняем значение в ebp, после отнимания, то у нас пишется именно то, что мы хотим // в моем скрипте это 666 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Tzeentch Опубликовано 2 января, 2019 Автор Поделиться Опубликовано 2 января, 2019 Хороший обход. Теперь остальные ресурсы доломаю) Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 2 января, 2019 Поделиться Опубликовано 2 января, 2019 ЗЫ: и вот созданная мною тему про шифрование - ТЫК Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения