我是一名 RE 初学者,我决定开始编写自己的简单代码进行练习。
我编写了一个简单的代码,它使用名为 CreateProcess 的 winAPI 函数来启动 calc.exe,我用 C 语言编写它并使用官方 Microsoft SDK 编译它,Visual Studio 2019 作为发布版本。
exe 文件适用于 Windows 7 和 Windows 10,没有任何问题。
我搜索了 IDA 并转到了 start 函数,该函数应该指向主用户代码所在的位置,所以这里是我的问题:
- start 函数的分析失败了,我找不到代码重定向到我在代码中使用的 CreateProcess 函数的位置,它是这样的:
- 当我查找“calc.exe”时,我在不同的部分找到了它,在那里我不习惯看到它(与实用恶意软件分析书籍示例相比)。这是它的外观:
我安装了 IDA pro 6.8。
这是原始代码的样子,主函数只包含对 Create() 函数的调用:
void Create()
{
STARTUPINFO si;
PROCESS_INFORMATION pi;
SecureZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
SecureZeroMemory(&pi, sizeof(pi));
if (!CreateProcess(L"C:\\Windows\\system32\\calc.exe", NULL, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
{
printf("failed, error: %d", GetLastError());
}
else {
printf("Process successfuly started!");
}
}
编辑:
我添加到 Release 文件夹中的链接 PDB 文件,IDA 运行良好,它立即检测到主要功能!
但是我对自己说,如果我是恶意软件分析师,我会得到没有任何 PDB 文件的 EXE 文件,那我该怎么办?