Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

Вопрос Дебаг

Пользователь
Пользователь
Статус
Оффлайн
Регистрация
8 Сен 2018
Сообщения
192
Реакции
42
Спокойно подключаюсь к процессу, инжекчу длл, которая скомпилена в дебаге и тут же вылезает ошибка

5EgPWhsVBt0.jpg

SPMP82Ht4Sc.jpg


Пробовал найти решение, но безуспешно

Если что сурс ikeaware(csgosimple)
 
Ты уверен что инжектишь, а не мануалмаппишь? При мануалмапе модуль не попадает в список загрузчика, и студия не найдет его.
Символы студия не видит, поэтому не может сопоставить дизасм код с исходным кодом.
А так ошибка в том, что функция вызывается не с нужным соглашением, в csgo они бывают весьма странные похожие на x64 только в x86, хотя они компилируют тоже студией.
 
Ты уверен что инжектишь, а не мануалмаппишь? При мануалмапе модуль не попадает в список загрузчика, и студия не найдет его.
Символы студия не видит, поэтому не может сопоставить дизасм код с исходным кодом.
А так ошибка в том, что функция вызывается не с нужным соглашением, в csgo они бывают весьма странные похожие на x64 только в x86, хотя они компилируют тоже студией.
Да, я инжекчу мануалмапом, ибо лл эта штука не инжектится
 
Да, я инжекчу мануалмапом, ибо лл эта штука не инжектится
Тогда тебе не получить нормальной отладки, студия не может узнать где твой модуль даже лежит, она видит адрес где происходит исключение, но и представить не может что этот код именно твоей библиотеки.
Хотя например маппер из BlackBone умеет добавлять смапленный модуль в список загрузчика, тогда должно прокатить.
По какой причине лл не работает? Просто ничего не происходит?
 
Тогда тебе не получить нормальной отладки, студия не может узнать где твой модуль даже лежит, она видит адрес где происходит исключение, но и представить не может что этот код именно твоей библиотеки.
По какой причине лл не работает? Просто ничего не происходит?
Да, я вот инжекчу лл, инжектор мне пишет что заинжекчено, но в игре ничего не появляется и отладка не начинается.
 
Да, я вот инжекчу лл, инжектор мне пишет что заинжекчено, но в игре ничего не появляется и отладка не начинается.
VAC ставит хуки на NtOpenFile (открытие файла) и LoadLibraryExW (все лл сводятся к этой) и запрещает загрузку недоверенных модулей.
Достаточно снять хуки и лл заработает, можешь прочитать их оригинал в другом процессе, т.к. системные библиотеки находятся по одним и тем же адресам в разных процессах это прокатит.
 
В чем уже тут может быть проблема
Например софт пытается найти адрес функции в игре, и в итоге не находит, но не проверяет этого, а пытается ее вызвать.
Покажи стек вызовов при этом, откуда выполнение пришло сюда.
 
Например софт пытается найти адрес функции в игре, и в итоге не находит, но не проверяет этого, а пытается ее вызвать.
Покажи стек вызовов при этом, откуда выполнение пришло сюда.
CdpN-xr9DmM.jpg
 
Пкм по стеку вызовов, затем Показать внешний код.
Еще, ты уверен что в сорсе нет никакой защиты от отладки? Это похоже на затирание стека и прыжок на nullptr.
 
Пкм по стеку вызовов, затем Показать внешний код.
Еще, ты уверен что в сорсе нет никакой защиты от отладки? Это похоже на затирание стека и прыжок на nullptr.
axPZAso6DZQ.jpg



Насчет защиты от отладки ничего сказать не могу, я практически ничего не менял в сурсах из этой темы - https://yougame.biz/threads/189051/
Можешь сам посмотреть что там происходит)
 
Можешь сам посмотреть что там происходит)
Символов по прежнему нет, даже не смотря на то, что ты компилируешь в дебаге они видимо выключены.
В меню студии Проект > Свойства: (имя проекта) > Компоновщик > Создавать отладочную информацию > Создать сведения об отладке (/DEBUG).
После этого символы должны появится, и наконец то можно будет увидеть кто вызывает функцию по нулевому указателю.
 
Символов по прежнему нет, даже не смотря на то, что ты компилируешь в дебаге они видимо выключены.
В меню студии Проект > Свойства: (имя проекта) > Компоновщик > Создавать отладочную информацию > Создать сведения об отладке (/DEBUG).
После этого символы должны появится, и наконец то можно будет увидеть кто вызывает функцию по нулевому указателю.
Так изначально и стоит
 
Так изначально и стоит
У тебя вместо имен функций в стеке вызовов 3605****, так или иначе студия не видит символов, а без них не узнать где именно ошибка.
Можно конечно смотреть и ассемблерный код, но это глупости.
Либо инжектишь не ту библиотеку, либо символов просто нет, поэтому убедись и что инжектишь дебаг либу и что компилируешь в нужной конфигурации и что выставлены символы отладки тоже в нужной конфигурации.
 
Назад
Сверху Снизу