NickSpirit
-
Постов
100 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Форумы
Загрузки
Блоги
Сообщения, опубликованные NickSpirit
-
-
Появилось снова время и желание возиться - вообщем - все скрипты давали вылет. При просмотре инструкций которые работают с нужным мне адресом вываливались две инструкции - та над которой мы бились и еще одна. Плюнул попробовал с другой. Сделал такой скрипт -
Скрытый текст{ Game : FClient.exe Version: Date : 2016-10-17 Author : AirSim This script does blah blah blah } [ENABLE] //code from here to '[DISABLE]' will be used to enable the cheat aobscanmodule(VIDRYBI,FClient.exe,D9 47 6C D9 E8) // should be unique alloc(newmem,$1000) label(code) label(return) label(pointer) registersymbol(pointer) registersymbol(VIDRYBI) newmem: push eax lea eax,[edi+6C] mov [pointer],eax pop eax code: fld dword ptr [edi+6C] fld1 jmp return pointer: dd 0 VIDRYBI: jmp newmem return: [DISABLE] //code from here till the end of the code will be used to disable the cheat VIDRYBI: db D9 47 6C D9 E8 dealloc(newmem) unregistersymbol(VIDRYBI) unregistersymbol(pointer) { // ORIGINAL CODE - INJECTION POINT: "FClient.exe"+151415 "FClient.exe"+1513EF: 2B F0 - sub esi,eax "FClient.exe"+1513F1: 89 74 24 14 - mov [esp+14],esi "FClient.exe"+1513F5: 83 FE 01 - cmp esi,01 "FClient.exe"+1513F8: 7F 08 - jg FClient.exe+151402 "FClient.exe"+1513FA: C7 44 24 14 01 00 00 00 - mov [esp+14],00000001 "FClient.exe"+151402: DB 44 24 14 - fild dword ptr [esp+14] "FClient.exe"+151406: 8B C3 - mov eax,ebx "FClient.exe"+151408: 2B 47 74 - sub eax,[edi+74] "FClient.exe"+15140B: DC 0D 68 C0 12 01 - fmul qword ptr [FClient.exe+33C068] "FClient.exe"+151411: D9 5C 24 10 - fstp dword ptr [esp+10] // ---------- INJECTING HERE ---------- "FClient.exe"+151415: D9 47 6C - fld dword ptr [edi+6C] "FClient.exe"+151418: D9 E8 - fld1 // ---------- DONE INJECTING ---------- "FClient.exe"+15141A: DC E9 - fsub st(1),st(0) "FClient.exe"+15141C: D9 44 24 10 - fld dword ptr [esp+10] "FClient.exe"+151420: D9 C0 - fld st(0) "FClient.exe"+151422: 89 44 24 10 - mov [esp+10],eax "FClient.exe"+151426: DE FB - fdivp st(3),st(0) "FClient.exe"+151428: D9 CA - fxch st(2) "FClient.exe"+15142A: D9 5C 24 14 - fstp dword ptr [esp+14] "FClient.exe"+15142E: DB 44 24 10 - fild dword ptr [esp+10] "FClient.exe"+151432: 79 06 - jns FClient.exe+15143A "FClient.exe"+151434: D8 05 BC B9 12 01 - fadd dword ptr [FClient.exe+33B9BC] }
Вообщем - на двух компах работает. вылетов нет. перезаходил в игру - включал выключал скрипт - тестил часа 3-4. Теперь есть другой адрес..но там инструкция работает не с одним адресом...и придется изучать фильтры. P.S. подскажите - вот этот скрипт на вид верен или нет?
-
40 минуты назад, Garik66 сказал:
Ну ладно, результатов тестирования скриптов, я по-видимому не дождусь - я пошёл по делам.
Работа такая работа!) я пока работу работаю. не могу тестить) и на том пока спасибо!
-
Хорошо. щас уже столько скриптов накопилось)) не запутаться бы)
-
Только что, Garik66 сказал:
Должны работать правильно все три скрипта.
Попробовал вот этот вариант
Скрытый текст{ Game : FClient.exe Version: Date : 2016-10-09 Author : NickGrava This script does blah blah blah } [ENABLE] aobscanmodule(Adress,FClient.exe,D9 5F 6C 5E 5B) // should be unique alloc(newmem,$1000) label(return) label(myAddr) registersymbol(myAddr) registersymbol(Adress) newmem: fstp dword ptr [edi+6C] lea ebx,[edi+6C] mov [myAddr],ebx pop esi pop ebx jmp return myAddr: dd 0 Adress: jmp newmem return: [DISABLE] Adress: db D9 5F 6C 5E 5B unregistersymbol(myAddr) unregistersymbol(Adress) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "FClient.exe"+151F38 "FClient.exe"+151F13: 8B 8F 88 00 00 00 - mov ecx,[edi+00000088] "FClient.exe"+151F19: 89 5F 64 - mov [edi+64],ebx "FClient.exe"+151F1C: 8B 49 04 - mov ecx,[ecx+04] "FClient.exe"+151F1F: B8 06 00 00 00 - mov eax,00000006 "FClient.exe"+151F24: E8 97 40 ED FF - call FClient.exe+25FC0 "FClient.exe"+151F29: 89 45 F4 - mov [ebp-0C],eax "FClient.exe"+151F2C: DB 45 F4 - fild dword ptr [ebp-0C] "FClient.exe"+151F2F: D9 5D F4 - fstp dword ptr [ebp-0C] "FClient.exe"+151F32: D9 45 F4 - fld dword ptr [ebp-0C] "FClient.exe"+151F35: D9 57 70 - fst dword ptr [edi+70] // ---------- INJECTING HERE ---------- "FClient.exe"+151F38: D9 5F 6C - fstp dword ptr [edi+6C] "FClient.exe"+151F3B: 5E - pop esi "FClient.exe"+151F3C: 5B - pop ebx // ---------- DONE INJECTING ---------- "FClient.exe"+151F3D: 8B E5 - mov esp,ebp "FClient.exe"+151F3F: 5D - pop ebp "FClient.exe"+151F40: C3 - ret "FClient.exe"+151F41: CC - int 3 "FClient.exe"+151F42: CC - int 3 "FClient.exe"+151F43: CC - int 3 "FClient.exe"+151F44: CC - int 3 "FClient.exe"+151F45: CC - int 3 "FClient.exe"+151F46: CC - int 3 "FClient.exe"+151F47: CC - int 3 }
Получил вылет игры.
-
Попробую щас вариант с Вашим скриптом. А вот по поводу 4 скрипта - не соглашусь. Там же точка инъекции абсолютно в ином месте. Я может чего то не допонимаю...но я вижу другой порядок инструкций в 4 скрипте.
-
Ну скрипт делал не я изначально. Его предложил Keng. Я просто немного переделал. А главное он заработал)
-
Вообщем вот рабочий вариант скрипта!
Скрытый текст[ENABLE] registersymbol(myAddr) alloc(newmem,64) alloc(myAddr,4) label(returnhere) newmem: fstp dword ptr [edi+6C] // Оригинальный код игры lea ebx,[edi+6C] // Загружаем в EAX адрес EDI+6C mov [myAddr],ebx // Сохраняем адрес в myAddr, скопировав его из EAX pop esi pop ebx jmp returnhere "FClient.exe"+151F38: jmp newmem returnhere: [DISABLE] "FClient.exe"+151F38: db D9 5F 6C 5E 5B dealloc(newmem) dealloc(myAddr) unregistersymbol(myAddr)
Как дошел до такого)) - 1) сначала перенес мои действия после оригинальной инструкции. Игра вылетала. 2) А потом заметил одну малость и добавил строчку dealloc(myAddr) которой не было - и ведь заработало!!! P.S. в комментах к скрипту от Keng - регистр EAX - c ним не пошло почему то. Пошло с EBX.
-
По факту значение что выдает скрипт и то что есть на самом деле разные. Попытаюсь разобраться почему так.
-
Спасибо!!!!
- 1
-
1 минуту назад, Garik66 сказал:
Опять же - зачем ручками? Есть же инструкция.
Точно!))) обалдеть) я чет и не подумал что теперь можно так адрес находить...
-
Опа...вроде прокатило. Только я строчку про mov float 23 стер. дабы ничего не писать в память.
Щас адрес ручками найду - и буду сверять те ли данные мы получаем.
-
2 минуты назад, Garik66 сказал:
Так это же просто мы это уже делали в первом скрипте, сейчас сделаю Скрипт 4 и выложу таблицу.
Это да, я уже сделал. Щас буду пробовать. Ой, чет напрямую не дает копирнуть. Надо через что-то.
-
35 минуты назад, Garik66 сказал:
Скрипт 3 более правильный
Хм...щас буду пытаться значение [ebp-0C] куда нить в известное место засовывать. думаю так прокатит.
-
Сейчас поставил CE 6.6 подгрузил таблицу последнюю. Скрипт 2 не активируется. Скрипт 3 работает.
-
Вылет вылетом...только мне этот скрипт нужен не для того чтобы что-то писать в память. мне важно просто иметь адрес который я потом просто буду читать в боте. Так что по идее - вылета не должно быть.
Скрипты поюзаю.
Ну вроде как второй скрипт вылета не вызывает пока.
-
Ну правда я не понял что они делают))) ну лан) Есть шанс что основной скрипт будет работать?))
-
Только что, Garik66 сказал:
Проверьте и Скрипт 3 тоже. Отпишитесь. Жду результатов.
Скрипт 3 - все отработало. Игра не вылетела.
-
2 минуты назад, Garik66 сказал:
Скрипт 2 ?
Скрипт 3 ну второй тож норм отработал.
-
Все отработало. Игра не вылетела.
-
Скрытый текст
{ Game : FClient.exe
Version:
Date : 2016-10-09
Author : GravaPCThis script does blah blah blah
}[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
aobscanmodule(Garik66,FClient.exe,D9 45 F4 D9 57 70) // should be unique
alloc(newmem,$1000)label(code)
label(return)newmem:
code:
fld dword ptr [ebp-0C]
fst dword ptr [edi+70]
jmp returnGarik66:
jmp code
nop
return:
registersymbol(Garik66)[DISABLE]
//code from here till the end of the code will be used to disable the cheat
Garik66:
db D9 45 F4 D9 57 70unregistersymbol(Garik66)
dealloc(newmem){
// ORIGINAL CODE - INJECTION POINT: "FClient.exe"+151F32"FClient.exe"+151F0A: 83 C1 10 - add ecx,10
"FClient.exe"+151F0D: 89 8F A0 00 00 00 - mov [edi+000000A0],ecx
"FClient.exe"+151F13: 8B 8F 88 00 00 00 - mov ecx,[edi+00000088]
"FClient.exe"+151F19: 89 5F 64 - mov [edi+64],ebx
"FClient.exe"+151F1C: 8B 49 04 - mov ecx,[ecx+04]
"FClient.exe"+151F1F: B8 06 00 00 00 - mov eax,00000006
"FClient.exe"+151F24: E8 97 40 ED FF - call FClient.exe+25FC0
"FClient.exe"+151F29: 89 45 F4 - mov [ebp-0C],eax
"FClient.exe"+151F2C: DB 45 F4 - fild dword ptr [ebp-0C]
"FClient.exe"+151F2F: D9 5D F4 - fstp dword ptr [ebp-0C]
// ---------- INJECTING HERE ----------
"FClient.exe"+151F32: D9 45 F4 - fld dword ptr [ebp-0C]
"FClient.exe"+151F35: D9 57 70 - fst dword ptr [edi+70]
// ---------- DONE INJECTING ----------
"FClient.exe"+151F38: D9 5F 6C - fstp dword ptr [edi+6C]
"FClient.exe"+151F3B: 5E - pop esi
"FClient.exe"+151F3C: 5B - pop ebx
"FClient.exe"+151F3D: 8B E5 - mov esp,ebp
"FClient.exe"+151F3F: 5D - pop ebp
"FClient.exe"+151F40: C3 - ret
"FClient.exe"+151F41: CC - int 3
"FClient.exe"+151F42: CC - int 3
"FClient.exe"+151F43: CC - int 3
"FClient.exe"+151F44: CC - int 3
} -
1 минуту назад, Garik66 сказал:
Зачем руками то, я же дал инструкцию и её адрес:
"FClient.exe"+151F32: D9 45 F4 - fld dword ptr [ebp-0C]
Эммм...если б уметь по другому..))) я ж новичок в этом. я знаю что можно как то найти инструкцию где-то..а как и где - уже не знаю.
-
Щас попробую таблицу добавить. Что касаемо скрипта с AOBScan - щас адрес руками найду - выложу.
Добавил - скрипт активировался. Игра не вылетела.
-
Только что, Garik66 сказал:
Ну что клюёт? Или - вылетает?
Скрипт не активируется. по причине указанной мной выше)
-
Он мне выдает что инструкция
mov [edi+6C],41B80000
не может быть откомпилирована.
Поиск статического указателя в игре
in Вопросы по взлому MMO игр
Опубликовано
Спасибо!!! будем мучать дальше! Тема наконец то закрыта)