Spy++

토끼아빠의 이미지

안녕하세요~~~

윈도부분의 왕초보입니다..
Spy++라는것도 첨 이용해보고요..
헌데 Spy++라는게 굉장히 좋은 툴인줄 알았는데 일부 애플리케이션들에 대해서는 Spy도 찍지 못하네요...

어떻게 하면 Spy에 찍히지 않는거죠??
그리고 Spy에도 찍히지 않는 애플리케이션들에 대해선 어떻게 조작이 가능한거죠??

여러 고수님들께 잘 부탁드립니다...

좋은 하루 되세요~~~

irondog의 이미지

정확히 알고 하는 답변은 아닙니다만...

SPY++는 윈도우들과 윈도우들 간의 메시지 이동을 추적하는 프로그램이죠.
다시 말해서 현재 프로세스와 쓰레드를 보여주는 기능은 없다는 것이죠.
만일 프로그램에서 윈도가 제공하는 윈도 기능 또는 라이브러리를 쓰지 않고, 자체 윈도우 시스템을
이용한다면 SPY++로도 추적이 불가능 할 것 같습니다만...

brucewang의 이미지

spy++에서 말씀하신 그 '찍기'는 regsitered 된 Window 들을 찾아주는 것입니다.

WIN32 API로 WIndows 프로그램을 만드실때 WinMain 에서 해주는 처음 일들이
화면에 보여줄 윈도우를 등록(RegisterWindow...)하는 것이고, 그 윈도우들이
윈도우즈 시스템의 관리 윈도우 리스트 테이블에 등록되는 것이죠..

Spy++에서 찾을 수 없는 것들은 말 그대로 등록되지 않은 윈도우란 뜻입니다.
즉, 눈으로 봐서는 여러개의 윈도우들로 구성된 것 같은데, 사실은 그저
프로그램이 '그려주는' 결과 일뿐 별개의 윈도우들은 아닌 경우인 것이죠.

예를들어 Google의 Picasar는 하나의 큰 윈도우 안에, 그 모든 콘트롤들을
직접 '그려' 주고 있는것입니다. 이경우 spy++에서는 내부의 스크롤바나
콤보박스가 spy++에서는 아예 안보이는것이죠.

-------------------------------------------------
$yes 4 8 15 16 23 42

토끼아빠의 이미지

아~~
이제야 이해가 가는것 같네요...
꾸뻑^^

좋은 하루 되세요!!

좋은 하루 되세요!!

brucewang의 이미지

그런 경우에도 윈도우즈 application은 기본적으로 WINDOWS MESSAGE를 처리하게 되어 있으니까
해당 프로그램이 어떤 WINDOW MESSAGE를 받고 있는가 확인을 해보셔야 할 것 같네요..

WINDOWS MESSAGE에는 WINDOWS에서 기본적으로 정의된 메시지 말고도 WM_USER 메시지, 그리고
개인이 별도로 새로 생성해서 만든 REGISTERED MESSAGE 라는 것들도 있습니다.

WINDOWS MESSAGE이외에 해당 어플리케이션이 다른 접근 방법으로도 조작이
(예를들어 COM interface, exported DLL function, memory map, system event,
socket, pipe 등) 가능할지도 모릅니다.

어떻게 조작할 것인가는 프로그램이 무엇인가, 어떤 조작을 원하는가에 따라
선택을 하여야 할 것 같습니다. 어떤 경우는 해당프로그램 코드를 바꾸지 않는이상
힘든 경우도 많이 있을것 같네요...

좋은 결과를 기대합니다..

-------------------------------------------------
$yes 4 8 15 16 23 42

토끼아빠의 이미지

인용:
 
어떤 경우는 해당프로그램 코드를 바꾸지 않는이상
힘든 경우도 많이 있을것 같네요...

제 경우는 님이 말씀하신 이 경우에 해당될것 같네요.
자세한 설명 주셔서 정말 감사합니다.

좋은 하루 되세요!!

좋은 하루 되세요!!

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.