我正在学习Windows上的逆向工程。我关注Reverse Engineering and Function Calling by Address。我没有下载那些源代码。我只需写下一个小的c ++控制台,然后使用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()
}
我在App属性页面上有enable /DEBUG and choose Debug on Configuration。
我跑了App.exe
,效果很好。我使用Ollydbg进行调试,它可以正常运行,但是both disassembly and symbol of the exe are gone or missing。所以我无法调试它。
那么我必须在Visual Studio 2017中进行/配置,以便我可以使用外部调试器(如Ollydbg或x64dbg)调试我的简单c ++控制台?
答案 0 :(得分:0)
以下步骤适用于Visual Studio 2017:
c:\x64dbg\release\x96dbg.exe
(请注意 96 ),这将启动x32dbg.exe
或x64dbg.exe
,具体取决于您的可执行架构。 Command Arguments
更改为"$(ProjectPath)" arg1 arg2
,其中$(ProjectPath)
是 Command 的先前内容,arg1 arg2
是命令参数的先前内容 Ctrl+F5
)来调试可执行文件。如果你像往常一样启动调试器,你将调试x64dbg本身,这可能不是你想要的。没有与x64dbg和Visual Studio的真正集成,这只是使用正确的参数启动x64dbg以从Visual Studio调试应用程序,并且通过在x64dbg中加载应用程序一次然后手动加载它以获得更好的服务级别的调试。
答案 1 :(得分:0)
您无法看到您的代码暂停,您不能在winmain暂停您的程序。
转到Debugging option
&gt; Events
&gt; Make first pause at:
并选择WinMain (if location is known)
&gt; {{1}}
希望对你有所帮助。
答案 2 :(得分:0)