如何使用 IDA Pro 和 WinDbg 作为调试器获取加载进程的入口点?

逆向工程 艾达 视窗 风袋 入口点
2021-06-24 19:27:58

我使用 IDA Pro 和 WinDbg 作为调试器。所以我将一个可执行进程加载到其中。现在我需要知道加载的可执行文件的入口点(或基地址),就像调用这些 API 一样:

MODULEINFO mi = {0};
if(::GetModuleInformation(::GetCurrentProcess(), ::GetModuleHandle(NULL), &mi, sizeof(mi)))
{
    //Needed entry point is:
    pEntryPoint = mi.EntryPoint;
}

我找到了这个参考,但是当我这样做时:

idaapi.get_imagebase()

它给了我错误:

当前调试会话“idaapi.get_imagebase()”中不支持操作

在此处输入图片说明

抱歉,我是 IDA 的新手。我究竟做错了什么?

1个回答

您需要切换到不同的命令行。目前,您使用的是 WinDbg 命令行,它允许您向 WinDbg 而不是 IDAPython 发送命令:

在此处输入图片说明

单击WinDbg,或按Ctrl切换到 IDAPython,这里idaapi.get_imagebase()工作正常:

在此处输入图片说明

但是,这并不能真正回答您的问题。你想要的是入口点,要找到它,你可以CtrlE在 IDA 中按下,或者用 WinDbg 找到它:

在此处输入图片说明

命令是:

.printf "0x%X", $exentry