2013-08-28 2 views
0

우리는 응용 프로그램의 시작 방법을 정의하거나 더 많은 정보를 추가하기 위해 (조만간) 매개 변수를 사용할 수 있습니다. 어느 쪽이든 ShellExecute(ex)/CreateProcesslpParameters/lpCommandLine을 사용할 수도 있고, MyApplication.exe -parameter1 -parameter2 -n과 같은 cmd로 직접 호출 할 수도 있습니다.매개 변수의 대안은 무엇입니까?

때로는 다른 매개 변수 이름을 다른 용도로 사용하는 응용 프로그램과 충돌하거나 요즘 응용 프로그램에 사용 된 매개 변수를 볼 수 있습니다. 실제로 (매개 변수와 같은) 시작하기 전에 내 응용 프로그램에 추가 정보를 추가하는 방법에 대해 다른 방법을 사용할 수 있는지 궁금합니다. 체육 시스템 (아직)에 대해 많이 알지는 못하지만, CreateProcess API를 사용하고 응용 프로그램을 일시 중단 할 수 있는지 궁금합니다. 쓰기/변경/수정 (WriteProcessMemory) 상수 (또는 var) 내 소스 코드 (또는 뭔가 그런 ...) 선언하고 마침내 그것을 다시 시작합니다.

나는 것이 가능 확신하지만, 같은 몇 가지 질문과 함께 제공 :

  1. 어떻게/어디 체육 파일에서 상수의 오프셋 (offset) 내가받을 수 있나요?
  2. 파일이 압축되거나 암호화 된 경우 어떻게됩니까?
  3. 더 많은

그래서 마지막 질문이 될 것이다 - 어떤 매개 변수에 대한 대안이 될 것인가? (어쩌면 내 아이디어를 바탕으로?)

+2

를 응용 프로그램이 입력에 전달되는 방법을 결정 대안이 규칙을 다음에이 없기 때문에 특정 애플리케이션에 의해 위임 된 것. 응용 프로그램이 명령 행에서 매개 변수를 전달하도록 요구하면 명령 행에서 매개 변수를 전달해야합니다. 명백한 방법으로, 당신의 진짜 질문은 무엇입니까? – IInspectable

답변

2

메모리를 미리 해킹하지 않고 실행을 시작하면 데이터를 새 프로세스로 전달할 수있는 다른 방법이 있습니다.

How do I pass a lot of data to a process when it starts up?

Undocumented and hard-to-find information regarding the CreateProcess API call

합니다 ( 아래로 스크롤은 "자식 프로세스에 임의의 데이터를 전달합니다!" 절)

+0

이것은 믿을 수 없다! 문서화되지 않은'StartupInfo' "hack"이 작업을 수행합니다. 내가 가진 아이디어보다 훨씬 뛰어나다. 이것 대단히 감사합니다! –

+1

두 번째 방법 - 흥미로운 읽기 -은 꽤 더러운 해킹이기도합니다. 이 페이지는 다음과 같이 기록합니다. * "분명히이 방법은 64 비트 Windows Vista에서 작동하지 않습니다."* – IInspectable