以下是我正在处理的一些代码:http://pastebin.com/92Nzc6pG
我基本上将代码注入到正在运行的进程中,但问题是,CRT库不再有效,所以我不能使用字符串。那有什么变通方法吗?我的程序的其余部分也需要创建/修改字符串,所以我真的需要解决这个问题。
我设法让它传递一个char指针,如下所示:http://pastebin.com/T1qdjfRK
然而,使用字符串仍然是一种"必须"对我来说,所以任何变通办法,想法和任何欢迎。
答案 0 :(得分:0)
更简单的方法是注入只需加载适当导入和重定位的DLL的最小代码。加载DLL后,加载程序将满足您的所有导入。
如果由于某种原因你真的必须注入代码而不是DLL,你必须确保你的代码是针对编译过程的相同CRT编译的。如果它根本不使用CRT,你可以使用静态CRT,或根本不使用CRT。 Windows具有内置字符串函数,如lstrlen()和朋友。
到目前为止,最简单的方法是注入整个DLL而不仅仅是代码。它会有点复杂,因为它有两个步骤,但是一旦你完全加载,你可以像在自己的过程中那样完成所有事情。