-
Постов
160 -
Зарегистрирован
-
Посещение
-
Победитель дней
4
Тип контента
Профили
Форумы
Загрузки
Блоги
Весь контент Dino
-
тыж понимаешь что это то же самое? в регистр eax запихивается подстрока начиная с 9го байта и интерпретируется как 4х байтное целое число затем вот этот набор символов 'play' интерпретируется в число . И в итоге вот эта cmp eax,'play' инструкция сравнивает числа . Недостаток этого способа что он может сравнивать не более 4х байт
- 51 ответ
-
- 1
-
-
А что ты ожидал там увидеть? Указатель на следующую строку?
- 51 ответ
-
- 1
-
-
Ппфф где ты ошибку нашел? Индексация массива символов "teamplayer" в структуре начинается с 5го байта, т е +4 - 't' +5 - 'e' +6 - 'a' +7 - 'm' +8 - 'p' - [ecx+8] +9 - 'l' +0xa - 'a' +0xb - 'y' +0xc - 'e' +0xd - 'r' +0xe - '\0'
- 51 ответ
-
- 1
-
-
это такой кривой ход, что бы вытащить подстроку
-
aobscan возвращает правильный адрес? доступ к структуре точно через ECX?
-
Ну хз.. если говорить об универсальности, то можно и вручную написать. А если занимаешься игрой в которой уже присутствуют готовые решения, то грех ими не воспользоваться. helldrg Фул код в студию. Дело либо в хуке , либо пытаешься прочитать не валидный адрес
-
Не проще ли воспользоваться готовой функцией?
-
походу я соврал насчет short и near - это не одно и тоже http://x86.renejeschke.de/html/file_module_x86_id_147.html
-
Да конечно умеет. Но я понимаю стремление ТСа самому разобраться в этом. Ноу. EB - это и есть код команды short jmp (short\near одно и тоже) FE - это относительное смещение , которое ты высчитал по формуле 11D70000 EB FE - jmp 11D70000
-
это относительных переход и рассчитывается по формуле <Адрес куда прыгаем> - <Адрес от куда прыгаем> - <Количество байт занятых под команду jmp> то бишь 0x088A0000 - 0x088A0000 - 2 тк это near jmp, то он будет занимать 2 байт в итоге получаем EB FE
-
Разобрался, я думал та функция самодостаточная, а оказывается на асм код нужно еще поток вешать и аргументы из lua передаются посредством registerSymbol
-
Доброго времени суток! Гулял я по просторам http://wiki.cheatengine.org/index.php?title=Lua и набрел на такую замечательную вещь: function autoAssemble(AutoAssemblerScript, TargetSelf OPTIONAL). Как я понял эта функция запускает на выполнение ассемблерный код из Lua Engine. Только вот почему-то она не работает.. То что в блоке autoAssemble вообще не отрабатывает.. Подскажите что делаю не так?
-
Дай угадаю.. размер получаешь при помощи GetProcessMemoryInfo, при этом не получив отладочные привилегии?
-
а чем тебе эт и два процесса не угодили??? '((
-
а почему у тебя это не массив?
-
а если у приложения нет окна?
-
_SERVICE_STATUS_PROCESS Services ; какой же это массив, это одна структура и к тому же.. открываем MSDN и читаем InfoLevel [in] The service attributes that are to be returned. Use SC_ENUM_PROCESS_INFO to retrieve the name and service status information for each service in the database. The lpServices parameter is a pointer to a buffer that receives an array of ENUM_SERVICE_STATUS_PROCESS structures. The buffer must be large enough to hold the structures as well as the strings to which their members point. Currently, no other information levels are defined.
-
в коде опечатался это case WM_LBUTTONDOWN: if (lpmsg->wParam == VK_F1) return 0; на это case WM_KEYUP: if (lpmsg->wParam == VK_F1) return 0;
-
грубо говоря она записывает по переданному адресу команду jmp <адрес нашего хука> , затем создает трамплин состоящий из оригинальных байт (которые затерли в оригинальной функции командой jmp ) и команды jmp<адрес оригинальной функции + число байт которые затерли> Трамплин нужен на случай, если мы захотим выполнить оригинальную функцию из хука.
-
Этот распространенный метод установки хуков, можно найти на просторах интернета, дабы не изобретать каждый раз велосипед. Смысл тот же что и у @keng только реализация немного другая Похоже у стажеров нет такой возможности=)
-
Блин , спойлер похабит код, запостил заново