Вопрос Дебаг

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




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

Если что сурс ikeaware(csgosimple)
 
Keine panik!
Эксперт
Статус
Оффлайн
Регистрация
29 Апр 2020
Сообщения
812
Реакции[?]
417
Поинты[?]
49K
Ты уверен что инжектишь, а не мануалмаппишь? При мануалмапе модуль не попадает в список загрузчика, и студия не найдет его.
Символы студия не видит, поэтому не может сопоставить дизасм код с исходным кодом.
А так ошибка в том, что функция вызывается не с нужным соглашением, в csgo они бывают весьма странные похожие на x64 только в x86, хотя они компилируют тоже студией.
 
Пользователь
Статус
Оффлайн
Регистрация
8 Сен 2018
Сообщения
189
Реакции[?]
42
Поинты[?]
0
Ты уверен что инжектишь, а не мануалмаппишь? При мануалмапе модуль не попадает в список загрузчика, и студия не найдет его.
Символы студия не видит, поэтому не может сопоставить дизасм код с исходным кодом.
А так ошибка в том, что функция вызывается не с нужным соглашением, в csgo они бывают весьма странные похожие на x64 только в x86, хотя они компилируют тоже студией.
Да, я инжекчу мануалмапом, ибо лл эта штука не инжектится
 
Keine panik!
Эксперт
Статус
Оффлайн
Регистрация
29 Апр 2020
Сообщения
812
Реакции[?]
417
Поинты[?]
49K
Да, я инжекчу мануалмапом, ибо лл эта штука не инжектится
Тогда тебе не получить нормальной отладки, студия не может узнать где твой модуль даже лежит, она видит адрес где происходит исключение, но и представить не может что этот код именно твоей библиотеки.
Хотя например маппер из BlackBone умеет добавлять смапленный модуль в список загрузчика, тогда должно прокатить.
По какой причине лл не работает? Просто ничего не происходит?
 
Пользователь
Статус
Оффлайн
Регистрация
8 Сен 2018
Сообщения
189
Реакции[?]
42
Поинты[?]
0
Тогда тебе не получить нормальной отладки, студия не может узнать где твой модуль даже лежит, она видит адрес где происходит исключение, но и представить не может что этот код именно твоей библиотеки.
По какой причине лл не работает? Просто ничего не происходит?
Да, я вот инжекчу лл, инжектор мне пишет что заинжекчено, но в игре ничего не появляется и отладка не начинается.
 
Разработчик
Статус
Оффлайн
Регистрация
1 Сен 2018
Сообщения
1,596
Реакции[?]
879
Поинты[?]
113K
Keine panik!
Эксперт
Статус
Оффлайн
Регистрация
29 Апр 2020
Сообщения
812
Реакции[?]
417
Поинты[?]
49K
Да, я вот инжекчу лл, инжектор мне пишет что заинжекчено, но в игре ничего не появляется и отладка не начинается.
VAC ставит хуки на NtOpenFile (открытие файла) и LoadLibraryExW (все лл сводятся к этой) и запрещает загрузку недоверенных модулей.
Достаточно снять хуки и лл заработает, можешь прочитать их оригинал в другом процессе, т.к. системные библиотеки находятся по одним и тем же адресам в разных процессах это прокатит.
 
Пользователь
Статус
Оффлайн
Регистрация
8 Сен 2018
Сообщения
189
Реакции[?]
42
Поинты[?]
0
Keine panik!
Эксперт
Статус
Оффлайн
Регистрация
29 Апр 2020
Сообщения
812
Реакции[?]
417
Поинты[?]
49K
В чем уже тут может быть проблема
Например софт пытается найти адрес функции в игре, и в итоге не находит, но не проверяет этого, а пытается ее вызвать.
Покажи стек вызовов при этом, откуда выполнение пришло сюда.
 
Пользователь
Статус
Оффлайн
Регистрация
8 Сен 2018
Сообщения
189
Реакции[?]
42
Поинты[?]
0
Например софт пытается найти адрес функции в игре, и в итоге не находит, но не проверяет этого, а пытается ее вызвать.
Покажи стек вызовов при этом, откуда выполнение пришло сюда.
 
Keine panik!
Эксперт
Статус
Оффлайн
Регистрация
29 Апр 2020
Сообщения
812
Реакции[?]
417
Поинты[?]
49K
Пкм по стеку вызовов, затем Показать внешний код.
Еще, ты уверен что в сорсе нет никакой защиты от отладки? Это похоже на затирание стека и прыжок на nullptr.
 
Пользователь
Статус
Оффлайн
Регистрация
8 Сен 2018
Сообщения
189
Реакции[?]
42
Поинты[?]
0
Пкм по стеку вызовов, затем Показать внешний код.
Еще, ты уверен что в сорсе нет никакой защиты от отладки? Это похоже на затирание стека и прыжок на nullptr.



Насчет защиты от отладки ничего сказать не могу, я практически ничего не менял в сурсах из этой темы - https://yougame.biz/threads/189051/
Можешь сам посмотреть что там происходит)
 
Keine panik!
Эксперт
Статус
Оффлайн
Регистрация
29 Апр 2020
Сообщения
812
Реакции[?]
417
Поинты[?]
49K
Можешь сам посмотреть что там происходит)
Символов по прежнему нет, даже не смотря на то, что ты компилируешь в дебаге они видимо выключены.
В меню студии Проект > Свойства: (имя проекта) > Компоновщик > Создавать отладочную информацию > Создать сведения об отладке (/DEBUG).
После этого символы должны появится, и наконец то можно будет увидеть кто вызывает функцию по нулевому указателю.
 
Пользователь
Статус
Оффлайн
Регистрация
8 Сен 2018
Сообщения
189
Реакции[?]
42
Поинты[?]
0
Символов по прежнему нет, даже не смотря на то, что ты компилируешь в дебаге они видимо выключены.
В меню студии Проект > Свойства: (имя проекта) > Компоновщик > Создавать отладочную информацию > Создать сведения об отладке (/DEBUG).
После этого символы должны появится, и наконец то можно будет увидеть кто вызывает функцию по нулевому указателю.
Так изначально и стоит
 
Keine panik!
Эксперт
Статус
Оффлайн
Регистрация
29 Апр 2020
Сообщения
812
Реакции[?]
417
Поинты[?]
49K
Так изначально и стоит
У тебя вместо имен функций в стеке вызовов 3605****, так или иначе студия не видит символов, а без них не узнать где именно ошибка.
Можно конечно смотреть и ассемблерный код, но это глупости.
Либо инжектишь не ту библиотеку, либо символов просто нет, поэтому убедись и что инжектишь дебаг либу и что компилируешь в нужной конфигурации и что выставлены символы отладки тоже в нужной конфигурации.
 
Сверху Снизу