프로그래밍

 3198, 1/160 회원가입  로그인  
   jwkzzangs
   DLL 값 전달과정 질문 드립니다.

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=3264 [복사]


exe파일에서 DLL을 LoadLibrary("InjectDll.dll"); 형식으로 가져다 씁니다.
그런데 exe파일에서 선언한 전역 변수를 DLL에서 사용할 수 있는 방법을 알고싶습니다.
아시는분은 답변 부탁드립니다.

  Hit : 3941     Date : 2012/01/05 07:18



    
$Zero dll에서 전역변수를 가져다 쓸 수 있나요.. ?

원래 dll의 목적이 export인데.. import를 하는 행위 자체가 의미 있는일인지..

같은 프로젝트 내에 존재하는 dll이라면 extern 변수는 사용할 수 있지 않을까 싶어요..
2012/01/07  
jz // 전역변수가 dword라고 가정할때...
DWORD *value = (DWORD*)0x405000; //전역변수 주소

if( *value = ....

와 같이 전역변수의 주소를 알아야 합니다. 리버싱으로 알아내야겠죠.
2012/01/10  
Prox 인젝터와 타겟이 서로 다른프로세스이기 때문에..
ReadProcessMemory로 인젝터의 전역변수에 접근하는게 제일 쉬운 방법이겠죠..

인젝터:
WriteProcessMemory 를 통해서 타겟프로세스에 전역변수주소를 알려줌
dll:
아까 받은 전역변수주소를 이용해서 ReadProcessMemory(인젝터,전역변수주소)
2012/01/11  
jwkzzangs 감사합니다 해결했습니다. 2012/01/17