我有一个相当直接的目标(它太简单了,因为它只是一个测试),将DLL注入hello_world以更改它打印的内容,但不修改hello_world.exe以提供帮助。我的目的是让我学习如何将类似的东西发送到更大的应用程序,而这些应用程序与hello_world不同。
我有一个test.exe创建了hello_world.exe进程,并且远程线程在hello_world.exe中加载了dll库。所以现在问题是如何处理dll ...这里是dll和hello_world的来源。我在hello_world中有一个Sleep(1000),所以dll在打印之前有一个时刻可以改变它...但除此之外,目标是改变“str”而不改变hello_world源代码中的任何内容,只是dll。
dll:
Sub GiveItAWhirl()
Dim oCmd As OLEObject
Set oCmd = Sheet1.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Left:=100, Top:=100, Width:=100)
oCmd.Object.BackColor = RGB(255, 0, 0)
End Sub
Hello world:
#include <cstdio>
#include <windows.h>
void main(){
//this should be where i somehow get the "str" pointer from hello_world and change it
}
BOOL DllMain(HINSTANCE hInst,DWORD reason,LPVOID lpvReserved){
switch(reason){
case DLL_PROCESS_ATTACH:
main();
break;
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
感谢任何回复的人。
答案 0 :(得分:0)
简答:不要。