Я изучаю реверс-инжиниринг на Windows. Я следил Обратный инжиниринг и вызов функций по адресу. Я не загружал эти исходные примеры. Я просто записываю небольшую консоль на С ++ и отлаживаю ее самостоятельно с помощью Ollydbg или xdbg64. Просто для того, чтобы узнать, как работает стек Windows.
#include <Windows.h>
#include <stdio.h>
void __cdecl mySecretFunction(int * param1, const char *param2,
DWORD param3, BYTE param4) {
// Do somethng
}
int main() {
// Do somethng and call mySmySecretFunction()
}
я имею включите / DEBUG и выберите Debug on Configuration на странице свойств приложения.
Я побежал App.exe
и это работает хорошо. Я отлаживаю с Ollydbg, он может работать нормально, но и разборка и символ exe пропали или отсутствуют. Так что я не могу отладить его.
Так что мне нужно сделать / настроить в visual studio 2017, чтобы я мог отлаживать свою простую консоль c ++ с помощью внешнего отладчика, такого как Ollydbg или x64dbg?
Следующие шаги работали для меня с Visual Studio 2017:
c:\x64dbg\release\x96dbg.exe
(обратите внимание на 96), это начинается x32dbg.exe
или же x64dbg.exe
в зависимости от вашей исполняемой архитектуры.Command Arguments
в "$(ProjectPath)" arg1 arg2
где $(ProjectPath)
предыдущее содержание команда а также arg1 arg2
предыдущее содержание Командные аргументы.Ctrl+F5
). Если вы запустите отладчик, как обычно, вы будете отлаживать саму x64dbg, что, вероятно, не то, что вам нужно.Реальная интеграция с x64dbg и Visual Studio отсутствует, просто запускается x64dbg с правильными аргументами для отладки приложения из Visual Studio, и вам будет гораздо удобнее загрузить приложение в x64dbg один раз, а затем вручную загрузить его для низкоуровневой отладки. ,
не включайте режим отладки, если вы хотите отлаживать в olly-DBG. Режим отладки предназначен для отладки в визуальной студии. в этом режиме вы можете видеть имя переменной и запускать программу построчно. название линии и разновидности не имеют значения в olly-DBG. лучше не компилировать в режиме отладки.
Вы не можете видеть свой код, потому что вы не приостанавливаете свою программу на winmain.
Идти к option
> Debugging option
> Events
и выберите Make first pause at:
>WinMain (if location is known)
надеюсь, это поможет вам.