Перейти к содержанию

Dino

Пользователи+
  • Постов

    160
  • Зарегистрирован

  • Посещение

  • Победитель дней

    4

Весь контент Dino

  1. Dino

    cmp строки

    тыж понимаешь что это то же самое? в регистр eax запихивается подстрока начиная с 9го байта и интерпретируется как 4х байтное целое число затем вот этот набор символов 'play' интерпретируется в число . И в итоге вот эта cmp eax,'play' инструкция сравнивает числа . Недостаток этого способа что он может сравнивать не более 4х байт
  2. Dino

    cmp строки

    А что ты ожидал там увидеть? Указатель на следующую строку?
  3. Dino

    cmp строки

    Ппфф где ты ошибку нашел? Индексация массива символов "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'
  4. Dino

    cmp строки

    это такой кривой ход, что бы вытащить подстроку
  5. Dino

    cmp строки

    aobscan возвращает правильный адрес? доступ к структуре точно через ECX?
  6. Dino

    cmp строки

    Ну хз.. если говорить об универсальности, то можно и вручную написать. А если занимаешься игрой в которой уже присутствуют готовые решения, то грех ими не воспользоваться. helldrg Фул код в студию. Дело либо в хуке , либо пытаешься прочитать не валидный адрес
  7. Dino

    cmp строки

    Не проще ли воспользоваться готовой функцией?
  8. походу я соврал насчет short и near - это не одно и тоже http://x86.renejeschke.de/html/file_module_x86_id_147.html
  9. Да конечно умеет. Но я понимаю стремление ТСа самому разобраться в этом. Ноу. EB - это и есть код команды short jmp (short\near одно и тоже) FE - это относительное смещение , которое ты высчитал по формуле 11D70000 EB FE - jmp 11D70000
  10. это относительных переход и рассчитывается по формуле <Адрес куда прыгаем> - <Адрес от куда прыгаем> - <Количество байт занятых под команду jmp> то бишь 0x088A0000 - 0x088A0000 - 2 тк это near jmp, то он будет занимать 2 байт в итоге получаем EB FE
  11. Разобрался, я думал та функция самодостаточная, а оказывается на асм код нужно еще поток вешать и аргументы из lua передаются посредством registerSymbol
  12. Dino

    [CE] Lua - asm вставки

    Доброго времени суток! Гулял я по просторам http://wiki.cheatengine.org/index.php?title=Lua и набрел на такую замечательную вещь: function autoAssemble(AutoAssemblerScript, TargetSelf OPTIONAL). Как я понял эта функция запускает на выполнение ассемблерный код из Lua Engine. Только вот почему-то она не работает.. То что в блоке autoAssemble вообще не отрабатывает.. Подскажите что делаю не так?
  13. Дай угадаю.. размер получаешь при помощи GetProcessMemoryInfo, при этом не получив отладочные привилегии?
  14. речь идет о вызове функции через регистр, а не передачи аргументов. происходит обращение к таблице виртуальных методов объекта, затем в регистр запихивается необходимая функция ... mov eax,[ecx] mov eax,[eax+0x0C] //4ая функция call eax
  15. Если известен адрес функции , ьто просто ставишь breakpoint на начало вызова и на верхушке стека находишь адрес(это адрес от куда произошел вызов). Nными словами я не знаю как это объяснить. Ollydbg, CE, IDA в помощь
  16. а чем тебе эт и два процесса не угодили??? '((
  17. ты имеешь ввиду виртулаьный метод? тогда ставить бряк на на чало вызова функции, как и во всяком случае
  18. _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.
  19. в коде опечатался это case WM_LBUTTONDOWN: if (lpmsg->wParam == VK_F1) return 0; на это case WM_KEYUP: if (lpmsg->wParam == VK_F1) return 0;
  20. грубо говоря она записывает по переданному адресу команду jmp <адрес нашего хука> , затем создает трамплин состоящий из оригинальных байт (которые затерли в оригинальной функции командой jmp ) и команды jmp<адрес оригинальной функции + число байт которые затерли> Трамплин нужен на случай, если мы захотим выполнить оригинальную функцию из хука.
  21. Этот распространенный метод установки хуков, можно найти на просторах интернета, дабы не изобретать каждый раз велосипед. Смысл тот же что и у @keng только реализация немного другая Похоже у стажеров нет такой возможности=)
  22. Блин , спойлер похабит код, запостил заново
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.