第15章课后作业
因为这一章节练习量较大,因此按照各个小节分组。
Windows 架构、API与编程调用
练习
1:分析 OpenProcess 的调用链
2:使用 C++ 调用 CreateProcess API,运行 calc.exe 程序
3:使用 P/Invoke 通过序数调用 OpenProcess,运行 calc.exe 程序
4:使用 D/Invoke 调用 OpenProcess,运行 calc.exe 程序
5:D/Invoke 还有其他方式获得对模块以及 API 的句柄,例如通过方法 GetPebLdrModuleEntry 来获得对 DLL 的句柄。请查看 D/Invoke 的仓库 README 文档并分别进行尝试
6:查阅资料,分别在 VBA 以及 PowerShell 中调用 OpenProcess,运行 calc.exe 程序
7:在 .NET 中,执行 Shellcode 的经典方式为使用 VirtualAlloc 分配内存空间、使用 Marshal.Copy 写入 Shellcode,使用 CreateThread 创建线程,以及使用 WaitForSingleObject 来等待线程的结束。根据描述以及 API 的文档写出 C# 代码,分别使用 P/Invoke 以及 D/Invoke。