ReWanet Опубликовано 15 декабря, 2017 Поделиться Опубликовано 15 декабря, 2017 Ребят не много тупости с моей стороны -> Решил вызывать функцию создания объектов в игре но для начала пошел тренироваться на туторе CE x32. Передаю все вроде-то коротко вот код: Показать контент [ENABLE] aobscanmodule(Health,Tutorial-i386.exe+23CC3,81xxxxxxxxxxxxxxxxxx75xx8bxxxxxxxxxxb2xx8bxxxxxxxxxx8bxxffxxxxxxxxxx8bxxxxxxxxxxb2xx8bxxxxxxxxxx8bxxffxxxxxxxxxxxxxx00xx00xxxx89) alloc(newmem,$1000,Tutorial-i386.exe+23CC3) label(code) label(return) label(pHealth) globalalloc(pHealth,4) newmem: mov [pHealth],ebx cmp [ebx+00000480],000003E8 mov eax,#9999 code: jmp return pHealth: dd 0 Health: jmp newmem db 90 90 90 90 90 return: registersymbol(Health) registersymbol(pHealth) [DISABLE] Health: db 81 BB 80 04 00 00 E8 03 00 00 unregistersymbol(Health) unregistersymbol(pHealth) dealloc(newmem) dealloc(pHealth) { // ---------- INJECTING HERE ----------- Tutorial-i386.exe+23CC3: 81 BB 80040000 E8030000 - cmp [ebx+00000480],000003E8 // ---------- DONE INJECTING ---------- } Сам код: Показать контент [ENABLE] alloc(MyCode,1024) registersymbol(MyCode) CreateThread(MyCode) MyCode: mov eax,#123456 mov ebx,[pHealth] push ebx push eax call 00423B00 ret [DISABLE] unregistersymbol(MyCode) dealloc(mycode) Передаю точно все нужное скрипт активируется число пишется лавеха мутится но тутор дропается через 30-60 секунд. Возможно я что-то не так делаю ? Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 15 декабря, 2017 Поделиться Опубликовано 15 декабря, 2017 @ReWanet Выпиши себе пред Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 15 декабря, 2017 Автор Поделиться Опубликовано 15 декабря, 2017 В 15.12.2017 в 14:30, Garik66 сказал: Выпиши себе пред Показать Если бы мог то выписал ) Так ведь ты можешь! Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 15 декабря, 2017 Поделиться Опубликовано 15 декабря, 2017 В 15.12.2017 в 14:31, ReWanet сказал: можешь Показать не - не умею. Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 15 декабря, 2017 Автор Поделиться Опубликовано 15 декабря, 2017 В 15.12.2017 в 14:32, Garik66 сказал: не - не умею. Показать Это хорошо а то потом бы не отделался! Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 15 декабря, 2017 Поделиться Опубликовано 15 декабря, 2017 В 15.12.2017 в 14:27, ReWanet сказал: что-то Показать Это для какого шага туториала? что у тебя в [pHealth]? (если в другом скрипте объявляешь . то кинь сюда тоже dealloc(mycode) почему my а не My? call 00423B00 Мне кажется ты опкод разорвал: Tutorial-i386.exe+23B02 - 89 C6 - mov esi,eax Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 15 декабря, 2017 Автор Поделиться Опубликовано 15 декабря, 2017 В 15.12.2017 в 14:46, Garik66 сказал: Это для какого шага туториала? Показать Первый ( когда пост переделал забыл дописать ). Там где 100 hp в 4byte и надо 1000 заморозить. x32 тутор. В 15.12.2017 в 14:46, Garik66 сказал: что у тебя в [pHealth]? (если в другом скрипте объявляешь . то кинь сюда тоже Показать Показать контент [ENABLE] aobscanmodule(Health,Tutorial-i386.exe+23CC3,81xxxxxxxxxxxxxxxxxx75xx8bxxxxxxxxxxb2xx8bxxxxxxxxxx8bxxffxxxxxxxxxx8bxxxxxxxxxxb2xx8bxxxxxxxxxx8bxxffxxxxxxxxxxxxxx00xx00xxxx89) alloc(newmem,$1000,Tutorial-i386.exe+23CC3) label(code) label(return) label(pHealth) globalalloc(pHealth,4) newmem: mov [pHealth],ebx cmp [ebx+00000480],000003E8 mov eax,#9999 code: jmp return pHealth: dd 0 Health: jmp newmem db 90 90 90 90 90 return: registersymbol(Health) registersymbol(pHealth) [DISABLE] Health: db 81 BB 80 04 00 00 E8 03 00 00 unregistersymbol(Health) unregistersymbol(pHealth) dealloc(newmem) dealloc(pHealth) { // ---------- INJECTING HERE ----------- Tutorial-i386.exe+23CC3: 81 BB 80040000 E8030000 - cmp [ebx+00000480],000003E8 // ---------- DONE INJECTING ---------- } Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 15 декабря, 2017 Поделиться Опубликовано 15 декабря, 2017 @ReWanetа что ты хотел своим скриптом сделать для туториала? чтобы кнопочка активировалась? Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 15 декабря, 2017 Автор Поделиться Опубликовано 15 декабря, 2017 В 15.12.2017 в 15:08, Garik66 сказал: @ReWanetа что ты хотел своим скриптом сделать для туториала? чтобы кнопочка активировалась? Показать Не.. Это же запись числа ( Health ). Я просто передаю другое число в функцию и все. Без разницы что делаю мне важен сам факт вызова функции. Видео: Показать контент Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 15 декабря, 2017 Поделиться Опубликовано 15 декабря, 2017 В 15.12.2017 в 15:11, ReWanet сказал: Не.. Показать У меня версия СЕ 6.5. У тебя другая и там смещены инструкции. Ты не можешь кинуть какие у тебя окоды начиная с этого адреса call 00423B00 наверное это начало функции. Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 15 декабря, 2017 Автор Поделиться Опубликовано 15 декабря, 2017 В 15.12.2017 в 15:17, Garik66 сказал: У меня версия СЕ 6.5. У тебя другая и там смещены инструкции. Показать Смотри первый код ( где я делаю [pHealth] ) это инструкция проверки задания ( cmp [eax+xx],3E8 что-то такое ) А вызываю я функцию которая записывает число в [eax+xx] после вычитания когда жмем Hit Me. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 15 декабря, 2017 Поделиться Опубликовано 15 декабря, 2017 В 15.12.2017 в 15:22, ReWanet сказал: А вызываю я Показать Т ы меня не понял, мне нужно у себя увидеть куда ты прыгаешь..Я попробовал пересчитать твои адреса на адреса инструкций для моей версии, но там какая то лабуда. Можешь показать, что у тебя находиться на адресе 00423B00 в отладчике.В ТАКОМ ВИДЕ: Показать контент Tutorial-i386.exe+238FC - E8 0F9BFEFF - call Tutorial-i386.exe+D410 Tutorial-i386.exe+23901 - E8 1AB6FEFF - call Tutorial-i386.exe+EF20 Tutorial-i386.exe+23906 - 50 - push eax Tutorial-i386.exe+23907 - 85 C0 - test eax,eax Tutorial-i386.exe+23909 - 75 65 - jne Tutorial-i386.exe+23970 Tutorial-i386.exe+2390B - B8 05000000 - mov eax,00000005 { 5 } Tutorial-i386.exe+23910 - E8 5BADFEFF - call Tutorial-i386.exe+E670 Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 15 декабря, 2017 Поделиться Опубликовано 15 декабря, 2017 (изменено) В 15.12.2017 в 14:27, ReWanet сказал: 30-60 секунд. Показать Раз уверен, что все передается правильно, то проблема скорее всего в уничтожении потока. Возможно, функция которую ты вызываешь не завершается, а зацикливается и после уничтожения потока крашит программу. И в скрипте разве не ret 8 нужно использовать для возврата? Иначе стек не очищается от твоих переданных значений. зы хотя не, там вызов сам должен очищать его. Изменено 15 декабря, 2017 пользователем partoftheworlD Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 15 декабря, 2017 Автор Поделиться Опубликовано 15 декабря, 2017 В 15.12.2017 в 15:31, Garik66 сказал: Т ы меня не понял, мне нужно у себя увидеть куда ты прыгаешь. Показать Показать контент Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 15 декабря, 2017 Поделиться Опубликовано 15 декабря, 2017 @ReWanet, СЕНК щас попробую у себя замутить. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 15 декабря, 2017 Поделиться Опубликовано 15 декабря, 2017 В 15.12.2017 в 14:27, ReWanet сказал: Возможно я что-то не так делаю ? Показать Почитай пока это и ссылки - ТЫК может поможет. Лично у меня пока до сих пор ни разу не получилось вызвать поток без вылета, в голове пока не укладывается какие аргументы нужно передавать. Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 15 декабря, 2017 Автор Поделиться Опубликовано 15 декабря, 2017 В 15.12.2017 в 16:33, Garik66 сказал: Почитай пока это и ссылки - ТЫК может поможет. Показать Да там вроде ничего такого нет. Я вот по быстрому накидал консольный калькулятор и вызываю и все на ура и без вылетов. Скорее всего либо что-то не передал либо что-то с стеком. Ну как обычно ручки из попки Ссылка на комментарий Поделиться на другие сайты Поделиться
vagingameh Опубликовано 16 декабря, 2017 Поделиться Опубликовано 16 декабря, 2017 Подписался на вашу тему, ибо такое мне сейчас жизненно необходимо: В 30.11.2017 в 18:31, partoftheworlD сказал: Проверяешь, находишь нужную функцию. И вызываешь её удаленным потоком. Показать Если кто научиться идеально делать так, чтоб не вылетало при вызове функций - дайте знать! Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 17 декабря, 2017 Поделиться Опубликовано 17 декабря, 2017 В 16.12.2017 в 21:48, vagingameh сказал: Если кто научиться идеально делать так, чтоб не вылетало при вызове функций - дайте знать! Показать определи из-за чего вылет, неверно переданные аргументы или же проблема со стеком. Вроде как в вызове функций ничего сложного нет. Ссылка на комментарий Поделиться на другие сайты Поделиться
srg91 Опубликовано 17 декабря, 2017 Поделиться Опубликовано 17 декабря, 2017 В 16.12.2017 в 21:48, vagingameh сказал: Если кто научиться идеально делать так, чтоб не вылетало при вызове функций - дайте знать! Показать Возможно тебе нужно: 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения