2011-07-05 5 views
0

누군가 나에게 주입 된 dll의 함수를 문자열 인자로 호출하는 방법에 대한 예제를 줄 수 있습니까? 나는 그것을하기 위해 알고 있지만 잘못된 결과를 얻은 방법으로 그것을하려고 노력했다. VirtualAllocEx으로 메모리를 할당 한 다음 WriteProcessMemory으로 문자열 인수를 쓰고 그 후에 CreateRemoteThread을 호출하여 해당 문자열 인수를 lpParameter 매개 변수로 전달합니다. 내가 부르는 DLL 함수는 프로토 타입 다음이있다 :이 기능은 CreateRemoteThread에 의해 호출 될 때 이해하는 것과문자열 인자가있는 CreateRemoteThread 예

DWORD TestFunction(LPVOID str); 

str는 전달 된 문자열에 대한 포인터를 포함합니다. 그러나 그렇지 않습니다. 그것은 약간의 쓰레기를 포함한다. str 매개 변수가 잘못된 주소를 가리키는 것 같습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 여기

는 전체 프로젝트 파일입니다
http://pastebin.com/gh4SnhmV
http://pastebin.com/Sq7hpSVx
http://pastebin.com/dvgXpUYz

+1

작성한 함수 호출을 설명하는 대신 코드를 표시하면 도움이 될 수 있습니다. – John

답변

0

당신은 아마 최대 혼합 VA 공간을 받고, 대상의 대신 당신의 주소 공간의 포인터를 전달하고 있습니다.

또한 다른 프로세스에 스레드를 삽입하려고하는 소프트웨어는 출시하지 마십시오. 마라톤을 실행하는 동안 누군가에게 조작하려고하는 것과 같은 일반적인 의미에서 올바르게 진행하기는 매우 어렵습니다.