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

Dino

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

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

  • Посещение

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

    4

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

  1. Скорее всего защита еще и список модулей мониторит
  2. дальше либо защиту снимать, либо забивать на эту игру
  3. Предположу что там установлена защита целостности памяти. Попробуй пустой хук поставить( без внесения свое кода)
  4. Скрипт - это и есть то что ты пишешь, так что вылет происходит именно с твоей подачи. Что касается отладчика, это вообще отдельный разговор , наивно верить, что все проблемы сопровождаются одной причиной. кинь ссылку на игру
  5. Ты понимаешь что вопрос задан не корректно? И тебе никто из присутствующий здесь не даст корректного ответа, потому что попросту не поймут чего ты хочешь сделать. Но хорошо хоть скрипт привел, так бы и сказал что пишешь фильтр объектов. Задача в принципе тривиальная, на ютубе этой информации пруд пруди. Если не получается сразу два объекта отфильтровать, то пиши сначала для одного
  6. Суть в чем? В том чтобы найти два нужных тебе адреса?Почему два , а не три или один ? Зачем тебе их нужно найти? Что подразумевается под словом "нужные"? Работает что? Поиск адресов? Вылетает из-за чего? Из-за поиска адресов? Вылетает после установки breakpoint или после N-го количества step'ов ?
  7. Проверь функции LdrLoadDll, LoadLibraryA, LoadLibraryW, LoadLibraryExW, LoadLibraryExA =) Если в них ничего подозрительного не найдешь, то скорее всего стоит защита от CreateRemoteThread
  8. ага ты прав.. А все из за того что я трамплин не из того места вызываю Вот исправленный вариант: Dllmain.cpp(код твоей Dll, которая должна быть загружена в игру) Asm файл(так же должен быть включен в проект с Dll !)
  9. Вот на примере игры сапер Win7 x64, при нажатии на кнопку "О программе" она будет отправлять через пайп содержимое регистра RAX в твою программу Main.cpp (код твоей программы) Dllmain.cpp(код твоей Dll, которая должна быть загружена в игру) Asm файл(так же должен быть включен в проект с Dll !) Код для загрузки Dll в стороннее приложение можешь найти где угодно, поэтому не вижу смысла его здесь приводить.
  10. код хука нужно писать в самой dll, чтобы не было проблем с релоками и импортами, так что предлагаю отказаться от VirtualAllocEx
  11. Для начала читаешь о межпроцессорном взаимодействие, затем когда определишься какой метод будешь использовать можешь писать хук. Задача хука - прочитать содержимое регистра и отправить его твоей программе. Задача твоей программы - получить и обработать посылку. Естественно все это должно происходить синхронно.
  12. была бы RPG быть может что-нибудь и посоветовал бы, но это шутан да еще и браузерный, так что я пас..
  13. Ну не зря же всегда на MSDN отправляют , когда речь заходит о WINAPI функциях ) MessageBox как раз из их числа.
  14. Если из CE, то это не раз размусоливалось
  15. хз, такие вещи надо под отладчиком исследовать, туториал не лучший подопытный, чтобы начать разбираться
  16. Я конечно польщен что специально для меня записываются видео, только зачем вырывать фразы из контекста, не видя всю картину целиком? https://youtu.be/qNG4qiEdQTk?t=53 ты не можешь остановить поток, потому что ты его не создавал Почему у тебя не вылетает? По ряду причин, допустим ГЛ поток выбрасывает исключение, быть может @DarkByte предусмотрел такое извращение с кодом, на то он и туториал.. У @MasterGH кстати годная статья для того времени, но там не описаны важные аспекты, на чем новички и спотыкаются пытаясь реализовать подобное В общем делай как знаешь и учи людей по этим ошибкам, раз читаешь между строк.
  17. Если понимаешь, то как по твоему может выполниться только одна инструкция? Или мб он какой-то другой с твоей точки зрения? И да, я первый раз был не столь внимателен, потому что у тебя еще один косяк Все твои действия выполняются из ГЛ потока программы, ты хукаешь инструкцию, которая крутится в бесконечном в цикле, но только вот своим ret ты преждевременно выходишь из функции(которую захукал) не дав программе выполнить последующий код, в результате повреждение стека , регистров и краш. Но эта ошибка не имеет смысла потому что ты уже убил программу раннее.)
  18. да конечно рас http://trubetskoy1.narod.ru/arttranslate/FuncCallPart1.html два http://trubetskoy1.narod.ru/arttranslate/FuncCallPart2_1.html три
  19. Ясень пень такой код будет крашить нормальную программу, видимо автор видео не понимает механизм работы call call запихивает в стек значение регистра EIP+<длина инcтрукции call> и выполняет весь код начиная с указанного адреса пока не дойдет до инструкцию ret. Инструкция ret извлекает из стека этот адрес, чтобы выйти из функции и продолжить выполнять последующий код. Так же почти в каждой функции есть код пролога и эпилога, а если функция еще и использует локальные переменные, то нужно выделить память на стеке, а в конце подчищать стек. А тк @Garik66 вызывает функцию где-то с середины, то у него выполняются только последние действия чистка стека и код эпилога... То есть в этом случае 100% был поврежден стек и большинство регистров
  20. Это все вода. Первостепенными задачами щас являются 1. найти начало вызова функции(Угарнул что DB на этот счет придумал "Select current function", задача то тривиальная) 2. определить соглашение о вызове, чтобы понять как передаются аргументы через стек/регистры или и то и другое. И должен ли вызывающий поток подчищать за ней стек 3 .Определить количество переданных аргументов - например если функция является членом класса, то указатель неявно передается первым аргументом, на что многие думают, мол функция не принимает никаких аргументов, а на самом деле нифига. вот это основа, а об оптимизации можно задуматься после.
  21. Чем это создание потока отличается от того что упоминалось выше? И куда ему поток вешать, если он даже начало функции не может найти
×
×
  • Создать...

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

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